绝对定位后元素的宽高如果用百分比表示的计算方法

.big{
padding-right: 100px;
padding-bottom: 100px;
0;
height: 0;
background: yellow;
margin-top: 100px;
margin-left: 100px;
}
.inner {
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

原文地址:https://www.cnblogs.com/gkw-blog/p/10678067.html