【发布时间】:2016-07-02 19:52:24
【问题描述】:
我正在尝试找出一种跨浏览器方法来实现无序列表的列式布局。标记来自 CMS,因此我无法在添加类之外修改输出。我可以让列工作,但我还需要指定分栏符,因为列并不总是相等的。标记看起来像:
ul {
list-style: none;
}
.c3 {
-moz-column-count: 3;
-webkit-column-count: 3;
column-count: 3;
}
.colBreak {
-moz-column-break-before: always;
-webkit-column-break-before: always;
column-break-before: always;
font-weight: bold;
}
<ul class='c3'>
<li class='colBreak'>Item1</li>
<li>Item2</li>
<li class='colBreak'>Item3</li>
<li>Item4</li>
<li>Item5</li>
<li>Item6</li>
<li>Item7</li>
<li>Item8</li>
<li>Item9</li>
<li>Item10</li>
<li class='colBreak'>Item11</li>
<li>Item12</li>
<li>Item13</li>
<li>Item14</li>
</ul>
CSS(在 Chrome 甚至在 IE/Edge 中运行良好,但在 Firefox 中失败):
这里想要的结果是 3 列布局(我确实得到了),其中 Item1、Item3 和 Item11 是 3 列中的顶部元素。
在 Chrome 中,它看起来膨胀:
在 Firefox 中,我在 Item1、Item3 和 Item11 上看到粗体字
【问题讨论】:
-
@GCyrillus,确实指出了问题,但我仍然没有可行的替代方案。
-
目前没有 Firefox。您将需要一些棘手的 Javascript 来插入空容器以填充列底部,然后再将您希望看到的元素置于下一列的顶部,将其分解为多个 ul 或不... :(
-
一种使用 margin-bottom 代替增长一些元素的 flex 替代方案,无论哪种方式,高度都应该是固定的 codepen.io/anon/pen/JXEyqE 和列数/填充版本 codepen.io/anon/pen/MyJEgY 不知道如何通过 js 解决这个问题,手动很容易
标签: html css firefox css-multicolumn-layout