簡體   English   中英

具有line-block屬性的文本為空div與div

[英]Empty div vs div with text having inline-block property

想知道這種行為的原因。

的CSS

div {
   display: inline-block;
   margin-right: 2px;
   width: 20px;
   background-color: red;
}

空div

<div style="height:20px;"></div>
<div style="height:40px;"></div>
<div style="height:60px;"></div>
<div style="height:80px;"></div>

行為:元素從下到上(高度)增加

帶有文字的div

<div style="height:20px;">20</div>
<div style="height:40px;">30</div>
<div style="height:60px;">40</div>
<div style="height:80px;">50</div>

行為:元素從頂部到底部(高度)增加

觀看實際操作: http//jsfiddle.net/8GGYm/

基本上,它與vertical-align:的計算方式有關。 因此,如果您將vertical-aling:bottom; css中的屬性,那么您會注意到無論帶或不帶文本,它都是相同的。

您可以閱讀以獲取更多詳細信息。

當div不包含內容時,則不會在框中繪制填充(即,當為0時,如果存在內容,則瀏覽器會計算填充的位置)。 因此,在計算和不顯示文本時都存在一點差異。

希望這對您有所幫助。

嗨,請參閱此處: http : //jsfiddle.net/dd24z/默認情況下,文本與頂部垂直對齊,但是您可以更改該行為;

div {
    display: inline-block;
    margin-right: 2px;
    width: 20px;
    background-color: red;
    vertical-align: bottom;
}

http://www.w3.org/TR/2008/REC-CSS2-20080411/visudet.html#line-height

“垂直對齊”:基線將框的基線與父框的基線對齊。 如果框沒有基線,則將框的底部與父母的基線對齊。

vertical-align: bottom;

到您的CSS。 希望它能按您希望的那樣工作。

我想這可以通過與div無關的文本對齊方式來解釋。

文本放置在div中時,默認情況下垂直對齊到左上角。 那些沒有文本的div並排對齊(內聯塊),向下擴展頁面。 如果添加另一個div,則會看到第二個標題進一步向下。

<h1>Empty div</h1>
Some text
    <div style="height:20px;"></div>
    <div style="height:40px;"></div>
    <div style="height:60px;"></div>
    <div style="height:80px;"></div>
continuing here

<h2>Div with text</h2>
Some text 
    <div style="height:20px;">20</div>
    <div style="height:40px;">40</div>
    <div style="height:60px;">60</div>
    <div style="height:80px;">80</div>
continuing here

...

div {
       display: inline-block;
       margin-right: 2px;
       width: 20px;
       background-color: red;
    }

小提琴

在上面的小提琴中,您可以看到文本行是“指南”。

也許這就是解釋:一旦div中包含文本,他們就會將其與周圍的文本對齊,如果不存在,則它們的底線將對齊。

對不起,也許不是很清楚,但希望您能理解我的觀點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM