关于css中 position: absolute 的小细节

绝对定位

是 相对于最近的一个,拥有定位上级元素进行定位
而dom元素,默认都是没有定位的,最上层拥有定位的,是body元素
举一个最简单的例子:
<style>
    .main {
        width: 300px;
        height: 300px;
        background-color: cyan;
        /* position: relative; */
        margin-left: 100px;
    }

    .container {
        position: absolute;
        top: 60px;
        width: 200px;
        height: 200px;
        background-color: coral;
    }
</style>
<body>
    <div class="main">
        <div class="container" />
    </div>
</body>

在这段代码中,当切换 .main 元素的 position: relative; 属性时,会发现其子级 .container 元素上下跳动。

因为当.main 元素具有position属性时,子元素相对于.main元素定位,由于浏览器的body默认有margin:8px 的属性,其相对于浏览器视窗的顶部为68px。

而当父元素不具有position属性时,.container元素会查找最近的具有定位的元素,也就是body元素,此时相对于浏览器顶部的距离为60px。

包裹特性

当元素拥有position: absolute;样式时,若没有指定宽高,其宽高会根据子元素的宽高进行调整,为完全包裹子元素的最小宽高。

 

posted @   Bin_x  阅读(156)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示