【发布时间】:2014-01-28 01:47:50
【问题描述】:
JSFiddle:Example
我正在寻找一种方法让容器 div 的高度等于其最高的孩子。
每个其他孩子的大小都应与容器的高度一致。
如果子项超出其宽度,我还需要容器水平滚动。
到目前为止,我已经尝试过使用 inline-block 和 float: left 但没有得到我想要的结果。设置高度:100% 对孩子也没有预期的效果。在容器上使用 overflow: auto 仍然将最后一个元素包裹到下一行。
我非常有信心,我可以使用 JavaScript 通过抓取最高孩子的高度并适当调整大小并在容器上设置固定高度来实现这一点。不过我宁愿不使用 JavaScript,而且我认为这可能只是使用 CSS 技巧。
HTML
<div>
<div class='boxed'><ul><li>1</li></ul></div>
<div class='boxed'><ul><li>1</li><li>2</li></ul></div>
</div>
<div class='container'>
<div class='boxed'><ul><li>1</li></ul></div>
<div class='boxed'><ul><li>1</li><li>2</li></ul></div>
<div class='boxed'><ul><li>1</li><li>2</li></ul></div>
<div class='boxed'><ul><li>1</li><li>2</li></ul></div>
<div class='boxed'><ul><li>1</li><li>2</li></ul></div>
<div class='boxed'><ul><li>1</li><li>2</li></ul></div>
<div class='boxed'><ul><li>1</li><li>2</li><li>3</li></ul></div>
<div class='boxed'><ul><li>1</li><li>2</li></ul></div>
<div class='boxed'><ul><li>1</li><li>2</li></ul></div>
<div class='boxed'><ul><li>1</li><li>2</li></ul></div>
<div class='boxed'><ul><li>1</li><li>2</li></ul></div>
<div class='boxed'><ul><li>1</li><li>2</li></ul></div>
</div>
CSS
.boxed { display: inline-block; border: 1px solid black; }
.container { overflow-x: auto; }
【问题讨论】: