css - 如何使用列中的元素水平设置 <ul> 样式?

标签 css html-lists

考虑这个 HTML:

<ul>
    <li>One</li>
    <li>Two</li>
    <li>Three</li>
    <li>Four</li>
    <li>Five</li>
    <li>Six</li>
</ul>

我想得到这个结果:

One    Three    Five
Two    Four     Six

或者这个:

One      Four
Two      Five
Three    Six

这可以用 仅 CSS 完成吗?

最佳答案

CSS3 column会实现你正在寻找的东西,fiddleMDN link

ul {
  -webkit-column-count: 3;
  -webkit-column-gap: 20px;  
  -moz-column-count: 3;
  -moz-column-gap: 20px;
  column-count: 3;
  column-gap: 20px;
}

如您所见,它仍然需要供应商前缀,但所有主流浏览器都支持 can I use

编辑

避免在 <li> 内部破裂正如@andrew 对他的回答所评论的那样,添加

li {
     -webkit-column-break-inside: avoid;
     -moz-column-break-inside: avoid;
     column-break-inside: avoid;
}

已更新 fiddle

关于css - 如何使用列中的元素水平设置 <ul> 样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24317148/

相关文章:

css - 如何增加 li 中的子弹大小?

javascript - css 从一个选项卡应用到另一个选项卡

html - 如何去除不需要的边距

css - 改变高度而不影响其他元素

php - 如何在主菜单 ul 上使用类而不是 wordpress 中的 div

php - 是否可以关闭 </ul> 并在循环中添加新的 <ul> ?

html - 如何将按钮和一些文本排成一行,并使文本垂直对齐 : middle;?

html - 如何在 CSS 中使用外部字体

jquery - Bootstrap twitter glyphicon 阴影 css

html - Outlook - 电子邮件 - HTML - CSS - 右对齐内容