【发布时间】:2011-03-28 12:23:28
【问题描述】:
在撰写文档时,我使用有序列表中的有序列表创建了一个大纲,并使用 CSS 应用了伪法律样式的行编号。列表的默认行为是右对齐数字和左对齐文本;然而,我正在使用的 CSS2 sn-p 正在改变这种行为,以便数字左对齐和文本,尽管左对齐流动不正确。请参阅以下示例:
默认行为(数字 10 突出显示所需的对齐方式):
1. Item
2. Item
1. Item
2. Item
1. Item
2. Item
3. Item
...
10. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nunc et diam sem. Pellentesque vitae dolor id eros commodo
dapibus tristique sit amet eros. Pellentesque turpis turpis.
风格化的行为(数字 10 突出显示不受欢迎的对齐方式):
使用来自http://www.w3.org/TR/CSS2/generate.html的派生CSS2 sn-p
OL { counter-reset: item }
LI { display: block }
LI:before { content: "("counters(item, ".") ") "; counter-increment: item }
结果:
(1) Item
(2) Item
(2.1) Item
(2.2) Item
(2.2.1) Item
(2.2.2) Item
(3) Item
...
(10) Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nunc et diam sem. Pellentesque vitae dolor id eros commodo
dapibus tristique sit amet eros. Pellentesque turpis turpis.
我看到LI { display: block } 正在取消默认编号,LI:before 正在使用计数器值作为“普通”文本的前缀。我怎样才能同时拥有合法风格的编号以及所需的数字和文本对齐方式?
这是显示问题的完整文档:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Outline</title>
<style type="text/css">
ol {
counter-reset: item;
list-style-position: outside
}
li {
display: block;
padding-left: 10px;
}
li:before {
content: "("counters(item, ".") ") ";
counter-increment: item
}
</style>
</head>
<body>
<h1>Outline</h1>
<ol>
<li>Item</li>
<li>Item
<ol>
<li>Item</li>
<li>Item
<ol>
<li>Item</li>
<li>Item</li>
</ol>
</li>
</ol>
</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nunc et diam sem. Pellentesque vitae dolor id eros commodo
dapibus tristique sit amet eros. Pellentesque turpis turpis.</li>
</ol>
</body>
</html>
【问题讨论】:
标签: html css html-lists