You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何body设置display:inline后子元素li未继承该样式?

为什么给body设置display: inline无法让子元素变成行内元素?

核心原理:display属性的继承逻辑
CSS的display属性并非所有值都会自动被子元素继承。只有当显式设置display: inherit时,子元素才会继承父元素的display值;而inline、block这类具体的显示类型值,不会默认传递给子元素。每个HTML元素都有浏览器预设的默认display值,比如ul默认是block,li默认是list-item,这些默认值不会因为父元素的display改变而自动覆盖。

代码示例1分析
给body设置display: inline后,只有body元素本身会变成行内元素,但它的子元素ul依然保持默认的block显示类型,li也还是默认的list-item。所以页面中的列表依然以块级方式布局,和body的display设置无关。

代码示例2分析
给li设置display: inherit时,li会继承它直接父元素ul的display值。由于ul的默认display是block,所以li继承到的是block,而非body的inline。同时,li默认的list-item类型会被覆盖,原本的列表标记(圆点)也会随之消失,这就是你看到的结果。

正确实现li行内显示的方法
如果想让li以行内方式显示,直接给li设置display: inline或display: inline-block即可:

li {
  display: inline;
}

内容的提问来源于stack exchange,提问作者Michael36

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 01:15:55