2016-11-09 82 views
1

爲什麼孩子的寬度不能展開爲父母的寬度:table-cell?

div { 
 
    width: 100px; 
 
    height: 100px; 
 
} 
 
p { 
 
    margin: 0px; 
 
    padding: 0px; 
 
    display: table-cell; 
 
    width: 100%; 
 
    height: 100%; 
 
    border: 1px solid green; 
 
}
<div> 
 
    <p>hello</p> 
 
</div>

現在,這裏的子元素p沒有擴展到它的父母的寬度和height: 100px,爲什麼呢? 如果display: table-cell更改爲display: table或其他如block, ,子元素<p>在此確實展開爲其父'widthheight :100px

div { 
 
    width: 100px; 
 
    height: 100px; 
 
} 
 
p { 
 
    margin: 0px; 
 
    padding: 0px; 
 
    display: table; 
 
    width: 100%; 
 
    height: 100%; 
 
    border: 1px solid green; 
 
}
<div> 
 
    <p>hello</p> 
 
</div>

是否有一個規則來解釋這裏的行動?

回答

0

你問的規則,

如果聲明顯示:表單元格,那麼你必須與顯示元素中嵌套它:錶行和顯示:表。就像一個真正的桌子。

The link which says about that usage

表格單元格的說明:


table-cell:讓元素表現得像個<td>元素

使用按表單元列高度:

個表格單元列展開以匹配行中最大列的高度。高度由內容定義,而不是明確的固定高度。

柱1.柱2是多一點的時間。第3列更長,裏面有很多文字。

浮動元素的常見解決方法是設置最小高度值。

如果最長內容的長度總是大致相同,但如果內容的長度差別很大,則不是可行的解決方案。

Here is a reference to this answer


運用規則,以你的答案:


div { 
 
    width: 100px; 
 
    height: 100px; 
 
    display: table; 
 
} 
 
p { 
 
    margin: 0px; 
 
    padding: 0px; 
 
    display: table-cell; 
 
    width: 100%; 
 
    height: 100%; 
 
    border: 1px solid green; 
 
}
<div> 
 
    <p>Test</p> 
 
</div>


Here is a fiddle

+0

「如果你聲明顯示:表單元格,那麼你必須與顯示元素中嵌套它:錶行和顯示:表就像一個真正的表。」這條規則不會出現在您的參考鏈接中,我懷疑它是由它組成的。 – BoltClock

+0

@BoltClock,我給出的鏈接是針對我在答案中給出的例子。請再次閱讀答案。關於規則,請查看鏈接 [查看此鏈接](http://quirksmode.org/css/css2/display.html#table) – Sravan

+0

爲什麼直接downvote,有更多的信息在我給的鏈接中,並檢查我的第二個片段和小提琴。 – Sravan

相關問題