LINUX.ORG.RU

css counters в opera и konqueror


0

0

Firefox, Chrome и IE8 показывают это вот так: 1 2 1 2, а Opera и Konqueror - вот так: 1 2 2.1 2.2. Второй вариант имел бы смысл, если бы смысл, если бы списки были вложены, но они не вложены. Такое впечатление, что опера с конкверором не обращают внимание на закрывающие теги элементов <ul>.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<meta http-equiv=Content-Type content='text/html; charset=utf-8'>
<title>lists testcase</title>
 
<style type='text/css'> 
    ol { counter-reset: list 0; list-style-type: none }  
    li { counter-increment: list }
    li:before { content: counters(list, ".") " " }
</style>
 
<ol>
    <li>first list, first item
    <li>first list, second item
</ol>
 
<ol>
    <li>second list, first item
    <li>second list, first item
</ol>

4.3.5 Счётчики

Счётчики обозначаются идентификаторами (см. свойства 'counter-increment' и 'counter-reset'). Чтобы обратиться к значению счётчика, используется обозначение 'counter(<identifier>)' или 'counter(<identifier>, <list-style-type>)'. Стиль по умолчанию - 'decimal'.

Чтобы обратиться к последовательности вложенных счётчиков с одним именем, обозначение будет: 'counters(<identifier>, <string>)' или 'counters(<identifier>, <string>, <list-style-type>)'. См. "Вложенные счётчики и область видимости" в главе о генерируемом содержимом.

В CSS2 к значениям счётчиков можно обратиться только из свойства 'content'. Заметьте, что 'none', это возможный <list-style-type>: 'counter(x, none)' рассматривается как пустая строка.

Вот таблица стилей, нумерующая параграфы (P) для каждой главы (H1). Параграфы нумеруются римскими цифрами с последующими точкой и пробелом:
P {counter-increment: par-num}
H1 {counter-reset: par-num}
P:before {content: counter(par-num, upper-roman) ". "}

Счётчики вне области видимости какого-либо 'counter-reset', считаются сброшенными в 0 в 'counter-reset' корневого элемента.

Deleted
()
Ответ на: комментарий от Deleted

Если использовать counter, не получается нужного мне эффекта при вложенных списках. Следуя спецификации, counter() и counters() в плане своего отношения к counter-reset должны вести себя одинаково.

RommeDeSerieux
() автор топика

ol { counter-reset: item; }
li { display: block; }
li:before { content: counters(item, "."); counter-increment: item; }

<ol>
    <li>first list, first item</li>
    <li>first list, second item</li>
</ol>

<ol>
    <li>second list, first item</li>
    <li>second list, first item
        <ol>
            <li>second list, first item</li>
            <li>second list, first item</li>
            </ol>
        </li>
</ol>

Deleted
()

Нда, таки что-то здесь всё же не так, не так как-то работает :) Подумаю.

Deleted
()

Интересный эффект. Если вложенный список всего 1 то всё нормально, иначе уже швах. Видимо таки баг, но причин не понимаю.

Deleted
()

Вобщем, в чём фишка пока не пойму (возможно что-то с наследованием накосячили, хз, пока не скажу), но если обернуть OL'ки в дивы, то всё нормально.

Deleted
()

Звиняйте за поток мыслей :)

p.s. counter-increment, возможно, стоить совать (идеологически) не в :before, а отдельно, хотя никакого видимого эффекта это не оказывает.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.