Demo如下:https://jsfiddle.net/y4okbek1/6/
如果把div1的position换成absolute就会得到这个标签的大小,为什么relative不行?
Demo如下:https://jsfiddle.net/y4okbek1/6/
如果把div1的position换成absolute就会得到这个标签的大小,为什么relative不行?
13 回答12.8k 阅读
8 回答2.6k 阅读
2 回答5.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
5 回答852 阅读
3 回答2.2k 阅读
5 回答1.2k 阅读✓ 已解决
说说我个人的理解吧
position: absolute
相对于最近非static
父元素定位,top
bottom
left
right
是各个边到其最近的非static
父元素的距离,这里就是html
了,当设置就给这个
div
设定了到各个边界的距离,从而相当于设置了width
height
,给它设置了背景色,所以看着这个div
有大小了,ps.这时候这个div
形成了一个BFC
position: relative
相对于自身的位置定位,几次试验证明,当同时给定位为relative
的元素设置top
bottom
,起作用的是top
,left
right
中起作用的是left
,至于为什么?可能是标准规定,也可能是浏览器实现的原因。此时,这个
div
也是有大小的,未给div1设置width
height
,其width
与父元素相同,而height
由子元素撑起来,所以,div1的大小和div2的大小是一样的,只是div2设置了背景蓝色,覆盖了div1,“看”不到而已。如果把div2的width
设置为50%,效果会明显点补充:
MDN上有这样一段描述:
翻译:
相对定位元素也是同理。