我的布局类似于:

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

我希望div只扩展到表的宽度。


当前回答

可以对父元素使用display:flex

#parentElement {
   display: flex;
   flex-direction: column;
   align-items: flex-start;
 }

其他回答

我通过在div标记中添加span标记,并将CSS格式从外部div标记移动到新的内部span标记,解决了一个类似的问题(我不想使用display:inline块,因为项目居中)。如果display:inline块不是适合您的答案,那么就把它作为另一个备选方案。

您可以尝试fit内容(CSS3):

div {
  width: fit-content; 
  /* To adjust the height as well */ 
  height: fit-content;
}

浏览器支持规格

display:inline块为元素添加额外的边距。

我建议这样做:

#element {
    display: table; /* IE8+ and all other modern browsers */
}

奖金:你现在只需添加margin:0auto,就可以轻松地将这个新奇的#元素居中。

我只需要设置填充:-whateverYouWantpx;

这似乎是一个13年前的问题。

.div{
display:inline-block;
}

or

.div{
display:inline-flex;
}

现在可以工作几天,没有任何兼容性问题。