【发布时间】:2017-01-10 21:38:25
【问题描述】:
我有一个项目列表,每个项目都包含各种长度的单词。此列表以页面为中心。为了控制它的自动换行方式,我想让它在每四个项目之后添加一个换行符。
例如,当前包含 8 个项目的列表可能会显示如下:
1 | 2 | 3 | 4 | 5 | 6
7 | 8
显然,它包裹的位置取决于每个项目的宽度,不能是固定宽度。我希望它显示如下:
1 | 2 | 3 | 4
5 | 6 | 7 | 8
目前scss是:
li {
list-style: none;
float: left;
display: inline;
border-right: 2px $cuco-pink solid;
margin-bottom: 10px;
padding: 0 15px;
}
li:nth-child(4) {
border-right: 0px $cuco-pink solid;
}
li:last-child {
border-right: 0px $cuco-pink solid;
}
li:nth-child(4n+5) {
clear: both;
}
在玩了一下午之后,如果我使用 float:left 和 display:inline,我可以在每 4 个项目后换行,但无法使其居中
或者我可以通过使用 float: none 和 display:inline-block 来使其居中,但然后无法正确包装。
请参阅jsfiddle,一旦修复,我将通过更改第 n 个子设置使其响应。
【问题讨论】:
-
是否应该总是每四件物品包装一次?更小和更大的屏幕呢? (这就是发明响应式网格的原因。)
-
是每四个项目包装一次。该列表是用户输入的,属于标准的 WordPress 内容,即 所以我不能使用我通常使用的东西(Foundation6 Block Grid)。
-
这很难。伪元素清除似乎不起作用。有几种解决方案涉及 SO 上的 JavaScript。如果你在 PHP 中工作,你可以在那里做。为每 4 个项目添加一个 CSS 类。
标签: html css list centering word-wrap