将父元素的定位方式从绝对改为相对,红色正方形微调
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | <!DOCTYPE html> < html > < head > < meta charset = "UTF-8" > < title >Document</ title > < style > /*完善下列代码*/ .per{ width: 300px; height: 300px; background: red; margin-left:200px; margin-top: 200px; position:relative; } .son{ width: 100px; height: 100px; background: blue; position:absolute; top:100px; left:100px; } </ style > </ head > < body > < div class = "per" > < div class = "son" ></ div > </ div > </ body > </ html > |
如上代码,将per的position属性由relative改为absolute后,红色正方形会微微向下移动,请问是什么原因?
58
收起
正在回答 回答被采纳积分+1
2回答
好帮手慕阿满
2020-09-16 18:49:59
同学你好,将绝对定位和相对定位的效果截图做比较,如:
可以发现绝对定位时,有8px的margin-top和margin-left。
这是因为绝对定位时,是相对于元素最近的已定位的祖先元素(即是设置了绝对定位或者相对定位的祖先元素)。如果元素没有已定位的祖先元素,那么它的位置则是相对于最初的包含块(body)。
这里红色方框per外没有定位元素,所以per是相对于body进行定位的,而body有默认的8px外边距,造成绝对定位时,有8px的margin-top和margin-left。如果给body设置了margin:0;,则相对定位和绝对定位效果一致。
祝:学习愉快~
java工程师2020版
- 参与学习 人
- 提交作业 9404 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧