為什么CSS中的邊距/填充百分比總是根據寬度計算?如果你看看CSS盒模型規范,您將觀察到以下情況:[保證金]百分比是根據寬度生成的框的包含塊。請注意,這是正確的‘邊緣-頂部’和‘保證金-底部’以及。如果包含塊的寬度取決于此元素,則在CSS2.1中未定義結果布局。(強調地雷)這是真的。但為什么?究竟是什么迫使任何人這樣設計它呢?很容易想到你想要的場景,例如,某件東西總是比頁面頂部低25%,但是很難想出為什么你想要垂直填充相對于父頁面的水平大小。下面是我所指的現象的一個例子:<div style="border: 1px solid red; margin: 0; padding: 0; width: 200px; height: 800px;">
This div is 200x800. <div style="border: 1px solid blue; margin: 10% 0 0 10%;">
This div has top-margin of 10% and left-margin of 10% with respect to its parent. </div></div>http://jsfiddle.net/8JDYD/
3 回答

九州編程
TA貢獻1785條經驗 獲得超4個贊
元素高度由子元素的高度定義。如果一個元素有填充頂:10%(相對于父元素的高度),這將影響父元素的高度。由于子節點的高度取決于父級的高度,而父級的高度取決于子級的高度,所以我們要么有不準確的高度,要么有一個無限循環。當然,這只會影響偏移父=父級的情況,但仍然是這樣。這是一個很難解決的奇怪案件。
- 3 回答
- 0 關注
- 577 瀏覽
添加回答
舉報
0/150
提交
取消