在绝对定位时,div的宽度是不是自适应的?

不是说div的默认宽度是100%吗?
忽然发现,在绝对定位时,div的宽度是自适应的?

    <style>
    .x1{height:50px;background: red;position:absolute;left:50px;top:200px;}
    
    </style>
 </head>
 <body>
  <div class="x1">
  ffffffffffffff
  </div>

连IE6都是这样

clipboard.png

阅读 14k
5 个回答

正常文档流是等于父元素的宽度。
position: abusolute让元素脱离了正常的文档流,宽度为最小宽度(子元素或内容撑起的宽度)。

在绝对定位的时候,块元素有一个特征就是可以自动伸缩
width: auto并且leftright都为0时,你会发现宽度为100%。
详细请见我的博客:CSS position: absolute 绝对定位精讲

我记得:
绝对定位的元素宽度不会继承父元素,而是根据自身内容的多少决定的,但也不会超过父元素的宽度
除非你指定
好久没搞前端了,应该是酱紫

你必须设置宽度,要不然它不会继承的,宽度设置为100%会继承父级的宽度

绝对定位具有包裹性,所以就等于内容多少,也因为包裹性,甚至可以给父元素设置绝对定位来清除浮动。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题