打破CSS中内联块的水平布局

时间:2013-02-01 15:09:59

标签: css

我有许多LI,我正在使用内联块放置。

它非常好用,我看到了

| [LI1]-[LI2]-[LI3] |
| [LI4   ]-[LI5]    |
| [LI6]-[LI7]-[LI8] |

在我的浏览器上,具体取决于窗口宽度和单个LI的宽度。

我希望在一些LI之后,“换行”。例如,在LI2之后加上“换行符”,我会看到

| [LI1]-[LI2]       |
| [LI3]-[LI4   ]    |
| [LI5]-[LI6]-[LI7] |
| [LI8]             |

当然,也可能是LI3也打破了这条线。

我可以完全控制每个LI的CSS。

谢谢!

2 个答案:

答案 0 :(得分:0)

我不会用CSS技巧来做这件事 - 我会修改我的HTML以反映你想要显示的列表的结构。

在这里,您可以说<li>的每个水平集都是自己的<ul>。所以你有一份清单。

检查this JsFiddle。 通过这种方式,您可以获得结果而不会在某些CSS中隐藏行为,并且很容易看到标记中发生了什么。

编辑:好的,因为您无法触摸HTML,您可以将所有<li>向左浮动,然后在每行<li>上创建第一个clear:left。见this edit to the JsFiddle ...

答案 1 :(得分:0)

如果你想要一个特定的元素“换行”,你只需要添加一个明确的。

.myelement {
  clear: both;
}


<li>Hi</li>
<li>There</li>
<li class="myelement">Neighbor!</li>

元素自然迁移到左侧。如果所有元素都设置为float:left,它们将全部迁移到左侧,然后在每次空间耗尽时中断。 clear:both;使它们成为该行的唯一项目。