在li元素内部显示flex隐藏编号



我需要对有序列表中的li元素使用display:flex。问题是弹性意志隐藏列表编号。以下是一个示例:http://jsfiddle.net/pzpeam7o/

我在li元素中使用跨距。在调整页面大小时,flex允许更好的行为。

HTML:

<!DOCTYPE html>
<head lang="en">
    <title></title>
    <link rel="stylesheet" href="style.css"/>
</head>
<body>
    <ul>
        <li class="lst"> First item</li>
        <li class="lst"> Second item</li>
        <li class="lst"> Third item</li>
        <li class="lst"> Fourth item</li>
    </ul>
</body>

CSS:

.lst {
    list-style-type: decimal;
    display: flex;
}

我完全不知道它为什么隐藏它…但是。。。

解决方案可能是使用CSS Counter模拟十进制列表,并在列表项上放置:before伪值。这样你就有了display: flex,你的号码还在那里。。。

更好的是,如果你只想用不同的方式设计数字,你可以!!

body {
    counter-reset: section;
}
.lst {
	display: flex;
}
.lst:before {
    counter-increment: section;
    content: counter(section) ".";
    position: absolute;
    margin-left: -20px;
}
<ul>
    <li class="lst"> First item</li>
    <li class="lst"> Second item</li>
    <li class="lst"> Third item</li>
    <li class="lst"> Fourth item</li>
</ul>

首先,flex模型的概念是错误的。display:flex不在项目上,而是在容器块上,所以在您的情况下,它应该在<UL>中,如下所示:

ul {
    display: flex;
}
.lst {
    list-style-type: decimal;
    margin:auto;
}

现在,如果你检查这个Fiddle,你会在那里看到你的数字。坏消息是:Mozilla中有一个记录在案的错误,不适用于Firefox,它只显示0。

所以,尽管如此,我还是建议在这种情况下放弃Flex模型,或者改变你的方法(为什么不使用带计数器的div?),因为你正在寻找麻烦和跨浏览器问题,而这些问题不值得他们提供的任何解决方案

编辑:现在我看到了LcSalazar的答案,他也建议使用计数器,尽管使用了另一种方法,所以我认为你可以尝试使用我的答案加上LcSala扎尔的计数器,并在仍然使用完全灵活模型的情况下获得跨浏览器的结果。它可能会起作用。

最新更新