2013-06-19 22 views
4

我有兩個div並排。兩者都有相同的尺寸和display: inline-block。兩者之間的唯一區別是,第一個有一些文本,第二個是空白的。inline-block div有和沒有文字不垂直對齊

HTML:

<div>1</div> 
<div></div> 

CSS:

div { 
    display: inline-block; 
    border: 1px solid black; 
    width: 50px; 
    height: 50px; 
} 

第一DIV是比第二低。

我知道所有可能的修補程序,如添加一些文本或&nbsp;到第二個div。當然,添加vertical-align: top也會修復此問題。

我想知道的是,有人能解釋一下,爲什麼一個空白的div與其中有一些文本的div有不同的對齊方式?

JSFiddle

+0

如果您添加2行文字,您將看到基線對齊將會更改 – Huangism

+0

@Huangism我添加了一行並且對齊更改。謝謝你的提示。 –

回答

7

直列塊盒,默認情況下垂直地對準,使得內聯塊箱的基線對齊到它被渲染的線框的基線。

帶有一行文本的內嵌塊框的基線是該行的基線。更一般地說,內聯塊的基線是它包含的最後一行文本的基線。但這意味着沒有包含任何文本的內聯塊的基線。

在這種情況下,回退規則會啓動,並且內嵌塊框的底部將放置在其線框的基線上。

+0

這是一個很好的解釋。你有指向一些文檔的指針嗎? –

+0

+1 - 尼斯的解釋.. – Adrift

+0

Adrift的答案提供了相關規範的鏈接。 – Alohci