絕對定位后元素的寬高如果用百分比表示的計算方法


.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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM