【发布时间】:2017-01-22 22:05:46
【问题描述】:
目前我有一个最大宽度为 200px 的 div,在 div 内有一些 span 的属性为 white-space:nowrap 和 display:inline-block。
.a {
max-width:200px;
}
.b {
display: inline-block;
white-space:nowrap;
}
<div class="a">
<span class="b">A</span> <span class="b">B</span>
<span class="b">C</span>
</div>
当前的行为是当 span A 和 span B 的长度超过 div 的 max-width 时, span B 被换行到下一行。
<div class="a">
<span class="b">A</span> Empty space here
<span class="b">B</span> Empty space here
<span class="b">C</span> Empty space here
</div>
但是,div 的宽度并没有根据 span 的长度调整大小。它始终具有 200px 的宽度,这导致跨度后有空白空间的问题。
我想要的是确保 div 按跨度的长度调整大小,没有任何空白。
谁能帮我解决这个问题?我不是直接要求答案。一些解释会更好。
【问题讨论】:
-
您期望会发生什么?如果 A+B 不能放在同一行并且你放了 nowrap 所以 span 的内容不能进入下一行,inline-block 属性会将 B 推到下一行。
-
第一个有A+B的行会在B推到下一行后变短吧?我期望看到的是 div 的宽度应该比 A 或 B 或 C 的长度宽一点。但实际结果是跨度 A(或 B 或 C)之间有很多空白和 div 的右侧。