CSS3 多列列表

Posted

技术标签:

【中文标题】CSS3 多列列表【英文标题】:CSS3 multi-column list 【发布时间】:2014-04-27 12:34:48 【问题描述】:

我现在已经在几个 Wordpress 网站上使用 CSS3 多列,我发现例外但我仍然想知道如何解决的一件事是,如果我在列中放置一个列表(带有子项)它不会保留列表的结构

为了让自己清楚,这是 html

<div>
<ul>
   <li>
      List-item
      <ul>
         <li>Sub-list-item</li>
         <li>Sub-list-item</li>
      </ul>
   </li>
   <li>
      List-item
      <ul>
         <li>Sub-list-item</li>
         <li>Sub-list-item</li>
      </ul
   </li>
</ul>
</div>

CSS 将是:

div
-webkit-column-count:3;   
    -moz-column-count:3;
    -ms-column-count:3;
    -o-column-count:3;
    column-count:3;
    -webkit-column-gap:15px;   
    -moz-column-gap:15px;
    -ms-column-gap:15px;
    -o-column-gap:15px;
    column-gap:15px;
    columns:3;

这就是你得到的:

这很好,因为它可以在 Wordpress 中显示这样的菜单。 但让我烦恼的一件事是,它将子列表项放在下一列中,而该项目的父项位于上一列中。

这可以修复吗?

在任何人说:为什么不创建多个列表并创建自己的列之前(这是我询问如何执行此操作的问题时的建议),这是针对动态 Wordpress 菜单,所以我无法控制如何菜单中有很多项目。

【问题讨论】:

【参考方案1】:

让你的父母 &lt;li&gt; display: inline-block; 似乎“解决”了这个问题:

这是一个演示 http://jsfiddle.net/DczVL/1/

ul 
    list-style: none;
    margin:0;
    padding:0;

ul > li 
    display: inline-block;
    width: 100%;

ul > li > ul >li 
    color: red;

div 
    -webkit-column-count:3;
    -moz-column-count:3;
    -ms-column-count:3;
    -o-column-count:3;
    column-count:3;
    -webkit-column-gap:15px;
    -moz-column-gap:15px;
    -ms-column-gap:15px;
    -o-column-gap:15px;
    column-gap:15px;
    columns:3;
<div>
    <ul>
        <li>List-item
            <ul>
                <li>Sub-list-item</li>
                <li>Sub-list-item</li>
            </ul>
        </li>
        <li>List-item
            <ul>
                <li>Sub-list-item</li>
                <li>Sub-list-item</li>
                <li>Sub-list-item</li>
                <li>Sub-list-item</li>
            </ul>
        </li>
         <li>List-item
            <ul>
                <li>Sub-list-item</li>
                <li>Sub-list-item</li>
                <li>Sub-list-item</li>
                <li>Sub-list-item</li>
            </ul>
        </li>
    </ul>
</div>

【讨论】:

以上是关于CSS3 多列列表的主要内容,如果未能解决你的问题,请参考以下文章

css之dispaly:flex;多行多列

将标题添加到android中的多列列表视图

根据列表大小调整引导菜单多列的大小

CSS3——布局样式

系统地遍历 DF 的多列和多行以跨多列输出不同的列表大小

Labview多列列表框