8

我在一个固定宽度的 div 中有几个 HTML 元素。内部元素的宽度之和大于容器的宽度。如何使内部元素显示为内联(并显示水平滚动)而不是在达到父级宽度后中断?

我可以添加一个包装器并为其分配一个最小宽度,但我想要一些在内容发生变化时会改变其大小的东西。

<div id="container">
    <div class="contents" id="one"></div>
    <div class="contents" id="two"></div>
    <div class="contents" id="three"></div>
    <div class="contents" id="four"></div>
</div>

#container {
    width: 100px;
    background-color: #CCC;
    overflow: auto;
    height: 100px;
}

.contents {
    width: 35px;
    height: 60px;
    float: left;
}
#one {
    background-color:#ABC;
}
#two {
    background-color:#333;
}
#three {
    background-color:#888;
}
#four {
    background-color:#AAA;
}

http://jsfiddle.net/elohr/G5YZ6/2/

谢谢!

4

3 回答 3

23

使用display:inline-block代替float:left,并添加white-space:nowrap;到容器中。如果需要,添加white-space:normal到内容元素。演示

于 2013-04-25T01:56:56.380 回答
3

试试这个:

  1. 替换float: leftdisplay: inline-block;
  2. 用于white-space: nowrap;容器。

CSS:

#container {
    width: 100px;
    background-color: #CCC;
    overflow: auto;
    height: 100px;
    white-space: nowrap;
}

.contents {
    width: 35px;
    height: 60px;
    display: inline-block;
}

小提琴:http: //jsfiddle.net/praveenscience/G5YZ6/6/

于 2013-04-25T01:58:41.740 回答
0

在您的根 DIV 元素中,您始终可以指定溢出是可滚动的:

<div id="container" style="overflow: scroll;">
  <div class="contents" id="one"></div>
  <div class="contents" id="two"></div>
  <div class="contents" id="three"></div>
  <div class="contents" id="four"></div>
</div>
于 2013-04-25T02:00:33.827 回答