Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Div-asemointi, helppiä tarvitaan

thek [09.08.2007 16:32:47]

#

Nyt ei oikein suju. Jos joku Hc-guru voisi osoittaa mulle tutoa/antaa vinkkisä seuraavanlaiseen div-asemointi ongelmaan.

Mulla on Div1, jonka leveys on 800px ja korkeus 100% (korkeus ei riipu sisällöstä, vaan on aina 100%). Tämän Div1:sen sisään haluaisin kaksi eri kokoista diviä rinnakkain; 100px leveän Div2:sen (korkeudella ei väliä) ja
400px leveän Div3:sen . Jotta elämä ei olisi helppoa, Div3:sen tulisi alkaa esim. 250px saitin yläreunasta ja ylttyisi ihan alas asti. (riippumatta sisällöstä)
Div2:sen sijaitsisi aina Div3:sen vieressä ihan alhaalla.

Toi Div1:sen saan toimimaan ok, mutta nuo sisällä olevien divien saaminen paikoillensa tuottaa päänsärkyä. Saikohan kukaan selvää, mitä yritän tarkoittaa?

Niko [10.08.2007 23:03:12]

#

div2:
float: left
width: 100px


div3:
float: left
width: 400px
height: 100%;
top: 250px
position: absolute

div1sen sisään elementti jolla clear: both

Merri [11.08.2007 08:58:08]

#

Internet Explorer 6:ssa olevasta bugista johtuen (miten tämä ei yllätä?) tämän tempun teko on hieman vaikeampaa kuin sen pitäisi. Käytännössä homma onnistuisi älyttömän helposti asettamalla yhtä aikaa bottom ja top -ominaisuudet absoluuttiseen elementtiin. Tällä tempauksella kaikki muut selaimet paitsi IE7:ää edeltävät IE:t tajuavat miten elementti pitää asemoida.

html,body { height : 100%; }

#div1 {
min-height : 100%;
position : relative;
width : 800px;
}

#div2 {
bottom : 0;
position : absolute;
right : 250px;
width : 100px;
}

#div3 {
bottom : 0;
position : absolute;
right : 0;
top : 250px;
width : 250px;
}

IE6:n ja IE5.5:n taltuttamiseen löytyy tietoa tältä sivulta: Conflicting absolute positions. Käytännössä siis ehdollisilla kommenteilla annetaan div1:lle tyyli height : 100% (IE6 käsittelee sitä kuten min-heightiä) ja sitten tietysti tehdään bottom ja top -korjaus expressionin avulla.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta