为什么在列表(<ul> 或 <ol>)的列表项中添加 display: block 时列表样式消失?

新手上路,请多包涵

这似乎也适用于 display: inline;display: inline-block;

这就是我的意思:

 ul li {
  display: block;
  /* Or display: inline; */
  /* Or display: inline-block; */
}

<ul>
  <li>list item1</li>
  <li>list item3</li>
  <li>list item3</li>
</ul>

对于列表样式,我指的是实际的“项目符号”或“数字”(使用 <ol> 时)

原文由 Fredrik 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 366
2 个回答

这是因为通常情况下, display 被设置为 list-item 对于 <li> 元素。请参阅 W3C CSS3 规范: http ://www.w3.org/TR/css3-lists/#declaring-a-list-item。

要声明列表项,“显示”属性应设置为“列表项”。

请注意,您可以为任意 HTML 元素提供相同的行为;例如,在 display: list-item <div>

原文由 Martijn Pieters 发布,翻译遵循 CC BY-SA 3.0 许可协议

更新的解决方案是使用 :beforecontent

有关工作示例,请参阅此 JSfiddle。 http://jsfiddle.net/t72h3/

 ul li {
  display: inline-block;
}

ul li:before {
  content: "• ";
}

<ul>
  <li>list item1</li>
  <li>list item3</li>
  <li>list item3</li>
</ul>

原文由 alex 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题