2015-06-16 2 views
2

Я попытался создать собственный заказный список (OL) с помощью «CSS-счетчики», взяв в качестве примера this Mozilla article.CSS-счетчики: не сбрасывается, если есть оболочка за пределами OL

Мне нужно немного модифицировать его, обертывая последний OL в контейнере DIV с именем .foo, как показано в этом jsFiddle.

<div id='foo'> 
    <ol> 
     <li>item</li>   <!-- 1  --> 
     <li>item</li>   <!-- 2  --> 
    </ol> 
</div> 

ol { 
    counter-reset: section; 
    list-style-type: none; 
} 
li::before { 
    counter-increment: section; 
    content: counters(section,".") " "; 
} 

Добавление обертки, счетчик больше не сбрасывается, и номера продолжаются с 4.1 и 4.2. Зачем? Как сбросить новый счетчик, даже если он завернут внутри контейнера? Спасибо

ответ

0

Добавить счетчик сброса в div и присвоить новое значение обернутому ol. Fiddle: http://jsfiddle.net/mbmg52sz/3/

ol{ 
    counter-reset: sectionA; 
    list-style-type: none; 
} 
li::before { 
    counter-increment: sectionA; 
    content: counters(sectionA,".") " "; 
} 

div{ 
    counter-reset: sectionA; 
} 

div > ol{ 
    counter-reset: sectionB; 
} 

div > ol > li{ 
    counter-increment: sectionB; 
    content: counters(sectionB,".") " "; 
} 
+0

mhmmm Я не хотел бы создать 2 отдельные списки счетчиков, потому что, если я изменю обертку (это редакционный сайт), это решение слишком тонкой настройки для этого конкретного случая. Я не понимаю, почему два смежных OL сбрасывают свой счетчик, и если я их разделяю с оберткой, сброс не будет работать. –