Используя описанные в этом руководстве CSS-свойства, вы можете оформить списки. Указания относятся к HTML-элементам ul и ol. Таким образом, вы можете настраивать упорядоченные и неупорядоченные списки по вашему усмотрению.
Общие сведения о списках
Свойство list-style
является сводкой трех следующих свойств:
• list-style-type
• list-style-position
• list-style-image
С помощью list-style
можно изменить способ графического отображения маркеров перед элементами списка и их отступов. Указанные значения записываются через запятую. Порядок не имеет значения. Кроме того, не для каждого свойства необходимо указывать значение.
Пример показан ниже:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PSD-Tutorials.de</title> <style> ul { list-style:square; } </style> </head> <body> <ul> <li>HTML</li> <li>CSS</li> <li>JavaScript</li> </ul> </body> </html>
В браузере это выглядит следующим образом:
Графические маркеры
Вы можете указать собственное изображение в качестве маркера. Для этого используется свойство list-style-image
. Допустимыми значениями являются:
• url
– имя файла и, возможно, путь к изображению
• none
– изображение не отображается.
Пример:
ul { list-style-image: url(bullet.gif); }
Обратите внимание, что путь к указанному в URL изображению должен быть правильным.
Если указан неверный путь, браузеры должны использовать стандартный маркер.
Положение маркеров
Свойство list-style-position
определяет, как должны себя вести нумерация или маркеры относительно отступов.
• inside
– первая строка будет смещена так, чтобы маркеры и элементы списка были выровнены по левому краю.
• outside
– маркеры находятся слева от элемента списка.
В следующем примере используются два значения: inside
и outside
.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PSD-Tutorials.de</title> <style> ul.a { list-style-position:inside; } ul.b { list-style-position:outside; } </style> </head> <body> <p>Внутренний список:</p> <ul class="a"> <li>HTML</li> <li>CSS</li> <li>JavaScript</li> </ul> <p>Внешний список:</p> <ul class="b"> <li>HTML</li> <li>CSS</li> <li>JavaScript</li> </ul> </body> </html>
Таким образом можно наглядно увидеть различные влияния этих двух значений.
Оформление маркеров
Для маркеров в виде точек или иных символов вы можете явно управлять их внешним видом. Также можно изменить отображение нумерованных списков. Для этого используется свойство list-style-type
. Допустимыми значениями являются:
• decimal
– для списков ol
: Нумерация 1, 2, 3 и т. д.
• lower-roman
– для списков ol
: Нумерация i., ii., iii. и т. д.
• upper-roman
– для списков ol
: Нумерация I., II., III., IV и т. д.
• lower-alpha
или lower-latin
– для списков ol
: Нумерация I., II., III., IV. и т. д.
• upper-alpha
или upper-latin
– для списков ol
: Нумерация A., B., C., D. и т. д.
• disc
– для списков ul
: Заполненный круг в качестве маркера
• circle
– для списков ul
: Пустой круг в качестве маркера
• square
– для списков ul
: Прямоугольник в качестве маркера
• none
– ни маркера, ни нумерации
• lower-greek
– для списков ol
: Нумерация греческими буквами
• hebrew
– для списков ol
: Нумерация ивритскими буквами
• decimal-leading-zero
– для списков ol
: Нумерация с ведущим нулем 0: 01., 02., 03., 04. и т. д.
• cjk-ideographic
– для списков ol
: Нумерация идеографическими символами
• hiragana
– для списков ol
: Японская нумерация (строчными буквами)
• katakana
– для списков ol
: Японская нумерация (заглавными буквами)
• hiragana-iroha
– для списков ol
: Японская нумерация (строчными буквами)
• katakana-iroha
– для списков ol
: Японская нумерация (заглавными буквами)
В следующем примере используются некоторые из перечисленных вариантов.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PSD-Tutorials.de</title> <style> ul.a { list-style-type:circle; } ul.b { list-style-type:square; } ol.c { list-style-type:upper-roman; } ol.d { list-style-type:lower-alpha; } </style> </head> <body> <ul class="a"> <li>HTML</li> <li>CSS</li> <li>JavaScript</li> </ul> <ul class="b"> <li>HTML</li> <li>CSS</li> <li>JavaScript</li> </ul> <ol class="c"> <li>HTML</li> <li>CSS</li> <li>JavaScript</li> </ol> <ol class="d"> <li>HTML</li> <li>CSS</li> <li>JavaScript</li> </ol> </body> </html>
В браузере получится следующее изображение:
Счетчики
Через списки ol
можно нумеровать содержимое. Однако в более сложных приложениях это не слишком удобно. CSS здесь предлагает альтернативу в виде счетчиков.
Далее покажу вам, как использовать счетчики.
Сначала я создам новый счетчик для элемента body
.
body { counter-reset: kapitel; }
Благодаря этому определению счетчик kapitel существует в документе. Теперь его можно использовать.
h1 { counter-increment: kapitel; }
С помощью показанного синтаксиса счетчик автоматически увеличивается на 1 при появлении нового элемента h1
. Проблема заключается в том, что на данный момент ничего не отображается. Это можно легко изменить с помощью псевдоэлементов.
h1::before { content: counter(kapitel) ". "; }
Полное применение может выглядеть следующим образом:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PSD-Tutorials.de</title> <style> body { counter-reset: kapitel; } h1 { counter-increment: kapitel; } h1::before { content: counter(kapitel) ". "; } </style> </head> <body> <h1>Kapitel</h1> <h1>Kapitel</h1> </body> </html>
А вот, как это выглядит в браузере:
В приведенном примере с помощью ::before
выходит число в начале элемента h1
. Для того, чтобы цифра не находилась прямо у текста заголовка, после цифры добавляется точка и пробел.
content: counter(kapitel) ". "
Также возможны вложенные подсчеты. Для этого счетчик определяется в том месте, где он в итоге должен начинаться сначала.
h1 { counter-increment: kapitel; counter-reset: unterkapitel; }
В данном примере счетчик сбрасывается при каждом новом элементе h1
. Нижеследующий пример демонстрирует типичное применение вложенных счетчиков.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PSD-Tutorials.de</title> <style> body { counter-reset: kapitel; } h1 { counter-reset: unterkapitel; } h1:before { counter-increment: kapitel; content: counter(kapitel) ". "; } h2:before { counter-increment: unterkapitel; content: counter(kapitel) "." counter(unterkapitel) " "; } </style> </head> <body> <h1>Kapitel</h1> <h2>Unterkapitel</h2> <h2>Unterkapitel</h2> <h2>Unterkapitel</h2> <h1>Kapitel</h1> <h2>Unterkapitel</h2> <h2>Unterkapitel</h2> <h2>Unterkapitel</h2> </body> </html>
В браузере это выглядит следующим образом:
Примеры показали, насколько мощными могут быть счетчики.