• Страница 1 из 1
  • 1
Списки a la MS Word
koolmix Дата: Воскресенье, 01.04.2012, 00:11 | Сообщение # 1
no-avatar
  • Модератор
  • Сообщений: 315
  • Репутация:
    5
  • Статус: Offline
Но пару дней назад я вспомнил о некоторых замечательных CSS свойствах. Полистав спецификацию, я понял, что задача решаема, при этом будет сохранена семантика в HTML. Единственное (но самое важное!) ограничение — абсолютно правильно работает пример только в Opera 7.0. Я тестировал в более ранних версиях этого браузера (нумерация в списках нарушается), а также в Mozilla 1.0 и Internet Explorer 6.0 (априори не должно работать) — увы и ах. Возможно, в более свежих версиях Gecko-based браузеров всё хорошо, я не могу сказать.

Решается всё следующим CSS кодом

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

Обратите внимание на пробел во фрагменте ". ". С его помощью мы создаём отступ между нумерацией и текстом. CSS 2 селекторы (ol>li) используются для того, чтобы не обрабатывались элементы вложенных ненумерованных списков.

HTML код получается простым и семантически верным:


  1. one

    1. one-one

      1. one-one-one

      2. one-one-two

      3. one-one-three



    2. one-two

    3. one-three



  2. two

  3. three

    1. three-one

    2. three-two

    3. three-three





Теорию про счётчики и автоматическую нумерацию рассказывать не буду. Кому интересно — см. спецификацию.
 
  • Страница 1 из 1
  • 1
Поиск: