我需要将.child
div作为其内容,但与此同时,.child
div是具有水平滚动条的元素的子项。
有没有办法不必使用fit-content
(适合/最小/最大)和没有javascript?
演示: http://codepen.io/FezVrasta/pen/ZQOjZj
我有这个CSS:
.parent
width: 100px
overflow: auto
background: yellow
.child
background: cyan
height: 20px
white-space: nowrap
答案 0 :(得分:3)
只需显示.child
inline-block
:
(触针)
.child
background: cyan
height: 20px
white-space: nowrap
display:inline-block;
(编译)
.parent .child {
background: #0ff;
height: 20px;
white-space: nowrap;
display: inline-block;
}
内联和内联块元素shrink to fit其内容,除非设置了宽度或高度。
或者,一个工作片段:
.parent {
width: 100px;
overflow: auto;
background: #ff0;
}
.parent .child {
background: #0ff;
height: 20px;
white-space: nowrap;
display: inline-block;
}

<div class="parent">
<div class="child">child child child child</div>
</div>
&#13;
答案 1 :(得分:1)
发生这种情况的原因是.child
元素是块级元素,其默认宽度为100%
。这导致.child
元素具有与父元素相同的宽度。
您可以将display: inline-block
添加到.child
元素。这样做时,它将具有"shrink-to-fit" width并获取文本的宽度尺寸。
.parent .child {
background: #0ff;
height: 20px;
white-space: nowrap;
display: inline-block;
}
或者,将display
设置为table
也会产生类似的影响。
.parent .child {
background: #0ff;
height: 20px;
white-space: nowrap;
display: table;
}