父元素无定位时到底以谁为参考系 对子元素绝对定位?
来源:2-2 选择练习
慕少4337290
2019-10-21 17:13:22
父元素无定位时到底以谁为参考系对子元素绝对定位?我看了这道题的四个问答。有老师说是以body为参考系,也有老师说是以HTML底层元素。我试着把body 的外距margin设为10,但子元素并不是以body的border左上角为参考系的(如图)而是以HTML的00点吧?那就是说 body的position 默认值并不是static吗?
另外就是, 我把body的背景色设为yellow ,为什么body的border以外的地方也会被填充为黄色(如图
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> #par1{ width: 300px; height: 300px; background-color: red; /*margin: -40px;*/ padding: 30px; /*float: left;*/ text-align: right; } #par2{ width: 600px; height: 600px; background-color: orange; /*margin: -40px;*/ padding: 30px; /*float: left;*/ /*position: absolute;*/ text-align: right; } #son1{ width: 100px; height: 100px; background-color: blue; font-size: 20px; position: absolute; top: 0px; left: 0px; text-align: right; } #son2{ width: 210px; height: 210px; background-color: pink; /*text-align: right;*/ font-size: 50px; } body{ background-color: yellow; margin: 10px; padding: 0px; } </style> </head> <body> <div id="par1"> i'm par1 <div id="son1">i'm son1</div> <div id="son2">i'm son2</div> </div> <div id="par2">i'm par2</div> </body> </html>
)?
1回答
同学你好。
1、经试验,元素并不是以body的border左上角为参考系的而是以HTML的00点为参考系的。同学说的没有错。是我说错了呢~这里老师跟你道歉,也感谢同学帮我纠正了我思维中的误区呢~之后也会去修改一下之前答案~ 这个问题本身和浏览器的用户代理有关,但经测试,所有主流浏览器都是以html为准的。但同学可以 以html为准来记忆。
2、默认情况下,给body设置背景颜色,相当于给html和body统一设为一个颜色。这其实是CSS在设计时为了方便考虑的。如果要单独显示出不同的颜色,需要给html设置颜色。
html{ background-color: green; }
显示效果如下:
如果解答了同学的疑问,望采纳~
祝学习愉快~
相似问题