如果`li`元素是一个flexbox,那么项目符号将不会显示?

nop*_*ole 12 css flexbox

如果我们有一个无序列表,默认是有项目符号的:

<ul>
  <li>hello</li>
  <li>world</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

然而,如果我们做到了display: flex,项目符号就不会再显示了:

li { display: flex }
Run Code Online (Sandbox Code Playgroud)
<ul>
  <li>hello</li>
  <li>world</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

CSS 中是否有这样的规则,因为显示项目符号可能仍然很自然,但让

ul { list-style-type: none; }
Run Code Online (Sandbox Code Playgroud)

控制是否显示项目符号。

小智 5

是的你是对的。使用 display:flex 你告诉 ul 它不再是 display:list 了。如果您希望使用 Flex 使用伪元素显示项目符号:

ul li:before {
    content: "";
    position: absolute;
    transform: translateY(-50%);
    top: 50%;
    border-radius: 50%;
    left: 0;
    margin-top: -7px; /* half bullet height */
    width: 14px;
    height: 14px;
    background: #000;
}
Run Code Online (Sandbox Code Playgroud)

  • 一个更简单的选择可能是在使用 flex 样式的“&lt;li&gt;”标签内添加嵌套的 div/span 元素 (2认同)