为何CSS重置规则优先级高于我的覆盖样式?求解答
问题解答
你的理解没错——开发者工具里被划掉的CSS规则确实是被更高优先级的规则覆盖,本身不会生效。但你遇到的情况,根源是真正导致圆点不显示的是另一条没被划掉的重置规则,只是你误以为是那条划掉的规则在起作用。
结合你的代码和描述,大概率是这两个原因:
1. 重置规则作用在了<li>上
很多CSS重置会写 li { list-style: none; },而你只给<ul>加了list-style:disc。list-style属性默认是继承,但如果<li>被直接设置了list-style:none,<ul>的样式就无法传递下去——此时<ul>的重置规则被你的内联样式覆盖(所以划掉),但<li>的重置规则没被覆盖,圆点自然不显示。
2. <ul>的padding-left被重置为0
列表圆点是显示在<ul>的padding区域内的,如果重置规则给<ul>加了padding-left:0,哪怕你设置了list-style:disc,圆点也会被挤出容器外,肉眼看不到。而你的内联样式没设置padding-left,这条重置规则就会生效。
解决方法
给你调整后的代码示例,直接解决居中+显示圆点的问题:
<!-- 父元素设置text-align:center,让inline-block的ul居中 --> <div style="text-align:center;"> <ul style="display:inline-block; list-style:disc; line-height:1.5; padding-left:1.5em;"> <li style="list-style:disc;"><h6>something</h6></li> <li style="list-style:disc;"><h6>something</h6></li> </ul> </div>
如果不想用内联样式(推荐写法),可以用外部CSS:
.center-list-container { text-align: center; } .center-list-container ul { display: inline-block; list-style: disc; line-height: 1.5; padding-left: 1.5em; /* 恢复默认padding,让圆点显示 */ } .center-list-container ul li { list-style: disc; /* 覆盖li上的重置规则 */ }
<div class="center-list-container"> <ul> <li><h6>something</h6></li> <li><h6>something</h6></li> </ul> </div>
内容的提问来源于stack exchange,提问作者0x02
相关产品推荐
相关产品推荐

