В документах встречаются отношения между элементами, которые невозможно или неудобно выражать при помощи тегов. Употребление буквицы – это общепринятый прием при печати, но как выделить первую букву абзаца? Такие способы есть, но вам придется отмечать каждый случай в отдельности. Не существует тега для первой буквы абза
ца. Бывают ситуации, когда хочется, чтобы броузер автоматически генерировал содержимое, добавляя, например, префикс «элемент№», и автоматически нумеровал каждый элемент упорядоченного списка.
CSS2 вводит четыре псевдоэлемента, позволяющие определять особые отношения и стили для их отображения: first line (первая строка), first-letter (первая буква), before (перед чем-либо) и after (после чего-либо). Объявляйте эти отношения, добавляя к стандартному элементу разметки отделенный двоеточием суффикс. К примеру:
p:first line {font size: 200%; font style: italic}
означает, что броузер должен отображать первые строки абзацев курсивом и шрифтом крупнее остального текста в два раза. Подобным образом:
p:first letter {font size: 200%; float: left}
предлагает броузеру сделать первую букву абзаца в два раза крупнее остального текста, сдвинуть ее влево и разрешить первым двум строкам абзаца обтекать большую начальную букву.
Псевдоэлементы :before и :after позволяют указывать в документе места, куда вставляется автоматически генерируемое содержимое, в частности особые заголовки и т. д. Стало быть, эти псевдоэлементы идут рука об руку с такими свойствами CSS2, как counter и content. Следующий пример вас, возможно, заинтересует:
ul {counter-reset: item; list-style: none}
ul li:before {content: «Item #» counters(item), » «;
counter-increment: item}
…
<ul>
<li> This is item number 1.</li>
<ul>
<li> This is sub-item number 1.1.</li>
</ul>
<li> This is item number 2.</li>
<ul>
<li> This is sub-item 2.1.</li>
<li> This is sub-item 2.2.</li>
… and so on
Все популярные броузеры поддерживают псевдоэлементы, порождающие эффекты. При этом Internet Explorer не поддерживает свойство content. Получается, что только Firefox и Opera корректно отображают последовательную нумерацию элементов списка, определенную в предшествующем примере.