A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一米阳光`·` 中级黑马   /  2017-5-17 21:40  /  2220 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

代码 显示效果如上.....
给.two设置绝对定位后再给top:20px; 问题是.two盒子离左边为什么这么远,给子盒子设置绝对定位,父盒子没有定位时,子盒子会以body的左上角为基点定位,()以我理解这时.two盒子应该是离body左上角top:20px;left:0)但是如图,为什么?

3 个回复

倒序浏览
.two是.one的子元素,他会继但是承父元素的样式,top是绝对定位设置距离设置了relative(这里是body)的元素上边距,并不是因为字元素设置了绝对定位他就完全不受父元素约束,除非重写了父元素的所有属性,进行了覆盖,你在调试.two时候就可以发现margin-top被覆盖了,而margin-left并没有!
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
J0bs 发表于 2017-5-17 23:37
.two是.one的子元素,他会继但是承父元素的样式,top是绝对定位设置距离设置了relative(这里是body)的元素 ...

就是说.two继承了父元素的属性,  
.one有margin: 200px 0 0 200px;      
  .two的top:20px;是对body
,就把.one的margin-top重写了,
而left没有重写,所以左边距离同.one
回复 使用道具 举报
一米阳光`·` 发表于 2017-5-17 23:52
就是说.two继承了父元素的属性,  
.one有margin: 200px 0 0 200px;      
  .two的top:20px;是对body

嗯嗯,就是这个意思
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马