webForumDet fria alternativet

vertical-align i div?

15 svar · 9 969 visningar · startad av NETwork

NETworkMedlem sedan juni 20011 732 inlägg
#1

Försöker få allt som fiinns i en div att hamna längst ned i diven. Vertical-align verkar inte fungera... går det att lösa på något annat sätt att lösa det med styles UTAN extra tabeller och fler divar?

FlashesMedlem sedan jan. 2003282 inlägg
#2

Det här är kanske att skjuta över målet men det enda jag kom på.
http://www.alistapart.com/articles/footers/

Mvh
Jan-Olov

PepeJeriaMedlem sedan feb. 2003774 inlägg
#3
<div style="border:1px solid red; position:relative; width:300px; height:300px;">
	<div style="position:absolute; bottom:0;">Längst ner</div>
</div>
higaMedlem sedan aug. 2000359 inlägg
#4

Visst går det, t ex genom att använda en hög smal bild i diven. Fördelen är att koden är enkel, nackdelen att den bara grejar en rad. Använder denna metod på min personliga hemsida för att få text i nederkanten på navigeringsikonerna.

<div>
<img class="aligner" src="gfx/1x1trans.png" />
Text nere
</div>
img.aligner {height: 150px; width: 1px; vertical-align: text-bottom}

Om du skriver vertical-align: bottom så fungerar det bara i Mozilla, men med text-bottom funkar det även i MSIE och Opera

NETworkMedlem sedan juni 20011 732 inlägg
#5

Känns som vertical-align är helt felkonstruerad då. :/ Tack för svaren, jag kör på PepeJerias variant!

jarvkloMedlem sedan juli 20013 378 inlägg
#6

Kan så tyckas - men om webbläsaren skall följa standard skall vertical-align bara funka på två typer av taggar:

dels "inline-taggar" (som t.ex. span) där den anger hur innehållet skall justeras i höjd gentemot gentemot typsnittets baslinje eller "inline-blockets" kanter,
och dels i "table cells" - och det är antagligen därifrån många av oss vant sig vid dess beteende i "block-liknande" omgivningar ;)

Dvs - enligt CSS2 är "vertical align" inte byggd för att fungera i "fullskaliga" block som div ;)

Higas variant fungerar för att en <img> är ett "inline-block", dvs blocket som omsluter bilden likställs med en jättestor bokstav, och sätter man då justering mot baseline eller textens "bottom" så ligger ju den under bild-inline-blocket/"bokstaven" ;)

web00132Medlem sedan maj 2001797 inlägg
#7

Om man använder PepeJerias kod så förutsätter det att den yttre diven har en fixerad höjd, och då om man har en för lång text så hamnar en del av texten ovanför diven. Finns något sätt man kan göra så diven har en min-height men ingen max-height och att diven då förstoras beroende på hur mycket text det är? Alltså att slippa ha en fixerad height helt enkelt ;)

Danne VMedlem sedan aug. 20068 090 inlägg
#8

jarvklo skrev:

Kan så tyckas - men om webbläsaren skall följa standard skall vertical-align bara funka på två typer av taggar:

dels "inline-taggar" (som t.ex. span) där den anger hur innehållet skall justeras i höjd gentemot gentemot typsnittets baslinje eller "inline-blockets" kanter,
och dels i "table cells" - och det är antagligen därifrån många av oss vant sig vid dess beteende i "block-liknande" omgivningar ;)

Dvs - enligt CSS2 är "vertical align" inte byggd för att fungera i "fullskaliga" block som div ;)

Higas variant fungerar för att en <img> är ett "inline-block", dvs blocket som omsluter bilden likställs med en jättestor bokstav, och sätter man då justering mot baseline eller textens "bottom" så ligger ju den under bild-inline-blocket/"bokstaven" ;)

AAAaaaa........ det där var guld att läsa!!!! Tack tack!!! Fan vad jag har svurit över att det inte gått att lägga prylar i botten på divvar med vertical-align...

Men nu får jag fortsätta att svära över W3C istället.... :)

web00132Medlem sedan maj 2001797 inlägg
#9

Ingen som har koll på mitt problem? :r

Danne VMedlem sedan aug. 20068 090 inlägg
#10

web00132 skrev:

Ingen som har koll på mitt problem? :r

Tror ingen förstod att du hade en fråga. Men ska nog inte posta egna, nya frågor i en redan pågående tråd utom kanske i extremfall. Dels är det ett oskick att kapa andras trådar, och dels kan ju ens eget inlägg försvinna i bruset - som nu.

web00132 skrev:

Om man använder PepeJerias kod så förutsätter det att den yttre diven har en fixerad höjd, och då om man har en för lång text så hamnar en del av texten ovanför diven. Finns något sätt man kan göra så diven har en min-height men ingen max-height och att diven då förstoras beroende på hur mycket text det är? Alltså att slippa ha en fixerad height helt enkelt ;)

Nej, den yttre, relativt positionerade divven behöver inte fixerad höjd för att vertical-align ska funka. Ta bort "height:300px" bara. För att få minsta höjd, lägg till "min-height:300px" istället.

web00132Medlem sedan maj 2001797 inlägg
#11

Men jesus, har det man skriver något att göra med det som tråden handlar om så är det väl passande att man skriver i den tråden. Annars får man dessutom bara höra att man ska testa att söka i forumet eller att man spammar forumet. Och läser man folks inlägg korrekt så ser man oftast om det står en fråga i meddelandet eller ej.
Mitt problem löstes av att layouten ändrades till en annan lösning, tack för svar iaf.

Danne VMedlem sedan aug. 20068 090 inlägg
#12

web00132 skrev:

Men jesus, har det man skriver något att göra med det som tråden handlar om så är det väl passande att man skriver i den tråden.

Kan du gissa varför du inte fick mer än ett svar? :OO

ngisedMedlem sedan juni 200813 inlägg
#13

...eller så sätter man "display: table-cell" på diven så fungerar "vertical align: bottom" jättebra. Förutsätter dock en angiven höjd.

visslarenMedlem sedan juli 20011 222 inlägg
#14

IE stöder dock inte display: table-cell.

ngisedMedlem sedan juni 200813 inlägg
#15

visslaren skrev:

IE stöder dock inte display: table-cell.

Och självklar ställer IE till det igen.... varför är jag inte förvånad

TroxyMedlem sedan mars 20041 505 inlägg
#16

Det finns i alla fall ingen lösning enligt spec, vilket W3C ger ett definitivt svar på här:

CSS level 2 doesn't have a property for centering things vertically.

http://www.w3.org/Style/Examples/007/center.html#vertical

Men nu när jag tänker lite så frågade du ju om placering i botten, inte mitten :p

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)