我在外部div中有2个内部div,我想让外部div自动适应内部div的宽度。这可能吗?
body {
font-size: 0;
}
#outer {
border: 1px solid black;
}
.inner {
font-size: 12px;
display: inline-block;
border: 1px solid red;
}

<div id='outer'>
<div class='inner'>text1</div>
<div class='inner'>text2</div>
</div>
&#13;
答案 0 :(得分:10)
您的outer
div是块级元素。您需要将其设为内联级元素。 Inline
个元素会自动获取其包含的内容的大小。就您提出的问题而言,只需设置:
display: inline-block
你的外部div上的就可以了。有关演示的信息,请参阅下面的代码段:
body {
font-size: 0;
}
#outer {
border: 1px solid black;
display: inline-block;
}
.inner {
font-size: 12px;
display: inline-block;
border: 1px solid red;
}
&#13;
<div id='outer'>
<div class='inner'>
text1
</div>
<div class='inner'>
text2
</div>
</div>
&#13;
希望这有帮助!!!
答案 1 :(得分:1)
添加“display:table;”到#outer css:
例如:
#outer {
border: 1px solid black;
display: table;
}
使用display:table比使用inline
更具侵入性答案 2 :(得分:0)
如果您将position:absolute;
或float:left;
添加到#outer
,则会将其大小调整为两个内部div
。对于这个例子,我会使用float
。对于可能随着时间的推移而改变或扩展/缩小的内容,Floats
通常会更好,而absolute positioning
应该在文档流或文档结构之外使用,例如导航栏。
编辑:如果您不需要其他元素在外部div
周围流动,则下面发布的display:inline-block
方法将有效,但如果您有要素流动的元素{{1那么#outer
将是你要走的路。假设您将float:left
作为宽度的50%,并希望使用#outer
在页面的另一半上显示其他内容,则会将其他元素放在display:inline-block
下方。