使用position的容器与height 100%的

发布于 2022-09-01 17:22:19 字数 1066 浏览 8 评论 0

今天摸索了一下,发现了如下问题:

<style>
        body{ height: 2000px; padding: 0; margin: 0;}
        .left-box{ width: 200px; background-color: darkseagreen;
                   position: fixed; height: 100%;}
</style>

<body>
    <div class="left-box"></div>
</body>

图片描述

RT,请问为什么div.leftbox高度是以浏览器窗口高度为依据来实现100%,而非body

另外,假如把div.leftbox设成position: fixed;的时候,bodyheight设成2000px,它能够铺满2000px

图片描述
但是bodyheight设成2px,它也能使得div.leftbox铺满整个窗口

图片描述

有大神了解过这三种情况都说说吗?或者链接也行,感激不尽!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

女尤 2022-09-08 17:22:20

其实这3个问题都是一个原理.
首先,你应该需要了解position:fixed这个属性吧.
通俗的说,fixed会使元素脱离整个html文档流,跟任何元素都没有关系了.所以,.left-box的高度就跟它的父元素没有关系了.然后你设置height:100%;就是让div.leftbox充满整个浏览器了(也就是全屏).
所以就造成了你无论怎么改变body的height,然后这个div依然充满你的屏幕的错觉.
你可以给body一个background-color:red;看看body在哪 你的div又在哪.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文