我想更改无序列表中的点颜色:
<ul>
<li></li>
</ul>
有没有办法可以用CSS做到这一点?我看不到房产?
答案 0 :(得分:44)
最简单(但非语义)方式是将内容包装在span
标记中,然后将项目符号颜色应用于li
,将文本颜色应用于span
。
在代码中:
<ul>
<li><span>text</span></li>
<li><span>text</span></li>
<li><span>text</span></li>
</ul>
ul li {
/* Bullet color */
color: red;
list-style-type: disc;
}
ul li span {
/* Text color */
color: black;
}
如果您无法修改HTML,则可以将list-style-image
与自定义颜色的点一起使用,或使用生成的内容(即li:before
)并相应地对其进行着色(但请注意列表子弹位置问题)。
ul li {
/* Text color */
color: black;
list-style-type: none;
}
ul li:before {
/* Unicode bullet symbol */
content: '\2022 ';
/* Bullet color */
color: red;
padding-right: 0.5em;
}
答案 1 :(得分:10)
进一步发展@BoltClock给出的答案:
ul li {
color: black;
list-style-type: none;
}
ul li:before {
color: red;
float: left;
margin: 0 0 0 -1em;
width: 1em;
content: '\2022';
}
通过这种方式,多线子弹的所有线都可以正确缩进。注意:我还没有机会在IE上测试它!
答案 2 :(得分:2)
您可以创建自己的图片。
li {
list-style-image: url(myImage.gif);
}
答案 3 :(得分:2)
上述答案都不适合我,因为我的内容包含多行。然而,W3C提供的解决方案是完美的: https://www.w3.org/Style/Examples/007/color-bullets.en.html
简而言之,删除样式:
ul {list-style: none}
然后添加你自己的子弹
li::before {
content: "•";
color: red;
display: inline-block;
width: 1em;
margin-left: -1em
}
关键点是内联块,宽度和边距,以便正确定位。
答案 4 :(得分:0)