Подводя итог остальным ответам здесь - если вы хотите более точно контролировать пространство между маркерами и текстом в элементе списка <li>
, вы можете выбрать следующие варианты:
(1) Использовать фоновое изображение:
<style type="text/css">
li {
list-style-type:none;
background-image:url(bullet.png);
}
</style>
<ul>
<li>Some text</li>
</ul>
Преимущества:
- Вы можете использовать любое изображение для пули
- Вы можете использовать CSS
background-position
для позиционирования изображения практически в любом месте относительно текста, используя пиксели, ems или%
Недостатки:
- Добавляет дополнительный (хотя и небольшой) файл изображения на вашу страницу, увеличивая вес страницы
- Если пользователь увеличит размер текста в своем браузере, маркер останется в исходном размере. Это также, вероятно, будет становиться все более неопределенным с увеличением размера текста
- Если вы разрабатываете «отзывчивый» макет, используя только проценты для ширины, может быть трудно получить маркер именно там, где вы хотите, в диапазоне ширины экрана
2. Используйте отступ для тега <li>
<style type="text/css">
ul {padding-left:1em}
li {padding-left:1em}
</style>
<ul>
<li>Some text</li>
</ul>
Преимущества:
- Нет изображения = 1 файл меньше для загрузки
- Отрегулировав отступ на
<li>
, вы можете добавить столько дополнительных горизонтальных промежутков между маркером и текстом, сколько вам нравится
- Если пользователь увеличивает размер текста, интервал и размер маркера должны пропорционально масштабироваться
Недостатки:
- Невозможно переместить маркер ближе к тексту, чем браузер по умолчанию
- Ограничено формами и размерами встроенных типов маркеров CSS
- Пуля должна быть того же цвета, что и текст
- Нет контроля над вертикальным расположением пули
(3) Обернуть текст в дополнительный элемент <span>
<style type="text/css">
li {
padding-left:1em;
color:#f00; /* red bullet */
}
li span {
display:block;
margin-left:-0.5em;
color:#000; /* black text */
}
</style>
<ul>
<li><span>Some text</span></li>
</ul>
Преимущества:
- Нет изображения = 1 файл меньше для загрузки
- Вы получаете больший контроль над положением маркера, чем с параметром (2) - вы можете переместить его ближе к тексту (хотя, несмотря на все мои усилия, кажется, что вы не можете изменить вертикальное положение, добавив
padding-top
к <span>
. У кого-то еще есть обходной путь для этого, хотя ...)
- Пуля может отличаться от текста
- Если пользователь увеличивает размер текста, маркер должен масштабироваться пропорционально (при условии, что вы задаете отступы и поля в ems, а не в пикселях)
Недостатки:
- Требуется дополнительный несемантический элемент (это, вероятно, приведет к потере большего количества друзей в SO, чем в реальной жизни;), но это раздражает тех, кому нравится, когда их код является максимально гибким и эффективным, и это нарушает разделение презентация и контент, которые должен предлагать HTML / CSS)
- Нет контроля над размером и формой пули
Здесь мы надеемся на некоторые новые функции в стиле списка в CSS4, поэтому мы можем создавать более умные маркеры, не прибегая к изображениям или разметке exta:)