如何使div不大于其内容?

我有一个类似的布局。

<div>
    <table>
    </table>
</div>

我想让 "div "只扩展到 "table "的宽度。

你想让一个块状元素具有CSS所说的收缩到合适的宽度,而规范中并没有提供一个得天独厚的方法来获得这样的东西。在CSS2中,收缩到合适的宽度不是一个目标,而是处理浏览器不得不凭空得到一个宽度的情况的手段。这些情况是:。

  • 浮动
  • 绝对定位的元素
  • inline-block元素
  • 表格元素

当没有指定宽度时。我听说他们考虑在CSS3中加入你想要的东西。现在,就用上面的一种方法吧。

不直接暴露该功能的决定可能看起来很奇怪,但有一个很好的理由。它很昂贵。适应性收缩意味着至少要格式化两次:在你知道一个元素的宽度之前,你不能开始格式化它,而且你不能在不浏览整个内容的情况下计算出宽度。此外,人们并不像想象中那样经常需要收缩到合适的元素。为什么你需要在表格周围增加div?也许表格标题就是你所需要的一切。

评论(4)

我不知道这将在什么情况下出现,但我相信CSS-style属性float无论是left还是right都会有这种效果。另一方面,它也会有其他的副作用,比如允许文本漂浮在它周围。

如果我说错了,请纠正我,我不是100%确定,而且目前也无法亲自测试。

评论(1)

一个兼容CSS2的解决方案是使用。

.my-div
{
    min-width: 100px;
}

你也可以浮动你的div,这将迫使它尽可能的小,但是如果你的div里面有任何东西是浮动的,你就需要使用clearfix

.my-div
{
    float: left;
}
评论(2)