将<li>标签的长列表分成列?

cor*_*ore 15 css

我有大约30名单<li><ul>.有没有办法,使用CSS,将这些分为三列十?

Zac*_*ach 35

在CSS3中,这是可能的.

#columns {
  -moz-column-count: 3;
  -moz-column-gap: 20px;
  -webkit-column-count: 3;
  -webkit-column-gap: 20px;
  column-count: 3;
  column-gap: 20px;
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<div id="columns">
  <ul>
... lots of lis ...
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

当列表项超过容器的高度时,列表项将溢出到下一列.

也许对于较旧的浏览器,您可以使用JavaScript,因为这似乎比一个关键功能更美观.

  • 一些答案在年龄增长时变得更好:) (7认同)
  • "目前支持Firefox 1.5+和Safari 3",我认为Chrome和其他Webkit衍生产品.没有IE :( (2认同)

wil*_*ler 8

我通常将宽度设置为28%并向左浮动:

ul li {
   width: 28%;
   margin: .5em 2%;
   float:left;
}
Run Code Online (Sandbox Code Playgroud)

这样做的缺点是项目填充如下:

- - -
- - -
-
Run Code Online (Sandbox Code Playgroud)

不喜欢:

- - -
- -
- -
Run Code Online (Sandbox Code Playgroud)

如果您想要垂直填充列,则需要3 <ul> s.

  • 是的,回到'09 css3并不是今天的全部. (9认同)
  • 或者只做`column-count:3; 柱隙:10px的;` (2认同)