我使用https://stackoverflow.com/a/6615994的技巧來得到一個div高度將等於百分比寬度。該結構是這樣的:沒有顯式大小的塊元素沒有顯示,當孩子有餘量
#container {
display: block;
width: 200px;
height: 200px;
position: relative;
border: 2px dashed blue; /* just for demo */
}
#icon-container {
width: 25%;
position: relative;
display: block;
/* Removing the border property causes #icon-container to have 0 height */
border: 2px dashed red;
}
.icon-spacer {
/* margin-top calculated based on width of parent */
margin-top: 100%;
}
.icon {
/* My content will be displayed as a background-image in this element */
background-color: black;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
}
<div id="container">
<div id="icon-container">
<div class="icon-spacer"></div>
<div class="icon"></div>
</div>
</div>
雖然我是測試這一點,我遇到了以下行爲:如果我從#icon-container
刪除「邊界」 CSS,那麼它得到的高度爲0 。這可以在這裏和這裏的小提琴中看到:https://jsfiddle.net/s2b4xr1a/2/
由於我真正的應用程序不會有這個邊界,我怎麼能得到的div顯示並具有正確的高度基於其子?另外,爲什麼會發生這種情況?