<ol>用数字换另一种颜色

55 html css colors html-lists

<ol>
   <li>test</li>
   <li>test</li>
</ol>
Run Code Online (Sandbox Code Playgroud)

将显示为:

  1. 测试
  2. 测试

我希望彩色数字和文字黑色!

我可以编辑css,但我无法访问HTML.

kdg*_*ory 109

CSS规范给出了这样做只是这个的一个例子.不幸的是,虽然它适用于Firefox 3,但它似乎不适用于IE7:

<html>
<head>
    <style>
        ol { counter-reset: item; }
        ol li { display: block; }
        ol li:before {
            content: counter(item) ". ";
            counter-increment: item;
            color: red;
        }
    </style>
</head>
<body>
    <ol>
        <li>item</li>
        <li>item</li>
        <li>item</li>
    </ol>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

  • 这很酷,但是没有应用'ol` start属性的值... (2认同)
  • @MartynChamberlin @kdgregory另一种方法是使用子组合子,所以`ol> li`和'ol> li :: before` - 这样你只能针对这个特定级别的`li`元素. (2认同)

Pim*_*ger 24

不确定这是否有效,但我认为它应该:

<li style='color: red;'><span style='color:black;'>test</span></li>
Run Code Online (Sandbox Code Playgroud)

编辑
如果你不能编辑HTML,那我恐怕不可能.如果你可以在HTML中添加javascript(一次在头部),那么你可以这样做:

$(document).ready( function() {
 $('ol li').wrapInner('<span class="black"> </span>').addClass('red');
});
Run Code Online (Sandbox Code Playgroud)

你需要这个jQuery库.
然后在你的CSS中设置一个红色和黑色的颜色类:红色/黑色声明.


小智 15

这是一个解决方案,它还包含第一行下方(而不是列表编号下方)左对齐的每个列表项的文本:

HTML

<ol class="GreenNumbers">
   <li>Long text that might wrap onto a second line.</li>
   <li>Long text that might wrap onto a second line.</li>
   <li>Long text that might wrap onto a second line.</li>
</ol>
Run Code Online (Sandbox Code Playgroud)

CSS

.GreenNumbers {
    list-style-type: none;
}
.GreenNumbers ol {
    margin-left: 2em;
}
.GreenNumbers li {
    counter-increment: count-me;
}
.GreenNumbers li::before {
    content: counter(count-me) ". ";
    display: block;
    position: relative;
    max-width: 0px;
    max-height: 0px;
    left: -1.3em;
    top: .05em;
    color: #008000;
    font-weight: bold;
}
Run Code Online (Sandbox Code Playgroud)

  • 然而,值得注意的是,[`direct-descendant` 选择器](http://www.w3.org/TR/CSS21/selector.html#child-selectors) 可能最好默认使用,以便嵌套列表不要增加你的计数器。例如,“.GreenNumbers &gt; li”会防止这种情况发生。 (2认同)

Ada*_*vis 7

这应该做你想要的:

http://archivist.incutio.com/viewlist/css-discuss/67894

HTML

<ol>
    <li>1 some text here</li>
    <li>2 some more text that can span longer than one line</li>
</ol>
Run Code Online (Sandbox Code Playgroud)

CSS

ol { list-style: none; padding-left: 2em; text-indent: -1em;}

li:first-letter { float: left; 
                  font-size: ??; 
                  color: white; 
                  background: orange; 
                  line-height: 1.0; }
Run Code Online (Sandbox Code Playgroud)

除非您想根据您的设计更改颜色和背景.

下一个是过度杀伤,但为您提供了有关如何设置列表样式的大量信息:

http://print.wordpress.com/2006/02/22/css-beautifully-numbered-lists/

-亚当

  • "为了更大的利益,必须做出牺牲......" (4认同)

Nat*_*son 7

现代方法 (2021) - ::marker 伪元素

::marker伪元素的引入使得更改有序列表中数字的颜色(和其他样式)变得更加简单。

例子:

ol li::marker {
    color: red;
}
Run Code Online (Sandbox Code Playgroud)

现代浏览器已经支持使用::markerhttps : //caniuse.com/css-marker-pseudo

我们正处于不再需要旧的解决方案(变通方法)的地步,大多数站点现在都可以轻松使用::marker

请记住,并非所有属性都在标记标签上可用。有关更多详细信息,请参阅 MDN 文档:https : //developer.mozilla.org/en-US/docs/Web/CSS/ :: marker

  • 根据 2021 年,这应该更改为正确答案。 (4认同)
  • 哇,没想到这会与如此复杂的答案一起工作。谢谢你这个简单的答案。 (3认同)