利用css的content counter【1】自动生成目录编号,可以节省不少排版编序号的时间。但是有一个问题,content counter默认把所有层级里的<ol>
都计入编号,如果页面里有些ol里li不希望计入目录编号该怎么办呢(例如代码段里的行号),Not() Selector可以很好的解决这个问题【2】
/*设置content counter*/ .entry ol { counter-reset: section; list-style-type: none; } /*计数所有的li除了class为.codeline的li元素*/ .entry ol li:not(.codeline):before { /*这里的.codeline可以是元素或者选择器*/ counter-increment: section; content: counters(section , ".") " "; }
我用的代码高亮生成的行号每个class名字都不一样(如L0,L1),可以通过改高亮代码js,为每一行增加一个class,然后再not这个class名。