根據許多消息來源,div的高度(如果以百分比形式給出)被確定爲其父公司的寬度的百分比。那麼爲什麼如果調整窗口的大小以使其水平變小,窗口的內容也不會垂直變小?如果%height基於父寬度,那麼爲什麼div在頁面變寬時變短?
只有一個div的簡單頁面。 http://tuningcode.com/practice/2014-4-24-05.html
根據許多消息來源,div的高度(如果以百分比形式給出)被確定爲其父公司的寬度的百分比。那麼爲什麼如果調整窗口的大小以使其水平變小,窗口的內容也不會垂直變小?如果%height基於父寬度,那麼爲什麼div在頁面變寬時變短?
只有一個div的簡單頁面。 http://tuningcode.com/practice/2014-4-24-05.html
這是不真實的。當你嘗試使用percentage-based top/bottom margins and /or paddings時,這個小噱頭只會發生。身高計算爲含母公司自己計算出的高度的百分比 - 見這裏的例子:http://jsfiddle.net/teddyrised/gB65X/
比方說,我們有標記:
<div>
<img src="http://placehold.it/500x500" />
</div>
和下面的CSS:
body {
height: 500px;
}
div {
overflow: hidden;
height: 75%;
}
div img {
display: block;
}
<div>
會,默認行爲,伸展到父母的全部高度(100%= 500px)。但是由於我們將其高度限制爲75%,因此它的最終計算高度爲375px。
現在你設置的<div>
至10%的填充:http://jsfiddle.net/teddyrised/gB65X/1/
你可以看到,填充,奇怪的是,沿兩個軸相等,這不應該是這樣。如果您檢查了檢查員,即使包裝母版<body>
的高度和寬度不相同,也可以看到頂部/底部的計算填充與左側/右側的填充相同。
事實上,這種行爲通常利用無需使用JS創造完美平方CSS元素:http://jsfiddle.net/teddyrised/gB65X/2/如果我們做了以下修改原來的小提琴:
div {
overflow: hidden;
padding-bottom: 50%;
height: 0;
width: 50%;
}
你可以看到, <div>
已經實際上變成了靈活/負責的方形,其尺寸僅取決於視口寬度而不取決於高度;)
來自mozillas MDN https://developer.mozilla.org/en-US/docs/Web/CSS/height
height: 75% /* <percentage> values */
<percentage>
Specified as a <percentage> of containing block's height.
所以你的身高是相對於父母的身高。
我想你可能會考慮padding
和margin
百分比。
謝謝。是的,我混淆了它。 –
您正在使用哪種瀏覽器? – stackErr
Firefox版本28. –