.big{
padding-right: 100px;
padding-bottom: 100px;
width: 0;
height: 0;
background: yellow;
margin-top: 100px;
margin-left: 100px;
}
.inner {
width: 50%;
height: 50%;
background: black;
}
正常情況下innerbox的寬高根據父元素的寬高進行百分比運算,即為0。
當innerbox添加了absolute絕對定位后,如果父元素且所有祖先元素沒有進行定位,其寬高百分比將根據瀏覽器可視寬高進行計算。
如果其父元素進行了定位,寬高則根據父元素的盒子寬高(content + padding)(不含border!)進行百分比計算。
html元素屬性width和height的值有兩種表達方式,一是固定像素如“100px”,一是百分比如“80%”,
使用百分比的好處是元素會按父元素寬高自動調節大小,有更好的自適應性,
但由於<body>元素默認寬度有效,默認高度無效,
因此<div>(定位方式為默認值static)父元素為<body>時width="100%" height="100%",其高度設置是無效的,
如該<div>無內容,僅設置了背景色和邊框,則<div>背景顏色和邊框也不顯示。
PS:當<div>的定位方式為絕對定位或固定定位,即position屬性值為absolute或fixed時,
父元素為<body>時width="100%" height="100%",其高寬設置均有效,默認為當前窗口的寬高百分比,
若設置了背景色和邊框,則<div>背景顏色和邊框均可顯示。
原文:https://blog.csdn.net/Sparrowflying/article/details/72677051