我有一个容器,我不想设置为内联块,并且包含内联块元素。 这些元素将溢出容器而不是扩展它。 如何设法阻止此行为?
#inline-block-container {
background-color: red;
white-space:nowrap;
}
.inline-block-element {
background-color: blue;
width: 50px;
height: 30px;
margin: 10px;
display:inline-block;
}
在这个演示中,我希望红色矩形扩展(甚至在视口之外)以包含(视觉上)所有蓝色矩形。
- 编辑 -
您可以看到停在窗口右边界的背景(渐变浅灰色)(向右滚动之前)。 还有一个错误定位的引导工具提示(黑色)和上下文菜单相同。 容器,正文和html标记在初始视图之外不会出现,因为内联块元素溢出其容器之外。
我无法在css中设置大小,因为元素(dimgray)的内容可能会发生变化。
我尝试将容器设置为display:table:相同的结果。 我尝试过的位置:绝对:它会制动东西并且不能解决问题。 我试过inline-flex:结果相同。
提前致谢。
致以最诚挚的问候,
答案 0 :(得分:5)
绝对定位父div将启用此功能,但这可能不适合您的要求。
#inline-block-container {
background-color: red;
white-space: nowrap;
position: absolute;
width: auto;
}
#inline-block-container {
background-color: red;
white-space: nowrap;
position: absolute;
width: auto;
}
.inline-block-element {
background-color: blue;
width: 50px;
height: 30px;
margin: 10px;
display: inline-block;
}

<div id="inline-block-container">
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
</div>
&#13;
或者正如Nenad Vracar所提到的...... display:table
#inline-block-container {
background-color: red;
white-space: nowrap;
display: table;
width: auto;
}
#inline-block-container {
background-color: red;
white-space: nowrap;
display: table;
width: auto;
}
.inline-block-element {
background-color: blue;
width: 50px;
height: 30px;
margin: 10px;
display: inline-block;
}
&#13;
<div id="inline-block-container">
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
</div>
&#13;
或者正如Nenad Vracar所提到的...... display:inline-flex
#inline-block-container {
background-color: red;
white-space: nowrap;
display: inline-flex;
width: auto;
}
#inline-block-container {
background-color: red;
white-space: nowrap;
display: inline-flex;
width: auto;
}
.inline-block-element {
background-color: blue;
width: 50px;
height: 30px;
margin: 10px;
display: inline-block;
}
&#13;
<div id="inline-block-container">
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
<div class="inline-block-element"></div>
</div>
&#13;
从本质上讲,这些方法实际上indistinguishable使用display:inline-block
,而且#34;缩小以适应&#34;属性。行框和white-space:nowrap
的工作方式基本相同,以保持背景颜色。
了解您反对inline-block
的原因将大大有助于找出最合适的选择。