Improve Article
Save Article
Improve Article
Save Article
In this article, we will learn to set an image or icon as the <li> image. We need to set the size of the custom list image to make it attractive. So, we will also learn the different ways to resize the custom list image.
Syntax: In this article, we will use below CSS properties.
- background-image: We will add a custom image as a background image in the list items.
li::before { background-image: url("image_URL"); }
- background-size: It will be used to set the size of the background image.
li { background-size: 20px; }
Approach 1: First, we will set the list-icon as background-image and we can customize its size using the height and width property.
Example:
HTML
<!DOCTYPE html>
<
html
lang
=
"en"
>
<
head
>
<
title
>List icon</
title
>
<
style
>
li {
list-style: none;
}
/* Set the list image as background image*/
li::before {
content: '';
display: inline-block;
margin-right: 10px;
/* Height of the list image*/
height: 10px;
/* Width of the list image*/
width: 10px;
background-image: url(
}
</
style
>
</
head
>
<
body
>
<
h1
style
=
"color:green;"
>
GeeksforGeeks
</
h1
>
<
ul
>
<
li
>Geeks</
li
>
<
li
>for</
li
>
<
li
>Geeks</
li
>
</
ul
>
</
body
>
</
html
>
Output:
In the above output image, users can see the difference between the size of the list-style-image when we set sizes 30px and 10px.
Approach 2: In this approach, we will set the image size by using the background-size property for the <li> element.
Example:
HTML
<!DOCTYPE html>
<
html
lang
=
"en"
>
<
head
>
<
title
>List icon</
title
>
<
style
>
/* Set the size of the list image using
the background-size property. */
li {
list-style: none;
padding: 10px 30px;
background-image: url(
background-repeat: no-repeat;
background-position: left center;
background-size: 20px;
}
</
style
>
</
head
>
<
body
>
<
h1
style
=
"color:green;"
>
GeeksforGeeks
</
h1
>
<
ul
>
<
li
>Geeks</
li
>
<
li
>for</
li
>
<
li
>Geeks</
li
>
</
ul
>
</
body
>
</
html
>
Output:
Users can see the above output image for the background-size: 20px.
Approach 3: We set the separate custom image for every list item and add style to that image.
HTML
Output:
Users can see the above output after setup the custom image for every list item.
list-style-image
list-style-image
CSS свойство устанавливает изображение , которое будет использоваться в качестве маркера элемента списка.
Часто более удобно использовать сокращенный list-style
.
Try it
Примечание. Это свойство применяется к элементам списка, т.е. элементам с
по умолчанию это включает элементы display
: list-item;<li>
.Поскольку это свойство наследуется, его можно установить для родительского элемента (обычно <ol>
или <ul>
), чтобы оно применялось ко всем элементам списка.
Syntax
list-style-image: none; list-style-image: url('starsolid.gif'); list-style-image: linear-gradient(to left bottom, red, blue); list-style-image: inherit; list-style-image: initial; list-style-image: revert; list-style-image: revert-layer; list-style-image: unset;
Values
<image>
-
Действительное изображение для использования в качестве маркера.
none
-
Указывает, что ни одно изображение не используется в качестве маркера. Если это значение установлено, вместо него будет использоваться маркер, определенный в
list-style-type
.
Formal definition
Formal syntax
list-style-image = <image> | none <image> = <url> | <gradient>
Examples
Использование значения url
HTML
<ul> <li>Item 1</li> <li>Item 2</li> </ul>
CSS
ul { list-style-image: url("starsolid.gif"); }
Result
Использование градиента
HTML
<ul> <li>Item 1</li> <li>Item 2</li> </ul>
CSS
ul { font-size: 200%; list-style-image: linear-gradient(to left bottom, red, blue); }
Result
Specifications
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | |
list-style-image |
1 |
12 |
1 До Firefox 86 это свойство не принимало тип |
4 |
7 |
1 |
4.4 |
18 |
4 До Firefox 86 это свойство не принимало тип |
10.1 |
1 |
1.0 |
See also
-
list-style
,list-style-type
,list-style-position
-
url()
function
CSS
-
line-height-step
Экспериментальный:Эта технологияПеред использованием продукции внимательно проверьте таблицу совместимости браузеров.
-
list-style
Свойство list-style CSS shorthand позволяет задавать свойства сразу.
-
list-style-position
CSS-свойство list-style-position устанавливает ::marker относительно элемента.
-
list-style-type
CSS-свойство list-style-type устанавливает маркер (например,диск,символ или пользовательский счетчик элемента.
Как изменить маркер списка
По умолчанию маркером списка ul, служит простая черная точка. Я знаю, что многие начинающие верстальщики, используют маркированные списки для разметки меню навигации, предварительно обнулив в CSS значение селектора ul.
Давайте рассмотрим на примере, что я имею ввиду.
HTML разметка базового маркированного списка:
<ul>
<li>Анжелика</li>
<li>Анастасия</li>
<li>Анатолий</li>
<li>Александр</li>
</ul>
На странице, вы увидите следующее.
Как верстают меню навигации без точек? Просто в стилях прописывают следующую строчку.
ul {
list-style: none;
}
Однако сегодня мы не будем ограничиваться версткой меню, а будем использовать маркированные списки по их прямому назначению, гибко настраивая под стиль вашего сайта, делая это разными способами.
Меняем цвет маркера списка (1-ый способ)
Удалим дефолтные черные точки.
ul {
list-style: none;
}
А взамен, поставим другие точки, поставив псевдоэлемент before перед всеми пунктами списка. Вместо точек, добавим значение свойства content «2022» , это CSS код точки, взятый из таблицы Юникода. Дальше к этим точкам, можно применять нужные стили.
ul li::before {
content: "2022"; /* юникод точки */
color: orange; /* Менять цвет */
font-weight: bold; /* Менять жирность */
display: inline-block; /* Расстояние между точкой и текстом */
width: 1em; /* Задать значение расстояния */
}
Пример с заменой цвета маркеров списка
Меняем цвет маркера списка (2-ой способ)
Все спецсимволы Юникода имеют альтернативный HTML-код и могут вставляться напрямую в HTML разметку, между тегами span. Для разнообразия, мы используем в качестве маркера спецсимвол – ☑ галочка в квадрате.
<ul>
<li><span>☑</span>Анжелика</li>
<li><span>☑</span>Анастасия</li>
<li><span>☑</span>Анатолий</li>
<li><span>☑</span>Александр</li>
</ul>
CSS-код
ul {
list-style: none;
}
span {
color: cyan;
font-weight: bold;
display: inline-block;
width: 1em;
font-size: 20px;
}
Второй способ изменения маркера списка, мне понравился больше. Он позволяет увеличить размер маркера (font-size), не задевая межстрочный интервал, чего нельзя сказать о первом способе.
В первом способе вместе с увеличением размера маркера, становиться больше и межстрочный интервал.
Символы вместо иконок
На сегодняшний день, самый легкий способ вставки иконки-гамбургера в меню сайта – это вставка символа Юникода Trigram for Heaven — ☰.
<a href="#">☰</a>
Если вы нашли в таблице Юникода, нужный символ, то для вставки его на сайт, не нужно подключать библиотеку Font Awesome.
Вместо маркера картинка
И это ещё не все, маркированный список можно сделать картинками. Это классический пример для верстальщика, как сверстать ту часть макета, где дизайнер сам нарисовал иконки, что наиболее вероятно.
ul {
list-style: none;
}
ul li {
background: url(images/icon_star.gif) no-repeat 0 5px;
}
В стилях, иконки нужно вставлять, как фон, без повтора и подобрать нужные значения для выравнивания.
Альтернативный способ:
ul {
list-style-image: url(images/icon_star.gif);
}
Для внедрения символов Юникода, кодировка страницы должна быть обязательно UTF-8.
В HTML файле:
<meta charset="utf-8"/>
В отдельном CSS файле:
@charset 'utf-8';
Если вы только присматриваетесь к профессии верстальщика, то наиболее оптимальным решением будет, начинать своё обучение с верстки лендингов, начните с этого видеокурса «О создании лендинга под ключ».
-
Создано 28.11.2018 10:13:07
-
Михаил Русаков
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
-
Кнопка:
Она выглядит вот так:
-
Текстовая ссылка:
Она выглядит вот так: Как создать свой сайт
- BB-код ссылки для форумов (например, можете поставить её в подписи):
Теперь можно легко настроить цвет, размер и тип пункта или маркера при использовании <ul> или <ol>.
Sep 2, 2020 — Обновлено Sep 2, 2020
Благодаря Igalia при поддержке Bloomberg мы наконец-то можем избавиться от костылей для стилей списков. Посмотрите!
Благодаря селектору CSS ::marker
мы можем изменять содержимое и некоторые стили маркеров и чисел.
Совместимость с браузерами #
::marker
поддерживается в Firefox для настольных компьютеров и Android, Safari для настольных компьютеров и iOS (только свойства color
и font-*
, см. ошибку 204163), а также в браузерах для настольных компьютеров и Android на базе Chromium. См. обновления в таблице совместимости с браузерами MDN.
Псевдоэлементы #
Рассмотрим следующий базовый маркированный список HTML:
<ul>
<li>Lorem ipsum dolor sit amet consectetur adipisicing elit</li>
<li>Dolores quaerat illo totam porro</li>
<li>Quidem aliquid perferendis voluptates</li>
<li>Ipsa adipisci fugit assumenda dicta voluptates nihil reprehenderit consequatur alias facilis rem</li>
<li>Fuga</li>
</ul>
В результате получается такой ожидаемый рендеринг:
Точка в начале каждого элемента <li>
является произвольной! Браузер рисует и создает за вас сгенерированную рамку маркера.
Сегодня мы рады поговорить о псевдоэлементе ::marker
, который дает возможность стилизовать элемент маркера, который браузер создает за вас.
Создание маркера #
Блок псевдоэлемента маркера ::marker
автоматически создается внутри каждого элемента списка перед фактическим содержимым и псевдоэлементом ::before
.
li::before {
content: "::before";
background: lightgray;
border-radius: 1ch;
padding-inline: 1ch;
margin-inline-end: 1ch;
}
Обычно элементы списка являются элементами HTML <li>
, но другие элементы также могут стать элементами списка с помощью display: list-item
.
<dl>
<dt>Lorem</dt>
<dd>Lorem ipsum dolor sit amet consectetur adipisicing elit</dd>
<dd>Dolores quaerat illo totam porro</dd> <dt>Ipsum</dt>
<dd>Quidem aliquid perferendis voluptates</dd>
</dl>
dd {
display: list-item;
list-style-type: "🤯";
padding-inline-start: 1ch;
}
Стилизация маркера #
До ::marker
списки можно было стилизовать с помощью list-style-type
и list-style-image
, чтобы изменить символ элемента списка с помощью одной строки CSS:
li {
list-style-image: url(/right-arrow.svg);
/* ИЛИ */
list-style-type: '👉';
padding-inline-start: 1ch;
}
Это удобно, но нам нужно больше. А как насчет изменения цвета, размера, интервала и т. д.?! Вот где на помощь приходит ::marker
. Он позволяет индивидуально и глобально выбирать эти псевдоэлементы из CSS:
li::marker {
color: hotpink;
}li:first-child::marker {
font-size: 5rem;
}
Свойство list-style-type
дает очень ограниченные возможности для стилизации. Псевдоэлемент ::marker
означает, что можно настроить таргетинг самого маркера и применить стили непосредственно к нему. Это дает гораздо больший контроль.
Тем не менее, вы не можете использовать все свойства CSS для ::marker
. Список разрешенных и запрещенных свойств четко указан в спецификации. Если вы экспериментируете с этим псевдоэлементом, а результата нет, ознакомьтесь с приведенным ниже списком — он описывает, что можно и что нельзя сделать с помощью CSS:
Допустимые свойства CSS для ::marker
#
animation-*
transition-*
color
direction
font-*
content
unicode-bidi
white-space
Изменение содержимого ::marker
выполняется с помощью content
вместо list-style-type
. В следующем примере для первого элемента используется стиль list-style-type
, а для второго — ::marker
.Свойства в первом случае применяются ко всему элементу списка, а не только к маркеру, что означает, что текст анимируется так же, как и маркер. При использовании ::marker
мы можем выбирать только блок маркера, а не текст.
Также обратите внимание на то, что отключенное свойство background
не действует.
Стили списков
«`css li:nth-child(1) { list-style-type: ‘?’; font-size: 2rem; background: hsl(200 20% 88%); animation: color-change 3s ease-in-out infinite; } «`
Стили маркеров
li:nth-child(2)::marker {
content: '!';
font-size: 2rem;
background: hsl(200 20% 88%);
animation: color-change 3s ease-in-out infinite;
}
Изменение содержимого маркера #
Вот несколько способов стилизации маркеров.
Изменение всех пунктов списка
li {
list-style-type: "😍";
}/* ИЛИ */
li::marker {
content: "😍";
}
Изменение только одного пункта списка
li:last-child::marker {
content: "😍";
}
Замена маркера списка на SVG
li::marker {
content: url(/heart.svg);
content: url(#heart);
content: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='24' width='24'><path d='M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z' fill='none' stroke='hotpink' stroke-width='3'/></svg>");
}
Изменение нумерованных списков А что насчет <ol>
? Маркер в элементе нумерованного списка по умолчанию является числом, а не маркером. В CSS это называется счетчиками, и у них довольно широкие возможности. У счетчиков даже есть свойства для установки и сброса начала и конца нумерации или переключения цифр на римские. Можем ли мы это стилизовать? Да, и мы можем даже использовать значение содержимого маркера для создания собственного представления нумерации.
li::marker {
content: counter(list-item) "› ";
color: hotpink;
}
Отладка #
Chrome DevTools помогут вам проверить, отладить и изменить стили, применяемые к псевдоэлементам ::marker
.
Будущие стили псевдоэлементов #
Вы можете узнать больше о :: marker здесь:
- Списки, маркеры и счетчики CSS от журнала Smashing Magazine
- Подсчет с помощью счетчиков CSS и сетки CSS от CSS-Tricks
- Использование счетчиков CSS от MDN
Приятно получить контроль над чем-то, что раньше было сложно стилизовать. Возможно, вы захотите стилизовать другие автоматически сгенерированные элементы. Вещи наподобие <details>
или индикатора автозаполнения поискового ввода, реализация которых различается от браузера к браузеру, могут вас напрягать. Есть способ поделиться тем, что вам нужно — создать желание на https://webwewant.fyi.
Последнее обновление: Sep 2, 2020 — Улучшить статью
Return to all articles