【发布时间】:2008-09-16 20:23:47
【问题描述】:
我想要的只是能够将列表中项目符号的颜色更改为浅灰色。它默认为黑色,我不知道如何更改它。
我知道我可以只使用一张图片;如果我能帮上忙,我宁愿不这样做。
【问题讨论】:
-
我会自己使用图像并避免额外的标记。这可能是更有效的解决方案
-
谁在乎这样的“额外”标记......说真的,你这样做不会有任何损失。
标签: html css html-lists
我想要的只是能够将列表中项目符号的颜色更改为浅灰色。它默认为黑色,我不知道如何更改它。
我知道我可以只使用一张图片;如果我能帮上忙,我宁愿不这样做。
【问题讨论】:
标签: html css html-lists
项目符号从文本中获取颜色。因此,如果您想在列表中使用与文本不同颜色的项目符号,则必须添加一些标记。
将列表文本包装在一个跨度中:
<ul>
<li><span>item #1</span></li>
<li><span>item #2</span></li>
<li><span>item #3</span></li>
</ul>
然后稍微修改你的样式规则:
li {
color: red; /* bullet color */
}
li span {
color: black; /* text color */
}
【讨论】:
:before,如下面的 Marc 回答中所示。
b 标签会更合适。
我没有添加标记,而是使用 li:before 来管理它。这显然具有:before 的所有限制(不支持旧的 IE),但经过一些非常有限的测试后,它似乎可以与 IE8、Firefox 和 Chrome 一起使用。它在我们的控制器环境中工作,想知道是否有人可以检查这个。项目符号样式也受到 unicode 的限制。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<style type="text/css">
li {
list-style: none;
}
li:before {
/* For a round bullet */
content:'\2022';
/* For a square bullet */
/*content:'\25A0';*/
display: block;
position: relative;
max-width: 0px;
max-height: 0px;
left: -10px;
top: -0px;
color: green;
font-size: 20px;
}
</style>
</head>
<body>
<ul>
<li>foo</li>
<li>bar</li>
</ul>
</body>
</html>
【讨论】:
这在 2008 年是不可能的,但很快就会(希望如此)成为可能!
根据The W3C CSS3 specification,您可以使用::marker 伪元素完全控制在列表项之前生成的任何数字、字形或其他符号。
将此应用于投票最多的答案的解决方案:
<ul>
<li>item #1</li>
<li>item #2</li>
<li>item #3</li>
</ul>
li::marker {
color: red; /* bullet color */
}
li {
color: black /* text color */
}
但请注意,截至 2016 年 7 月,此解决方案只是 W3C 工作草案的一部分,尚不适用于任何主流浏览器。
如果您想要此功能,请执行以下操作:
【讨论】:
<ul>
<li style="color: #888;"><span style="color: #000">test</span></li>
</ul>
这种方法的最大问题是额外的标记。 (跨度标签)
【讨论】:
b 标签会更合适。
您好,也许这个答案已经晚了,但它是实现这一目标的正确答案。
好吧,事实是你必须指定一个内部标签来使 LIst 文本显示为通常的黑色(或者你想要的任何东西)。但是,您也可以使用 CSS 重新定义任何标签和内部标签。因此,最好的方法是使用 SHORTER 标记进行重新定义
使用这个 CSS 定义:
li { color: red; }
li b { color: black; font_weight: normal; }
.c1 { color: red; }
.c2 { color: blue; }
.c3 { color: green; }
还有这个html代码:
<ul>
<li><b>Text 1</b></li>
<li><b>Text 2</b></li>
<li><b>Text 3</b></li>
</ul>
您会得到所需的结果。您还可以使每个光盘的颜色不同:
<ul>
<li class="c1"><b>Text 1</b></li>
<li class="c2"><b>Text 2</b></li>
<li class="c3"><b>Text 3</b></li>
</ul>
【讨论】:
只需在图形程序中做一个项目符号并使用list-style-image:
ul {
list-style-image:url('gray-bullet.gif');
}
【讨论】:
list-style-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Ccircle cx='256' cy='256' r='256' fill='#ff0000' /%3E%3C/svg%3E");
使用 span(或其他一些元素)将列表项中的文本包装起来,并将项目符号颜色应用于列表项并将文本颜色应用于 span。
【讨论】:
【讨论】:
<ul>
<li style="color:#ddd;"><span style="color:#000;">List Item</span></li>
</ul>
【讨论】:
如果您有很多页面并且不需要自己编辑标记,则可以使用 Jquery。
这是一个简单的例子:
$("li").each(function(){
var content = $(this).html();
var myDiv = $("<div />")
myDiv.css("color", "red"); //color of text.
myDiv.html(content);
$(this).html(myDiv).css("color", "yellow"); //color of bullet
});
【讨论】:
对于 2008 年的问题,我想我可能会添加一个更新的最新答案,说明如何更改列表中项目符号的颜色。
如果您愿意使用外部库Font Awesome gives you scalable vector icons,并且与Bootstrap's helper classes(例如text-success)结合使用,您可以制作一些非常酷且可自定义的列表。
我已经扩展了下面the Font Awesome list examples page 的摘录:
使用
fa-ul和fa-li轻松替换无序列表中的默认项目符号。
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css" rel="stylesheet" />
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<ul class="fa-ul">
<li><i class="fa-li fa fa-circle"></i>List icons</li>
<li><i class="fa-li fa fa-check-square text-success"></i>can be used</li>
<li><i class="fa-li fa fa-spinner fa-spin text-primary"></i>as bullets</li>
<li><i class="fa-li fa fa-square text-danger"></i>in lists</li>
</ul>
Font Awesome (mostly) supports IE8,如果你使用older version 3.2.1,只支持IE7。
【讨论】:
如果我们为每个元素设置颜色,它也可以工作,例如: 我现在在左边添加了一些边距。
<article class="event-item">
<p>Black text here</p>
</article>
.event-item{
list-style-type: disc;
display: list-item;
color: #ff6f9a;
margin-left: 25px;
}
.event-item p {
margin: 0;
color: initial;
}
【讨论】:
您可以使用 CSS 来实现这一点。通过以您选择的颜色和样式指定列表,您还可以将文本指定为不同的颜色。
按照http://www.echoecho.com/csslists.htm 的示例进行操作。
【讨论】:
<ul style="color: red;">
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
【讨论】:
只需使用 CSS:
<li style='color:#e0e0e0'>something</li>
【讨论】:
您需要通过 CSS 设置“列表样式”,并为其指定颜色:值。示例:
ul.colored {list-style: color: green;}
【讨论】: