2012-11-15 8 views
6

Jeśli masz trzy identyczne elementy div umieszczone w linii prostej, są one idealnie wyrównane. Ale jeśli umieścisz jakąś treść w jednym z elementów div, spadnie ona poniżej pozostałych. Dlaczego to robi?Dlaczego blok śródliniowy wstawiany jest niżej, gdy zawiera treść?

<div class="left">?</div> 
<div class="center"></div> 
<div class="right"></div> 

div { 
    display:inline-block; 
    margin-:2px; 
    height:100px; 
    width:25px; 
    border:1px solid black; 
}​ 

http://jsfiddle.net/7kkC6/

lepszy przykład: http://jsfiddle.net/7kkC6/9/

Odpowiedz

16

To dlatego vertical-align jest domyślny zestaw do linii bazowej. można rozwiązać problemu, ustawiając ją do góry:

div { 
    display:inline-block; 
    margin-:2px; 
    height:100px; 
    width:25px; 
    border:1px solid black; 
    vertical-align: top; 
}​ 

Demo tutaj: http://jsfiddle.net/7kkC6/4/

+0

Nie wiedziałem nawet, że pionowe wyrównanie było w grze. – user1757120

0

To działa, jeśli zmienisz display do block i dodać float:left;

Working example.

+0

Wiem, jak uzyskać ten konkretny efekt w taki czy inny sposób. na przykład możesz użyć tabel z pionowym wyrównaniem. nie rozumiem, dlaczego div są niższe, gdy mają treść. – user1757120

Powiązane problemy