jag har en table som innehåller tre fält, en logga (137px), en meny(20px) och en "content". I content vill jag lägga 3 andra lager, rubrik, brödtext och en bild.
Nu vill jag att content diven ska vara resterande av skärmen (under loggan och menyn asså) och när bröd texten är längre än "orginalfönstret" så ska hela sidan scrollas...
Jag har precis börjat få häng på det här med div-"lager" och skulle rekomendera dig att ersätta layouttabellen med divar.
Kolla på http://www.w3.org/TR/CSS2/visudet.html , och kapitel "10.6.4 Absolutely positioned, non-replaced elements", tror det står där hur du lyckas få till det du vill komma åt.
Men tyvärr har jag ingen kod som löser det direkt åt dig
Lägg bakgrundsfärgen för "resten av skärmen" som bakgrundsfärg i en "container-div" så "simulerar" du att den ligger bakom din brödtext ;)
Trixa sedan lite med container-div:en så att den blir "100%" i de "vanligaste" webbläsarna (idealt skulle man bara behöva skriva
min-height:100%
för containern för att få det att funka, men varken MSIE eller Opera stödjer dessa f.n. som det verkar - så man får fulkoda CSS:en för #container lite - på två ställen närmare bestämt ;) ).
Hmm...
Funkade för mig (kör iofs Firebird 0.6.1 / Win - så det kanske beror på att någon äldre NS-webbläsare blir konfunderad av "opera-fulhacket" i exemplet på något sätt... Eller nåt! )
Hursomhelst!
Exemplet jag gav i förra inlägget lägger webbläsarna i "quirks" mode (eftersom det var så du körde enligt ditt kodexempel)...
Men nu provade jag med att slänga in en <!DOCTYPE som lägger dem i Standards mode istället - och vips behövdes inget fulhack för Opera längre...
Det enda som behövdes efter det, var att sätta height:100% även på body ;)
PS.
Ditt problem har nog mer att göra med att olika webbläsare buggar ur på olika sätt när man kör "rena" CSS-lösningar... Och det är *många* som slåss med sådant just nu ;)
Ge inte upp!
Googla om du kan klura ut vad man skall söka efter och fråga här istället annars - det är ju så man lär sig i praktiken, eller hur ? ;)
:bire
Position:relative från den position där föregående tagg slutar (dvs den punkt där taggens innehåll skulle börja "ritas ut" i det "normala flödet")... Den är alltså relativ "insättningspunkten" och inte containern. Kanske har det med det att göra ?
Om du bara vill "peta in och ner" en blocktagg lite, kanske du kan prova att meka med margin-left och margin-top på den istället för att köra med position:relative.
jag har tagit bort alla "center" men ändå är de align center... varför?
Har du en länk till koden som den ser ut nu så att man kan se helheten innan man gissar fel på orsaken - det är antagligen flera detaljer i detta det skulle kunna bero på ;)
If both 'margin-left' and 'margin-right' are 'auto', their computed values are equal.
De där text-align:center som är med i mina exempel är i de flesta fall "standard-workarounds" för MSIE (som inte följer CSS2 och alltså inte bryr sig om detta ;) ) som jag plockat upp från t.ex. http://bluerobot.com/web/css/center1.html
Jag vill lägga en div med brödtext och en med bild brevid varandra och då kan jag inte använda position:relative.
Men eftersom jag har de divarna i container, borde de då inte räkna position från det övre vänstra hörnet av containern och inte hela fönstret vid position:absolute?
Och margin räknas väl från boxen över, så jag kan inte lägga två brevid varandra.
Jag håller på och tar mig igenom texten om positionering på w3, men det är svårt att få en klar bild över det... men jag jobbar på det.
(Jag kan PM:a dig en länk, då jag inte vill ha den ligga ute)
Hmm....
Jag menade nog egentligen att du inte behöver fundera över position:relative överhuvudtaget i detta fall, utan att du kan göra enklare positioneringar med individuella marginalvärden som t.ex. margin-left och margin-top... (du har ju möjlighet att lägga alla block i "rätt" ordning för din layout i källkoden ;) )
Och det där med bilden bredvid går att lösa med float: om man vill... (t.ex. genom att begränsa bredden på både brödtexten och bild-div:en, och sedan t.ex. "floata" det block som skall vara till höger...
Om inte så får du gärna PM:a mig med en länk till sidan du har problem med - på villkor att du lovar att sammanfatta lösningen här i forumet sedan (eller att vi gör det tillsammans) - jag antar att det finns några fler nyfikna därute ;)
hmm.. jag fick till om jag tog bort centreringen av sidan och sen sätta position:absolute på rubrik och bild och bröd texten placerade jag med margins...
försökte placera rubriken med margins oxå först, men det gick inte, men jag ser nu att du har gjort så, så jag måste ha haft nått annat fel.
...med lösningen du hade nu kan jag behålla centreringen om jag vill.
Mekade lite med din kod -
Tog bl.a. bort dina absolutpositioneringar och "positionerade" med marginaler och paddings i #content...
och då blev det såhär:
givetvis har jag stöt på ett problem. När jag kortar ner texten så den blir kortare än bilderna så följer inte #content med riktigt, samma sak om jag bara har en bild.. grr...
If all else fails - use tables ;) Gammalt vist webb-ordspråk
Skämt åsido...
Antar att det är float:right på div:en som innehåller bilderna som ställer till det...
Har ingen lösning på rak arm dock...
Men du kan ju t.ex. göra om content till en tabell med två kolumner (och ta bort float:right på #img) så länge tills någon lyckas klura ut en bättre (eller iallafall helt div-baserad) lösning...