html - CSS Boxes : float: left, 但跳到下一行时从左边开始

标签 html css css-float

我有几个包含文本的框,它们应该并排显示。它们都有固定的宽度,但高度可变(取决于它们的内容)。它们位于宽度可变的容器内。

如果框太多,我希望它们跳到下一行并再次从左边开始。我使用左浮动框实现了这一点。如果每行的第一个框高于下一个框,这会导致问题,因为新行中的框不会从左侧开始。这是一个演示:

HTML:

<section>
    <article>One: This ​​​​text is so long, it's so long oh my gosh!</article>
    <article>Two</article>
    <article>Three: bla bla bla bla bla bla bla bla</article>
    <article>Four</article>
</section>​

CSS:

section{
    width: 300px; /* For demo, this can vary */
    overflow: hidden;
}
article{
    float: left;
    width: 100px;
    background: #dddddd;
    padding: 10px;
    margin: 10px;
}
​

你也可以看看这个 JSFiddle,你可以立即看到问题:http://jsfiddle.net/dwr6K/方框“三”从方框“一”开始,尽管我希望它从方框“一”下的新行开始。遗憾的是,我不能使用 clear: left,因为我不知道一行可以容纳多少个框。

有没有办法阻止这种情况并以我想要的方式显示它?

最佳答案

此处:http://jsfiddle.net/dwr6K/9/

只需删除 float: left;

并添加

display: inline-block;
vertical-align: top;

文章

正如@JimmyX 所指出的,请仔细阅读这篇关于 Cross-Browser Inline-Block 的帖子

基本上,float:left 的作用是让每个元素紧挨着它能找到的最左边的 div。因此,如果高度不同,您将无法获得所需的布局。

关于html - CSS Boxes : float: left, 但跳到下一行时从左边开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11460546/

相关文章:

javascript - 在移动设备上隐藏元素

html - 可以用 float :right 堆叠 2 个侧边栏

internet-explorer - IE9 正在用视频的缩略图覆盖 HTML5 视频的海报属性

css - <a> 元素导致点击移动

php - 使用 CSS 样式表格式化 PHP 值

javascript - html - 自动将宽度与上面的元素匹配

html - 通过css更改微调器的大小

javascript - Superfish IE7 z-index 错误与 Nivo slider 或 wordpress 中的 Photospace

html - 将一个文本向左浮动,另一个向右浮动

html - CSS Float - 1px 两页完全相同的代码