您可以更改有序列表的开头数:
<ol start="3">
<li>item three</li>
<li>item four</li>
</ol>
...但是有没有办法让列表项具有任意数字,而不仅仅是连续编号?
<ol>
<li>item two</li>
<li>item six</li>
<li>item nine</li>
</ol>
我现在唯一可以看到的方法是将每个<li>
包装在自己<ol>
中,这显然不是理想的。欢迎使用HTML,Javascript和CSS解决方案。
ps:虽然项目编号是任意的,但它们仍然是有序的,所以不要担心语义
答案 0 :(得分:18)
在HTML 4.01 value
上有一个弃用的<li>
属性:
<ol>
<li value="30"> makes this list item number 30.
<li value="40"> makes this list item number 40.
<li> makes this list item number 41.
</ol>
非弃用(CSS)答案(经常如此)更优雅但更少......直接:) spec有点干;谷歌搜索更直接可用的东西,如this:
就像继续编号一样 从上一个列表中你需要 设置CSS属性以进行递增 适当的柜台。但要做到这一点 从另一个开始递增 起点你可以通过 可选的第二个参数 一个数字的反重置属性。所以 从5开始会看起来像什么 在你的CSS中这样:
ol.continue { counter-reset: chapter 4; /* Resets counter to 4. */ }
由于计数器将始终复位 在它增加之前,开始我们的 列出我们必须的数字5 将计数器设置为4。
答案 1 :(得分:13)
value
上有li
属性,虽然已弃用:
<ol>
<li value="2">item two</li>
<li value="6">item six</li>
<li value="9">item nine</li>
</ol>
w3schools page for <li.@value>
说:
li元素的value属性 在HTML 4.01中已弃用,并且是 XHTML 1.0 Strict DTD不支持。
注意:目前,没有CSS 值属性的替代。
(尽管在主<li>
页面上对弃用警告说“使用样式”。)
HTML 5 editor's draft reference for li
表明它仍然有效......
答案 2 :(得分:6)
看着所有这些答案让我觉得有点icky。你真的真的想用LI吗?如果它意味着创建'虚拟'lis,或javascript,或自定义CSS类,我会开始寻找其他可能性。李(在我看来)的观点并不是自己管理编号。如果你必须自己管理数字,那么你只使用LI来管理风格 - 如何创建自己的风格,只需将数字保存在&lt; span&gt;中。还是什么?
答案 3 :(得分:3)
弃用的HTML方式
<ol>
<li>List item 1</li>
<li VALUE=5 TYPE="A">List item E</li>
<li>List item 3</li>
</ol>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
ol {
counter-reset:item;
}
li {
display:block;
}
li:before {
content:counter(item) '. ';
counter-increment:item;
}
#new_number {
counter-reset:item 24;
}
</style>
<!--[if IE]>
<script type="text/javascript">
window.onload=function() {
document.getElementById('new_number').value='25';
}
</script>
<![endif]-->
</head>
<body>
<ol>
<li id="new_number">list item</li>
<li>list item</li>
<li>list item</li>
<li>list item</li>
<li>list item</li>
<li>list item</li>
</ol>
</body>
</html>
答案 4 :(得分:2)
例如 -
<ol id="reverse_numbering">
<li>foo</li>
<li>bar</li>
<li>baz</li>
</ol>
这是你可以做的事情 -
<script type="text/javascript">
var reverse = $('reverse_numbering');
reverse.style.listStyle='none';
var li = reverse.getElementsByTagName('li');
for(var i=0; i<li.length; i++) {
li[i].insertBefore(document.createTextNode(li.length-i+'. '), li[i].firstChild);
}
</script>
参考:HTML Help Forums。
答案 5 :(得分:1)
实际上比你想象的要容易得多。你正在做的是基本上“暂停”一个列表,这样你就可以插入一些东西。在文本中执行此操作时,请使用<div>
标记。 (贝尔斯现在响了吗?“)
CSS
...<br />
/* This style removes the indentation that <ol> creates. In my document it was 30pt */<br />
.pauselist {margin-left:-30pt;}
<br />
<br />
XHTML<br />
...<br />
<p>Text</p><br />
<p>Text</p><br />
<ol><br />
<li>Item 1</li><br />
<li>Item 2<br />
<div class="pauselist"><br />
<p>Text</p><br />
<p>Text</p><br />
<p>Text</p><br />
<!-- Okay now let's continue with the list --><br />
</div><br />
</li><br />
<li>Item 3</li><br />
<li>Item 4</li><br />
</ol><br />
<p>Text</p><br />
<p>Text</p><br />
<br />
<pre>
------结果--------- 文本 文本
文本 文本 文本
文本 文本
答案 6 :(得分:0)
我认为这个问题从语义开始(你知道,这是创建基于标准的页面的支柱之一):你想使用有序列表来表示无序一个。
我的建议:
1)使用ul并根据类添加带有数字的图像(这可以以编程方式完成,您只需要生成一次数字图像,并且它可以为您提供样式选项)
2)使用定义列表。我知道它的拉伸语义有点但是如果“term”(dt)是“Horizontal”而定义(dd)是填字游戏的选项,我认为它变成了语义。使用此功能,您可以添加所需的数字,并使用您喜欢的任何标签设置样式。
希望这有帮助。