用CSS,一个有序的列表能产生像1.1、1.2、1.3这样的结果吗(而不是1、2、3……)?到目前为止,使用list-style-type:decimal只生成了1,2,3,而不是1.1,1.2。1.3点。


当前回答

在不久的将来,您可能能够使用::marker伪元素在一行代码中实现与其他解决方案相同的结果。

记得检查浏览器兼容性表,因为这仍然是一个实验技术。 在撰写本文时,只有Firefox和Firefox for Android(从版本68开始)支持此功能。

这是一个抽泣,如果尝试在一个温和的浏览器: 签名。‘:’的 李正左:0。 < ol > < li > li元素 < ol > <li>sub li element</li> <li>sub li element</li> <li>sub li element</li> < / ol > < / li > < li > li元素< / li > < li > li元素 < ol > <li>sub li element</li> <li>sub li element</li> <li>sub li element</li> < / ol > < / li > < / ol >

你可能也想看看smashingmagazine上关于这个话题的文章。

其他回答

所选的答案是一个很好的开始,但它本质上强制list-style-position: inside;列表项的样式,使得换行文本难以阅读。下面是一个简单的解决方案,它还可以控制数字和文本之间的空白,并根据默认行为对数字进行右对齐。

ol {
    counter-reset: item;
}
ol li {
    display: block;
    position: relative;
}
ol li:before {
    content: counters(item, ".")".";
    counter-increment: item;
    position: absolute;
    margin-right: 100%;
    right: 10px; /* space between number and text */
}

JSFiddle: http://jsfiddle.net/3J4Bu/

在不久的将来,您可能能够使用::marker伪元素在一行代码中实现与其他解决方案相同的结果。

记得检查浏览器兼容性表,因为这仍然是一个实验技术。 在撰写本文时,只有Firefox和Firefox for Android(从版本68开始)支持此功能。

这是一个抽泣,如果尝试在一个温和的浏览器: 签名。‘:’的 李正左:0。 < ol > < li > li元素 < ol > <li>sub li element</li> <li>sub li element</li> <li>sub li element</li> < / ol > < / li > < li > li元素< / li > < li > li元素 < ol > <li>sub li element</li> <li>sub li element</li> <li>sub li element</li> < / ol > < / li > < / ol >

你可能也想看看smashingmagazine上关于这个话题的文章。

我在添加编号列表到Python Markdown的TOC扩展。

我是这样做的:

.toc ul { counter-reset: outItem; list-style: none }
.toc ul > li{ counter-reset: nestedItem }
.toc ul > li:before { content: counters(outItem, ".") ". "; counter-increment: outItem; margin-left: -2em; }

我不确定这是正确的方法,但对我来说很有效。

这里发布的解决方案对我来说并不是很好,所以我把这个问题和下面的问题混合在一起:有可能在HTML中创建多级有序列表吗?

/* Numbered lists like 1, 1.1, 2.2.1... */
ol li {display:block;} /* hide original list counter */
ol > li:first-child {counter-reset: item;} /* reset counter */
ol > li {counter-increment: item; position: relative;} /* increment counter */
ol > li:before {content:counters(item, ".") ". "; position: absolute; margin-right: 100%; right: 10px;} /* print counter */

结果:

注:截图,如果你想看到源代码或任何来自这篇文章:http://estiloasertivo.blogspot.com.es/2014/08/introduccion-running-lean-y-lean.html

本页上没有任何解决方案适用于所有级别和长(包装)段落。由于标记(1)的大小可变,实现一致的缩进确实很棘手。, 1.2, 1.10, 1.10.5,…);它不能只是“伪造”,甚至不能为每个可能的缩进级别预先计算边缘/填充。

我终于想出了一个解决方案,实际上工作,不需要任何JavaScript。

它在Firefox 32, Chromium 37, IE 9和Android浏览器上进行了测试。不能在ie7和之前版本上工作。

CSS:

ol {
  list-style-type: none;
  counter-reset: item;
  margin: 0;
  padding: 0;
}

ol > li {
  display: table;
  counter-increment: item;
  margin-bottom: 0.6em;
}

ol > li:before {
  content: counters(item, ".") ". ";
  display: table-cell;
  padding-right: 0.6em;    
}

li ol > li {
  margin: 0;
}

li ol > li:before {
  content: counters(item, ".") " ";
}

例子:

在JSFiddle上试试,在Gist上分叉。