Щоб узагальнити інші відповіді тут - якщо ви хочете точніше контролювати пробіл між куль і текстом у <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
для розташування зображення в будь-якому місці, де ви хочете, по відношенню до тексту, використовуючи пікселі, еми або%
Недоліки:
- Додає додатковий (хоч і невеликий) файл зображення на вашу сторінку, збільшуючи вагу сторінки
- Якщо користувач збільшує розмір тексту у своєму браузері, куля залишиться на початковому розмірі. Це також, ймовірно, вийде з місця, оскільки розмір тексту збільшується
- Якщо ви розробляєте "чуйний" макет, використовуючи лише відсотки для ширини, може бути важко дістати кулю саме там, де ви хочете, для діапазону ширини екрана.
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 не px)
Недоліки:
- Потрібен додатковий несемантичний елемент (це, ймовірно, втратить у вас більше друзів на SO, ніж це буде в реальному житті;), але це дратує тих, хто любить їх код, бути максимально витонченим та ефективним, і це порушує розділення презентації та змісту що повинен запропонувати HTML / CSS)
- Немає контролю за розміром і формою кулі
Ось сподіваємось на нові функції стилю списку в CSS4, тому ми можемо створювати розумніші кулі, не вдаючись до зображень або екстра-надбавок :)