我想知道如何使用 css/html 创建一个反向列表,例如
5. 红色 4. 绿色 3. 蓝色 2. 黄色 1. 黑色
您可以通过使用带有 HTML 的简单保留属性来做到这一点,请访问以下链接以获取完整说明
<ol reversed>
<li>Red</li>
<li>Green</li>
<li>Blue</li>
<li>Yellow</li>
<li>Black</li>
</ol>
您可以使用 CSS 来执行此操作,但您需要指定起始值。这仍然比value
在每个列表元素上填写属性更容易。
例如,有 4 个列表项:
ol {
counter-reset: num 5;
list-style-type: none;
}
li:before {
counter-increment: num -1;
content: counters(num, ".") " ";
}
这适用于 IE8 及更高版本。
<ol reversed="reversed">
<li>Red</li>
<li>Green</li>
<li>Blue</li>
<li>Yellow</li>
<li>Black</li>
</ol>
HTML5 CR 具有reversed
用于此类目的的属性,但这是一个错误的解决方案,因为它使渲染依赖于浏览器。它已经在浏览器中缓慢实现,例如 IE 甚至在版本 10 中也不支持它。此外,它(可以说)是展示性的,向 HTML 添加新的展示性属性是违反大势所趋的。
一些替代方案:
value
属性。li
这可以在生成页面服务器端或使用客户端 JavaScript 时完成。ul
元素,隐藏项目符号 ( list-style-type: none
),并将数字放入li
内容中(可能以编程方式,如上所示)。为什么ul
而不是ol
?因为当 CSS 关闭时你不想要双重编号。您可以使用标签reversed
的属性。ol
但它不支持IE和Opera。
div
orspan
并使用 javascript 动态分配数字?如果您选择 javascript 而不是严格使用 HTML 和 CSS,那么有很多选择。
一个例子:(使用javascript)
<ol id="olTag">..............
ChangeNumbering();
function ChangeNumbering() {
var list = document.getElementById("olTag");
var liTags = list.getElementsByTagName("li");
var length = liTags.length;
for (var i = length; i > 0; i--) {
liTags[length - i].value = i;
}
}