我猜这是不可能的,但想知道是否有人尝试使用CSS计数器成功生成序数(第一,第二,第三等)?
显然,这在JavaScript中是微不足道的,但是希望找到一种仅样式的解决方案。
如果您必须将th每个数字相加,那就很容易了。但在这种情况下,您需要更改第 1 个、第 2 个、第 3 个、第 21 个、第 22 个、第 23 个、第 31 个、第 32 个等......
所以你需要在这里使用第 n 个子概念。用于:nth-child定位元素。
您还需要使用:not选择器不更改第 11、12、13 个元素
body {
margin: 0;
font: 13px Verdana;
}
ul {
margin: 0;
padding: 0;
list-style: none;
counter-reset: item;
}
ul li {
margin-bottom: 5px;
position: relative;
}
ul li:before {
counter-increment: item;
content: counter(item)"th. ";
color: red;
font-weight: bold;
}
ul li:nth-child(10n+1):not(:nth-child(11)):before {
content: counter(item)"st. ";
}
ul li:nth-child(10n+2):not(:nth-child(12)):before {
content: counter(item)"nd. ";
}
ul li:nth-child(10n+3):not(:nth-child(13)):before {
content: counter(item)"rd. ";
}Run Code Online (Sandbox Code Playgroud)
<ul>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
<li>listItem</li>
</ul>Run Code Online (Sandbox Code Playgroud)