开发者社区> 问答> 正文

relative不能通过top等偏移元素来指定大小?

Demo如下:https://jsfiddle.net/y4okbek1/6/点击预览
如果把div1的position换成absolute就会得到这个标签的大小,为什么relative不行?

展开
收起
a123456678 2016-05-27 17:41:01 2216 0
1 条回答
写回答
取消 提交回答
  • 说说我个人的理解吧
    position: absolute相对于最近非static父元素定位,top bottom left right是各个边到其最近的非static父元素的距离,这里就是html了,当设置

    position: absolute;
    top:50px;
    bottom:100px;
    left:50px;
    right:50px;
    就给这个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%,效果会明显点

    2019-07-17 19:18:29
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Top 5 mistakes when wriiting a 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载