关于position:fixed的问题

    <style type="text/css">
        div{
            width: 100%;
            height: 100%;
            background: red;
            position: fixed;
        }
    </style>
</head>
<body>
    <div></div>
</body>

请问为什么div的position设置成fixed和absolute就会显示出来?还有为什么top和left会有8px的空白,是默认的吗?
图片描述

阅读 3.4k
3 个回答

第一个问题去mdn查文档,搞清楚position的作用。
第二个问题是浏览器默认的,根据浏览器不同可能不同,所以需要一个叫reset.css 或 normalize.css的东西,统一浏览器的默认样式。

原来不显示是因为 div 的父元素 html 和 body 的高度都是 0。

fixed 之后抽离文档流,基于视口了,所以高度设置生效。

8px 是 body 的默认 margin 。

因为各个浏览器的兼容不同,会默认的生成边距,这时要手动清除默认样式,不是很严谨的写法*{margin:0 padding:0}
position:fixed 固定定位,是根据浏览器窗口来进行定位的,详情参考w3c

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题