绝对定位问题

绝对定位问题

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Title</title>
   <script type="text/javascript" src="index.js"></script>
   <style type="text/css">

body{


}
#div1{
   background: yellow;
   width:400px;
   height: 300px;

}

   </style>
</head>
<body>
<div id="div1">
<p>sladkfjkladsjflkas</p>
</div>
</body>
</html>

我发现如果div1不用绝对定位的话,那么<p>段落的内容的margin-top就是和body作比较,但是如果使用绝对定位的话,<p>段落的内容的margin-top就是和div1作比较,所以我理解的是margin的对象是其父类,且父类有绝对定位,如果没有,那么就再往上找对吗

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,1.,虽然与父元素上边距重叠,但布局样式margin设置在p标签中,而父元素div1并没有设置margin的值,所以父元素中没有margin属性。

2. 在布局样式中,父元素中没有设置上补白(padding-top)和上边框(border-top,p标签设置了margin-top的值,所以出现上边距重叠,但并不会在浏览器中为父元素设置margin属性。

3. 浏览器会将body设置为块元素,如下所示:所以也导致了上边距重叠,同学为父元素div1设置overflow:hidden即可解决。

http://img1.sycdn.imooc.com//climg/5efef113090a540a03190281.jpg

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

好帮手慕小尤 2020-07-03 12:04:29

同学你好,1. 当一个盒子如果没有上补白(padding-top)和上边框(border-top),那么这个盒子的上边距会和其内部文档流中的第一个子元素的上边距重叠。

2. 所以导致p标签的margin影响父元素,则同学可以为父元素设置上补白(padding-top)和上边框(border-top)。如下所示:

http://img1.sycdn.imooc.com//climg/5efeadb209cb101d03770331.jpg

3. 或在父元素中添加overflow:hidden;。如下所示:当然为父元素设置为绝对定位也可以解决。

http://img1.sycdn.imooc.com//climg/5efeadeb09f34b5403680326.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 慕UI2433440 #1
    我想知道的是文字已经和div1的上边距重叠了为啥div1没有margin,但是文字的margin却等于16px,而且这个margin的对象不是body而是html
    2020-07-03 15:15:34
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师