Стилизация списков — Изучение веб-разработки
Списки, по-большому счету, ведут себя также как любой другой текст, но существуют некоторые специфичные натройки CSS, о которых вы должны знать. В этой статье они все описываются.
Для начала, давайте взглянем на пример простого списка. В данной статье мы рассмотрим ненумерованный, нумерованный и описательный списки — все они имеют аналогичные свойства стилизации, но некоторые имеют свои специальные свойства. Не стилизованный пример доступен на Github (проверьте также источник кода.)
HTML для нашего примера списка представлен ниже:
<h3>Shopping (unordered) list</h3>
<p>Paragraph for reference, paragraph for reference, paragraph for reference,
paragraph for reference, paragraph for reference, paragraph for reference.</p>
<ul>
<li>Hummus</li>
<li>Pita</li>
<li>Green salad</li>
<li>Halloumi</li>
</ul>
<h3>Recipe (ordered) list</h3>
<p>Paragraph for reference, paragraph for reference, paragraph for reference,
paragraph for reference, paragraph for reference, paragraph for reference. </p>
<ol>
<li>Toast pita, leave to cool, then slice down the edge.</li>
<li>Fry the halloumi in a shallow, non-stick pan, until browned on both sides.</li>
<li>Wash and chop the salad.</li>
<li>Fill pita with salad, hummus, and fried halloumi.</li>
</ol>
<h3>Ingredient description list</h3>
<p>Paragraph for reference, paragraph for reference, paragraph for reference,
paragraph for reference, paragraph for reference, paragraph for reference.</p>
<dl>
<dt>Hummus</dt>
<dd>A thick dip/sauce generally made from chick peas blended with tahini, lemon juice, salt, garlic, and other ingredients.</dd>
<dt>Pita</dt>
<dd>A soft, slightly leavened flatbread.</dd>
<dt>Halloumi</dt>
<dd>A semi-hard, unripened, brined cheese with a higher-than-usual melting point, usually made from goat/sheep milk.</dd>
<dt>Green salad</dt>
<dd>That green healthy stuff that many of us just use to garnish kebabs. </dd>
</dl>
Если вы перейдете к живому примеру прямо сейчас и изучите элемент списка используя инструменты разработчика браузера, то вы заметите несколько стилей установленных по умолчанию:
- Элементы
<ul>
и<ol>
имеют верхний и нижнийmargin
по16px
(1em
) иpadding-left
40px
(2.5em
.) - Объекты списка (элементы
<li>
) не имеют заданных значений по умолчанию для интервалов. - Элемент
<dl>
имеет верхний и нижнийmargin
по
(1em
), но padding не задан. - Элементы
<dd>
имеютmargin-left
40px
(2.5em
.) - Элементы
<p>
которые мы включили для ссылок (сноски) имеют верхний и нижнийmargin
по16px
(1em
), точно так же, как и различные типы списков.
При оформлении списков, вам необходимо настроить их стили так, чтоб они сохраняли то же вертикальное расстояние, что и окружающие их элементы (такие как параграфы и изображения; иногда называемые вертикальным ритмом) и то же расстояние по горизонтали как и между собой (посмотреть законченный стилизированный пример на Github, а также найти исходный код.)
CSS, используемый для оформления текста и интервалов, выглядит следующим образом:
html {
font-family: Helvetica, Arial, sans-serif;
font-size: 10px;
}
h3 {
font-size: 2rem;
}
ul,ol,dl,p {
font-size: 1.5rem;
}
li, p {
line-height: 1.5;
}
dd, dt {
line-height: 1.5;
}
dt {
font-weight: bold;
}
dd {
margin-bottom: 1.5rem;
}
- Первое правило устанавливает шрифт сайта и основной размер шрифта 10px. Они наследуются всеми на этой странице.
- Правила 2 и 3 задают относительные размеры шрифтов заголовков, различных типов списков (их наследуют дочерние элементы списков) и параграфов.
- Правило 4 задает одинаковую высоту
line-height
в параграфах и пунктах списка — так, что параграфы и каждый отдельный пункт списка будут иметь те же интервалы между строками. Это также поможет сохранить согласованность вертикального ритма. - Правила 5 и 6 применяются к списку описаний — мы задаем одинаковую высоту
line-height
между терминами и описаниями списке описаний как мы это делали с параграфами и пунктами списка. И снова, согласованность хорошая! Мы также делаем описание терминов жирным шрифтом, чтобы они визуально выделялись легче.
Теперь, рассмотрев общие методы интервалов для списков, давайте изучим некоторые специфичные спискам свойства. Существует три свойства, с которых вам надо начать знакомство, которые могут быть установлены для элементов <ul>
или <ol>
:
list-style-type
(en-US): задает тип маркеров для использования в списке, например, квадратные или круглые маркеры для неупорядоченного списка, или цифры, буквы или римские цифры для упорядоченного списка.list-style-position
(en-US): управляет будет ли маркер появляется внутри пунктов списка или вне их перед началом каждого элемента.list-style-image
: позволяет вам использовать пользовательские изображения в качестве маркеров, а не просто квадрат или круг.
Стили маркеров
Как указано выше, свойство list-style-type
(en-US) позволяет вам устанавливать какой тип маркера использовать в качестве точек маркера. В нашем примере мы установили использование заглавных римских цифр в упорядоченном списке:
ol {
list-style-type: upper-roman;
}
Это дает нам следующий вид:
Вы можете найти гораздо больше опций, заглянув на справочную страницу list-style-type
(en-US).
Позиция маркера
Свойство list-style-position
(en-US) устанавливает будет ли появляться маркер внутри пунктов списка или снаружи перед началом каждого пункта. Значение по умолчанию — outside
, которое заставляет маркеры находится снаружи пунктов списка, как видно выше.
Если вы установите значение на inside
, то маркеры будут находиться внутри строк:
ol {
list-style-type: upper-roman;
list-style-position: inside;
}
Использование пользовательского изображения как маркер
Свойство list-style-image
позволяет вам использовать пользовательское изображение в качестве вашего маркера. Синтаксис довольно прост:
ul {
list-style-image: url(star.svg);
}
Однако это свойство немного ограничено с точки зрения управления позициями, размерами (и т.д.) маркеров. Вам лучше использовать семейство свойств background
, о которых вы узнаете намного больше в модуле Styling boxes. А пока вот вам образец для дегустации!
В нашем законченном примере мы оформили неупорядоченный список следующим образом (поверх того, что вы уже видели выше):
ul {
padding-left: 2rem;
list-style-type: none;
}
ul li {
padding-left: 2rem;
background-image: url(star. svg);
background-position: 0 0;
background-size: 1.6rem 1.6rem;
background-repeat: no-repeat;
}
Мы сделали следующее:
- Установили
padding-left
элемента<ul>
с40px
по умолчанию на20px
, затем установили то же самое количество в пунктах списка. Это для того, чтобы все пункты списка продолжали выравниваться с порядком пунктов списка и описаний списка описаний, но пункты списка имеют некоторый padding для фоновых изображений чтобы сидеть внутри. Если бы мы не сделали этого, то фоновые изображения накладывались бы с текстом пунктов списка, что выглядело бы неряшливо. - Установили
list-style-type
(en-US) наnone
, для того чтобы маркеры не появлялись по умолчанию. Мы собираемся использовать свойстваbackground
для управления маркерами. - Вставили маркер в каждый пункт неупорядоченного списка. Соответствующие свойства, следующие:
background-image
: Указывает путь к файлу изображения, который вы хотите использовать в качестве маркера.background-position
: Определяет где в фоне выбранного элемента появится изображение — в данном случае мы говорим0 0
, что значит что маркер будет появляться в самом верху слева каждого пункта списка.background-size
: Задает размер фонового изображения. В идеале мы хотим, чтоб маркеры были того же размера что и пункты списка (или самую малость меньше или крупнее). Мы используем размер1.6rem
(16px
), что очень хорошо сочетается с отступом (padding)20px
, который мы позволили разместить внутри маркера — 16px плюс 4px интервала между маркером и текстом пункта списка работают хорошо.background-repeat
: По умолчанию, фоновые изображения повторяются пока не заполнят доступное фоновое пространство. Мы хотим всего лишь одну копию вставленного изображения в каждом случае, поэтому мы установили значениеno-repeat
.
Это дает нам следующий результат:
короткая запись list-style
Эти три свойства упомянутые выше могут все быть заданы, используя лишь одну короткую запись свойства, list-style
(en-US). Например, следующий CSS:
ul {
list-style-type: square;
list-style-image: url(example.png);
list-style-position: inside;
}
Может быть заменен этим:
ul {
list-style: square url(example.png) inside;
}
Значения могут быть перечислены в любом порядке, и вы можете использовать одно, два и все три (значения по умолчанию, использованные для свойств, которые не включены — disc
, none
, и outside
). Если указаны и type
и image
, тип используется в качестве запасного варианта, если изображение по какой-либо причине не может быть загружено.
Иногда вам может понадобиться вести счет в упорядоченном списке по-другому — например начинать с цифры отличной от 1, или считать в обратном порядке, или вести счет с шагом больше 1. HTML и CSS имеют несколько инструментов которые помогут с этим.
start
Атрибут start
позволит вам начать счет списка с цифры отличной от 1. Например:
<ol start="4">
<li>Toast pita, leave to cool, then slice down the edge.</li>
<li>Fry the halloumi in a shallow, non-stick pan, until browned on both sides.</li>
<li>Wash and chop the salad.</li>
<li>Fill pita with salad, hummus, and fried halloumi.</li>
</ol>
что даст вам такой результат:
reversed
Атрибут reversed
начнет отсчет по убыванию вместо возрастания. Например:
<ol start="4" reversed>
<li>Toast pita, leave to cool, then slice down the edge.</li>
<li>Fry the halloumi in a shallow, non-stick pan, until browned on both sides.</li>
<li>Wash and chop the salad.</li>
<li>Fill pita with salad, hummus, and fried halloumi.</li>
</ol>
что даст вам такой результат:
Обратите внимание: Если пунктов в списке в обратном списке больше, чем значение атрибута start
, счет продолжится до нуля и далее отрицательные значения.
value
Атрибут value
позволит вам установить специфичные цифровые значения к пунктам списка. Например:
<ol>
<li value="2">Toast pita, leave to cool, then slice down the edge.</li>
<li value="4">Fry the halloumi in a shallow, non-stick pan, until browned on both sides.</li>
<li value="6">Wash and chop the salad.</li>
<li value="8">Fill pita with salad, hummus, and fried halloumi.</li>
</ol>
что даст вам такой результат:
Обратите внимание: Даже если вы используете нечисловой list-style-type
(en-US), вам все равно надо использовать эквивалентное цифровое значение в атрибуте value
.
В этой сессии активного изучения, мы хотим, чтобы вы взяли все что вы выучили выше и попробовали стилизовать вложенный список. Мы предоставили вам HTML и хотим, чтобы вы:
- Задали неупорядоченному списку квадратные маркеры.
- Задали пунктам неупорядоченного и упорядоченного списка 1,5 межстрочный интервал их размера шрифта.
- Задали упорядоченному списку маркеры в виде строчных букв.
- Не стесняйтесь играться с примерами списков столько сколько вам нравится, экспериментируя с типами маркеров, интервалами или со всем что вы найдете.
Если вы допустите ошибку, вы всегда можете сделать сброс используя кнопку Reset. Если вы застрянете, нажмите кнопку Show solution чтобы посмотреть возможный ответ.
Счетчики CSS предоставляют расширенные инструменты для настройки счета и оформления списков, но они довольно сложные. Мы рекомендуем изучить это, если вы захотите размяться. Смотрите:
В плане стилизации списки сравнительно легко освоить, как только вы освоите несколько связанных базовых принципов и специфичные свойства. В следующей статье мы перейдем к методам стилизации ссылок.
Стиль списка. Учебник CSS.
Глава 13
В девятой главе учебника HTML мы с Вами уже знакомились с таким немаловажным элементом как список и действительно хорошее средство для структуризации данных. Однако списки организованные одними средствами HTML весьма убоги в плане дизайна и не радуют глаз человека.
В этой главе мы немного поколдуем над списками с помощью свойств CSS. Так мы будем говорить о стиле списка, то для обучения Вам понадобится базовая информация о тегах: <ul> <ol> <li> <dl> <dt> <dd> — изложенная в учебнике HTML глава 9 «Списки» — рекомендую освежить в голове информацию о данных элементах, прежде чем приступать к работе.
Ну а если в голове и так свежо тогда начнем!
Если Вы помните, то в чистом HTML вид маркера в списке определял атрибут type и одно из его возможных значений, в CSS данную задачу берёт на себя свойство: list-style-type которое, в свою очередь, тоже имеет свои стандартные значения определяющие вид маркера как всего списка сразу, так и его отдельного «пункта».
Значения list-style-type:
- disc — Диск. (по умолчанию для <ul>)
- circle — Полый круг.
- square — Квадрат.
- decimal — Арабские цифры. (по умолчанию для <ol>)
- lower-roman — Строчные римские цифры.
- lower-alpha — Строчные буквы.
- upper-roman — Заглавные римские цифры.
- upper-alpha — Заглавные буквы.
- none — Маркер отсутствует.
Пример:
<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/TR/html4/loose.dtd»><html>
<head>
<title>Вид маркера в списке</title>
</head>
<body>
<ul>
<li>Пункт 1.
<li>Пункт 2.
<li >Пункт 3 (особенный).
</ul>
<ul>
<li>Пункт 1.
<li>Пункт 2.
<li>Пункт 3.
</ul>
</body>
</html>
Наиболее интересным CSS инструментом для работы со стилем списка является, на мой взгляд, возможность вместо стандартных «скучных» маркеров описанных выше использовать свои собственные нестандартные изображения — небольшие рисунки, вписывающиеся в общий дизайн Вашего сайта.
Эту задачу выполняет свойство list-style-image которое определяет в качестве маркера списка некое графическое изображение с указанием пути к нему.
Значений данного свойства всего два:
- none — Отменяет графическое изображение маркера.
- url — Путь к файлу с рисунком маркера.
Путь к рисунку после url указывается в круглых скобках.
Вот так:
list-style-image: url(graphics/marker.gif)— Такая запись будет говорить о том, что рядом с документом есть папка graphics в которой лежит файлик-рисунок: » » — под названьем marker.gif
Теперь попрубуем сделать так, что бы каждый пункт нашего списока был промаркерован этим рисунком. Смотрим пример:
<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/TR/html4/loose.dtd»><html>
<head>
<title>Нестандартный маркер-рисунок</title>
</head>
<body>
<ul>
<li>Первый любимый пункт.
<li>Второй любимый пункт.
<li>И не менее любимый третий пункт.
</ul>
</body>
</html>
Свойство list-style-position указывает браузеру на то, как следует отображать текст в списке относительно его маркеров. По умолчанию маркеры находятся в стороне от текста списка, но можно сделать так, что они будут обтекаться текстом.
Возможных значений свойства list-style-position всего два:
- outside — Маркер находится в стороне от списка.(по умолчанию)
- inside — Маркер обтекается текстом.
Пример для наглядности:
<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/TR/html4/loose.dtd»><html>
<head>
<title>Обтекание маркера текстом</title>
<style type=»text/css»>
body {
margin: 0px;
background: #e8e8e8
}
div {
width: 300px;
height: 200px;
float:left;
margin: 10px;
padding: 10px;
border: RGB(25, 125, 25) 2px ridge;
background: #fff
}
h4 {
text-align: center
}
</style>
</head>
<body>
<div>
<h4>Здесь маркер обтекается текстом:</h4>
<ul>
<li>Пункт, в котором говорится о том, что хорошо бы было сделать, что-то там, где это что-то еще не сделано.
<li>Пункт, в котором говорится о том, что неплохо бы было сделать, нечто там, где это нечто еще не сделано.
</ul>
</div>
<div>
<h4>А здесь нет:</h4>
<ul >
<li>Пункт, в котором говорится о том, что хорошо бы было сделать, что-то там, где это что-то еще не сделано.
<li>Пункт, в котором говорится о том, что неплохо бы было сделать, нечто там, где это нечто еще не сделано.
</ul>
</div>
</body>
</html>
Базовое свойство list-style используется, когда стилю списка необходимо одновременно присвоить несколько значений. Может иметь от одного до трёх значений из свойств применяемых к стилю списка, в любой последовательности через пробел.
Все три свойства и их возможные значения мы рассмотрели выше, поэтому повторятся не буду, а просто выложу внутри страничную навигацию:
Если в голове остались какие то пробелы можете вернуться и перечитать.
Пример:
<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/TR/html4/loose.dtd»><html>
<head>
<title>Стиль списка</title>
</head>
<body>
<div>
<ul>
<li>- Этот список использует в качестве маркера рисунок.
<li>- Текст этого списка обтекает маркер.
</ul>
</div>
</body>
</html>
Списки наряду с заголовками, выделенным текстом и картинками, являются элементами, которые приковывают взгляд посетителя при беглом просмотре страницы. Умелое и ненавязчивое размещение таковых элементов залог того, что посетитель окунётся в чтение Вашего документа более глубоко.
Так как списки являются великолепным инструментом для структуризации данных, а свойства CSS позволяют создать практически любой их дизайн, используйте списки, помимо их основного назначения, в качестве «меню» — навигации по сайту, где каждый пункт является ссылкой на ту или иную страницу Вашего сайта.
Работа с маркерами списков ul на CSS
Мы с вами еще в начале книги разбирались со списками ul и вы наверняка помните о том, что список ul имеет маркеры в виде точек. Однако, вид этих маркеров можно сменить или даже убрать их совсем. Делается это с помощью свойства list-style-type. Давайте посмотрим, какие значения оно может принимать для списка ul.
Значение square
Значение square позволяет сделать маркеры в виде квадратиков:
<ul>
<li>list item</li>
<li>list item</li>
<li>list item</li>
<li>list item</li>
<li>list item</li>
</ul>
ul {
list-style-type: square;
}
:
Значение circle
Значение circle позволяет сделать маркеры в виде кружков:
<ul>
<li>list item</li>
<li>list item</li>
<li>list item</li>
<li>list item</li>
<li>list item</li>
</ul>
ul {
list-style-type: circle;
}
:
Значение disc
Значение disc делает маркеры в виде закрашенных кружков (это значение по умолчанию):
<ul>
<li>list item</li>
<li>list item</li>
<li>list item</li>
<li>list item</li>
<li>list item</li>
</ul>
ul {
list-style-type: disc;
}
:
Значение none
Значение none убирает маркеры совсем:
<ul>
<li>list item</li>
<li>list item</li>
<li>list item</li>
<li>list item</li>
<li>list item</li>
</ul>
ul {
list-style-type: none;
}
:
Практические задачи
Повторите страницу по данному образцу:
Повторите страницу по данному образцу:
Сделайте список без маркеров, как в данном образце:
Вид | HTML-код | CSS-код | Описание |
---|---|---|---|
☃ | ☃ | \2603 | Снеговик |
☦ | ☦ | \2626 | Православный крест |
⚓ | ⚓ | \2693 | Якорь |
➳ | ➳ | \27B3 | Стрела направо |
✆ | ✆ | \2706 | Знак телефона |
☕ | ☕ | \2615 | Горячие напитки |
✎ | ✎ | \270E | Карандаш, направленный вправо-вниз |
✏ | ✏ | \270F | Карандаш |
✐ | ✐ | \2710 | Карандаш, направленный вправо-вверх |
✑ | ✑ | \2711 | Незакрашенное острие пера |
✒ | ✒ | \2712 | Закрашенное острие пера |
⚜ | ⚜ | \269C | Геральдическая лилия |
⛑ | ⛑ | \26D1 | Шлем с белым крестом |
⚝ | ⚝ | \269D | Начерченная белая звезда |
❄ | ❄ | \2744 | Снежинка |
❤ | ❤ | \2764 | Закрашенное жирное сердце |
❅ | ❅ | \2745 | Зажатая трилистниками снежинка |
❆ | ❆ | \2746 | Жирная остроугольная снежинка |
★ | ★ | \2605 | Закрашенная звезда |
☆ | ☆ | \2606 | Незакрашенная звезда |
✪ | ✪ | \272A | Незакрашенная звезда в закрашенном круге |
✫ | ✫ | \272B | Закрашенная звезда с незакрашенным кругом внутри |
✯ | ✯ | \272F | Вращающаяся звезда |
❉ | ❉ | \2749 | Звёздочка с шарообразными окончаниями |
❋ | ❋ | \274B | Жирная восьмиконечная каплеобразная звёздочка-пропеллер |
✲ | ✲ | \2732 | Звёздочка с незакрашенным центром |
⍟ | ⍟ | \235F | Apl функциональный символ звезда в круге |
⊛ | ⊛ | \229B | Оператор звездочки в круге |
☀ | ☀ | \2600 | Закрашенное солнце с лучами |
☁ | ☁ | \2601 | Облака |
☂ | ☂ | \2602 | Зонтик |
☑ | ☑ | \2611 | Галочка в квадрате |
☒ | ☒ | \2612 | Крестик в квадрате |
☹ | ☹ | \2639 | Нахмуренный смайлик |
☺ | ☺ | \263A | Улыбающийся смайлик |
☻ | ☻ | \263B | Закрашенный улыбающийся смайлик |
☭ | ☭ | \262D | Серп и молот |
☰ | ☰ | \2630 | Триграмма |
✿ | ✿ | \273f | Закрашенный цветок |
❀ | ❀ | \2740 | Незакрашенный цветок |
✾ | ✾ | \273E | Цветок с шестью лепестками |
❁ | ❁ | \2741 | Закрашенный обведённый цветок |
❂ | ❂ | \2742 | Цветок из точек |
✉ | ✉ | \2709 | Конверт |
❦ | ❦ | \2766 | Сердце в виде цветка |
❶ | ❶ | \2776 | Номер 1 |
❷ | ❷ | \2777 | Номер 2 |
❸ | ❸ | \2778 | Номер 3 |
❹ | ❹ | \2779 | Номер 4 |
❺ | ❺ | \277A | Номер 5 |
❻ | ❻ | \277B | Номер 6 |
❼ | ❼ | \277C | Номер 7 |
❽ | ❽ | \277D | Номер 8 |
➒ | ➒ | \2792 | Номер 9 |
➓ | ➓ | \2793 | Номер 10 |
➠ | ➠ | \27A0 | Летящая стрела |
➤ | ➤ | \27A4 | Наконечник стрелы |
➥ | ➥ | \27A5 | Изогнутая стрела, указывающая вниз и вправо |
➦ | ➦ | \27A6 | Изогнутая стрела, указывающая вверх и вправо |
❜ | ❜ | \275C | Жирная одинарная верхняя запятая |
❛ | ❛ | \275B | Жирная одинарная повёрнутая верхняя запятая |
✖ | ✖ | \2716 | Жирный знак умножения |
✘ | ✘ | \2718 | Жирный крестик |
✔ | ✔ | \2714 | Жирная отметка галочкой |
✚ | ✚ | \271A | Жирный крест |
↺ | ↺ | \21BA | Круглая стрелка с наконечником против часовой стрелки |
↻ | ↻ | \21BB | Круглая стрелка с наконечником против часовой стрелки |
\003C | Знак «меньше чем» (начало тега) | ||
> | > | \003E | Знак «больше чем» (конец тега) |
« | « | \00AB | Левая двойная угловая скобка |
» | » | \00BB | Правая двойная угловая скобка |
‹ | ‹ | \2039 | Левая угловая одиночная кавычка |
› | › | \203A | Правая угловая одиночная кавычка |
« | « | \0022 | Двойная кавычка |
′ | ′ | \2032 | Одиночный штрих |
″ | ″ | \2033 | Двойной штрих |
‘ | ‘ | \2018 | Левая одиночная кавычка |
’ | ’ | \2019 | Правая одиночная кавычка |
‚ | ‚ | \201A | Нижняя одиночная кавычка |
“ | “ | \201C | Левая двойная кавычка |
” | ” | \201D | Правая двойная кавычка |
„ | „ | \201E | Нижняя двойная кавычка |
& | & | \0026 | Амперсанд |
‘ | ‘ | \0027 | Апостроф (одинарная кавычка) |
§ | § | \00A7 | Параграф |
© | © | \00A9 | Знак copyright |
¬ | ¬ | \00AC | Знак отрицания |
® | ® | \00AE | Знак зарегистрированной торговой марки |
¯ | ¯ | \00AF | Знак долготы над гласным |
° | ° | \00B0 | Градус |
± | ± | \00B1 | Плюс-минус |
¹ | ¹ | \00B9 | Верхний индекс «1» |
² | ² | \00B2 | Верхний индекс «2» |
³ | ³ | \00B3 | Верхний индекс «3» |
¼ | ¼ | \00BC | Одна четверть |
½ | ½ | \00BD | Одна вторая |
¾ | ¾ | \00BE | Три четверти |
´ | ´ | \00B4 | Знак ударения |
µ | µ | \00B5 | Микро |
¶ | ¶ | \00B6 | Знак абзаца |
· | · | \00B7 | Знак умножения |
¿ | ¿ | \00BF | Перевернутый вопросительный знак |
ƒ | ƒ | \0192 | Знак флорина |
™ | ™ | \2122 | Знак торговой марки |
• | • | \2022 | Маркер списка |
… | … | \2026 | Многоточие |
‾ | ‾ | \203E | Надчеркивание |
– | – | \2013 | Среднее тире |
— | — | \2014 | Длинное тире |
‰ | ‰ | \2030 | Промилле |
} | } | \007D | Правая фигурная скобка |
{ | { | \007B | Левая фигурная скобка |
= | = | \003D | Знак равенства |
≠ | ≠ | \2260 | Знак неравенства |
≅ | ≅ | \2245 | Конгруэнтность (геометрическое равенство) |
≈ | ≈ | \2248 | Почти равно |
≤ | ≤ | \2264 | Меньше чем или равно |
≥ | ≥ | \2265 | Больше чем или равно |
∠ | ∠ | \2220 | Угол |
⊥ | ⊥ | \22A5 | Перпендикулярно (кнопка вверх) |
√ | √ | \221A | Квадратный корень |
∑ | ∑ | \2211 | N-ичное суммирование |
∫ | ∫ | \222B | Интеграл |
← | ← | \2190 | Стрелка влево |
↑ | ↑ | \2191 | Стрелка вверх |
→ | → | \2192 | Стрелка вправо |
↓ | ↓ | \2193 | Стрелка вниз |
↔ | ↔ | \2194 | Стрелка влево-вправо |
↵ | ↵ | \21B5 | Стрелка вниз и влево – знак возврата каретки |
⇐ | ⇐ | \21D0 | Двойная стрелка налево |
⇑ | ⇑ | \21D1 | Двойная стрелка вверх |
⇒ | ⇒ | \21D2 | Двойная стрелка направо |
⇓ | ⇓ | \21D3 | Двойная стрелка вниз |
⇔ | ⇔ | \21D4 | Двойная стрелка влево-вправо |
¢ | ¢ | \FFE0 | Цент |
£ | £ | \FFE1 | Фунт стерлингов |
₽ | ₽ | \20BD | Российский рубль |
¥ | ¥ | \00A5 | Йена или юань |
€ | € | \20AC | Евро |
$ | $ | \0024 | Доллар |
₴ | ₴ | \20B4 | Знак гривны |
₹ | ₹ | \20B9 | Индийская рупия |
圓 | 圓 | \5713 | Китайский юань |
₸ | ₸ | \20B8 | Казахстанский тенге |
list-style-type: нет, когда элементы списка являются ссылками, и показывать маркеры, когда элементы списка не являются ссылками? CSS
Если у меня есть пара пуль на странице, и некоторые списки содержат обычный текст (без элементов абзаца), а некоторые содержат ссылки, возможно ли иметь не пули на ссылках, а пули на текстовых элементах?
Чтобы удалить все пули я это делаю:
#WebPartWPQ1 li ,#WebPartWPQ2 li ,#WebPartWPQ3 li ,
#WebPartWPQ4 li,#WebPartWPQ5 li,#WebPartWPQ6 li,
#WebPartWPQ6 li {margin-left: -25px; list-style-type: none}
Но если элемент является ссылкой, Я хочу показать пули. Я попробовал с:
#WebPartWPQ1 li ,#WebPartWPQ2 li ,#WebPartWPQ3 li ,
#WebPartWPQ4 li,#WebPartWPQ5 li,#WebPartWPQ6 li,
#WebPartWPQ6 li {margin-left: -25px;}
#WebPartWPQ1 li a ,#WebPartWPQ2 li a ,#WebPartWPQ3 li a ,
#WebPartWPQ4 li a,#WebPartWPQ5 li a,#WebPartWPQ6 li a,
#WebPartWPQ6 li a {margin-left: -25px; li ast-style-type: none}
Без успеха, какие-нибудь идеи?
html cssПоделиться Источник peter 27 января 2011 в 00:27
2 ответа
- Суммирование столбцов списка 2D, где некоторые элементы являются строками
У меня есть список списков формы: my_list=[[1,2,’A’],[4,5,’B’],[7,8,’C’]] и я хочу суммировать первый элемент каждого списка (1+4+7), чтобы получить общую сумму. Я попробовал следующее, что не сработало, потому что некоторые элементы списка являются строками: new_list = list(zip(*my_list)) print…
- Разыменование списков внутри списка в Python
Когда я определяю список способом generic: >>>a=[[]]*3 >>>a [[],[],[]] а затем попробуйте добавить только ко второму элементу внешнего списка: >>>a[1].append([0,1]) >>>a [[[0,1]], [[0,1]], [[0,1]]] он присоединяется ко всем элементам внешнего списка, как видно…
1
Вам придется прибегнуть к предварительной обработке на стороне сервера или Javascript. В CSS нет способа стилизовать элемент на основе того, что представляют собой его дочерние элементы, или изменить стиль родителя из объявления стиля дочернего элемента. Вот ссылка на селектор W3 CSS2 и ссылка на рабочий проект селектора CSS3, и ни один из них не упоминает родительские селекторы.
Поделиться jball 27 января 2011 в 00:35
0
Хотя вы не можете изменить стиль элемента списка на основе любого элемента(ов), который он содержит, существует чистый обходной путь CSS, который достигает более или менее того же результата :
- Установите
block
в качестве свойства отображения всех элементов списка - Установите
list-item
в качестве свойства отображения элементов ссылки вместе с допустимым значением дляlist-style-position
иlist-style-type
.
Поэтому вместо того, чтобы делать элементы списка похожими на элементы списка, когда они содержат ссылку, вы просто заставляете ссылки внутри элементов списка вести себя как элемент списка.
Ваша пуля будет иметь тот же цвет, что и ваша ссылка, но это примерно единственное различие между этим подходом и подходом, который вы имели в виду (что невозможно).
ПРИМЕР КОДА :
#WebPartWPQ1 li {
margin-left: -25px;
display: block;
}
#WebPartWPQ1 li a {
display: list-item;
list-style-position: inside;
list-style-type: disk;
}
<ul>
<li>Item 1 (ordinary item)</li>
<li><span>Item 2 (wrapped in a "span" tag)</span></li>
<li><a href="#">Item 2 (wrapped in an "a" tag)</a></li>
</ul>
В FIDDLE :
http://jsfiddle.net/6kt8jhfo/5 /
Поделиться John Slegers 08 сентября 2015 в 12:27
Похожие вопросы:
JQuery автозаполнение, где результаты являются ссылками
Я пытаюсь создать окно автозаполнения JQuery, где слова, предлагаемые для автозаполнения, являются ссылками (аналогично тому, что происходит на Facebook или Quora). В принципе, я хочу, чтобы…
Наследование имущества list-style-type в Firefox (ошибка в Firebug?)
Давайте посмотрим на некоторые комментарии 1) на странице, сгенерированной WordPress (это не сайт, который я поддерживаю, Мне просто интересно, что здесь происходит). Поскольку эти страницы могут…
Почему мои маркеры элементов списка перекрывают плавающие элементы
У меня есть страница (XHTML Strict), на которой я плаваю изображение рядом с обычными абзацами текста. Все идет хорошо, за исключением случаев, когда вместо абзацев используется список. Маркеры…
Суммирование столбцов списка 2D, где некоторые элементы являются строками
У меня есть список списков формы: my_list=[[1,2,’A’],[4,5,’B’],[7,8,’C’]] и я хочу суммировать первый элемент каждого списка (1+4+7), чтобы получить общую сумму. Я попробовал следующее, что не…
Разыменование списков внутри списка в Python
Когда я определяю список способом generic: >>>a=[[]]*3 >>>a [[],[],[]] а затем попробуйте добавить только ко второму элементу внешнего списка: >>>a[1].append([0,1])…
создание плоского списка из списка списков, где элементы являются строками
Я знаю, что подобный вопрос был задан здесь, делая плоский список из списка списков в Python Но когда элементы списков являются строками, этот метод не разрезает их: arr = [[‘i’, ‘dont’], ‘hi’]…
cscope для файлов, которые являются символическими ссылками
У меня есть исходный каталог с несколькими файлами. Некоторые из них являются символическими ссылками на другие файлы. Я создал файл cscope.files. Но когда я выполняю cscope. Он жалуется на файлы,…
«list-style-type: нет» не работает в Outlook 2007
list-style-type: нет не работает в Outlook 2007 Я запрограммировал рассылку по электронной почте с html. Я могу изменить отображение элементов списка с помощью list-style-type. E.g. если я напишу…
R Markdown слайды с reveal.js: Как выровнять элементы списка по левому краю (маркеры и цифры)?
Как выровнять элементы списка по левому краю страницы слайда ? Похоже, что revealjs всегда использует самый длинный текст элемента списка, центрирует его на слайде, а затем выравнивает все остальные…
Циклирование списка python,элементы которого также являются списком
У меня есть список, его элементы также являются списком. напр.: outlier=[[20,2,67], [90,6,12], [23,16,7]]. как мне написать одиночную линию кода в цикле список outlier принимая элементы из того же…
Маркированный список css. Установка маркера списка разными способами
— С какой цифры начать нумерациюВ зависимости от того, где указать тип нумерации, можно поменять ее у всего списка или у конкретного элемента.
Список определений (definition list)
Список определений был разработан для словарных статей.
Есть общий контейнер ‘dl’. Внутри него стоят ‘dt’ (definition termin — термин) и ‘dd’ (definition description — описание). Простейший пример:
- Отдел маркетинга
- Данный отдел занимается продвижением товаров и услуг
- Финансовый отдел
- Данный отдел занимается всеми финансовыми операциями
Все элементы всех списков — блочные. Но внутри элемента ‘dt’ можно ставить только строчные элементы. В элементы ‘dd’ и ‘li’ можно ставить все, что угодно. Отсюда появляются вложенные списки.
Вложенные (смешанные списки)
Это многоуровневые списки, внутри которых есть иерархия. Часто такие списки применяются при построении карты сайта. Пример:
- Смешанный список
- НОВОСТЬ ДНЯ
- Сегодня идет дождь
- Дождь будет идти весь день
- НОВОСТЬ НОЧИ
- Ночью будет идти дождь
- Завтра начнется новый день
Доброго времени суток!
В этой статье вы узнаете о всех возможностях списков, поймете как сделать нумерованный список, освоите теги, которые помогут сделать из простого маркированного списка более интересный и заметный с произвольными маркерами. После прохождения урока у вас придет понимание того, где применяются списки и при каких обстоятельствах их можно использовать.
Данная статья — третья в данном небольшом курсе по основам HTML. Перед прочтением данного урока рекомендую пройти предыдущие два:
Только началась статья, а вы уже можете заметить использование стандартного маркированного списка. У меня на сайте он выглядит достаточно просто: слева есть небольшой отступ с линией и квадратный маркер. Далее в статье мы подробно рассмотрим какие бывают маркеры, как сделать цифры, а также как сделать собственный маркер.
В каждой части статьи создание тех или иных списков будет сопровождаться подробными пояснениями по вставке того или иного списка.
1. Маркированные списки в HTML
Данный вид списков используется для перечисления в тексте набора похожих по значению элементов. Это может быть перечисление ссылок, которые связаны одной тематикой, подробное объяснение для отдельных частей текста. Но давайте посмотрим как в коде выглядит маркированные списки:
А вот так выглядит в браузере:
Рис. 1.1. Стандартный вид маркированного ненумерованного списка HTML в браузере1.1 Стандартные маркеры для маркированного списка
На изображении выше (Рис 1.1.) можно заметить кружки в начале каждого элемента меню. Это и есть маркер. По умолчанию он в браузере в виде закрашенного круга. Всего есть несколько видов маркеров в HTML: закрашенный круг, пустой круг и квадрат. Они не требуют ни CSS ни подключения сторонних изображений:
1.2 Маркер списка в виде пустого круга
Значения атрибута вы знаете, а сейчас посмотрим как сделать маркированный список HTML в коде. Из таблицы выше мы выбрали второе значение «circle» для атрибута type и задали его нашему маркированному списку:
html > head > title > Пример маркированного списка с маркером в виде пустого круга/ title > / head > body > p > Звезды:/ p > ul type = «circle» > li > Сириус/ li > li > Арктур/ li > li > Поллукс/ li > li > Бетельгейзе/ li > li > Солнце/ li > / ul > / body > / html > |
Сразу смотрим как этот код будет выглядеть в браузере:
Рис. 1.2. Вид маркера для списка в виде окружности в браузере1.3 Маркер списка в виде квадрата
Посмотрим также и последний пример с квадратным маркером для HTML списка:
Обратите внимание на маркер, он стал квадратным:
Рис. 1.3. Вид маркера для списка в виде квадрата в браузереВажное замечание: сейчас уже не используется такой способ для создания стилей маркированным спискам. Существует четкое разделение CSS (что такое CSS читайте ) и HTML. HTML — для разметки, а CSS — для создания привлекательного внешнего вида.
Код, который содержит данный атрибут, при указания типа текущего документа как HTML5 («»), выдаст ошибку при валидации. Если не слышали что такое валидация, то вам сюда — .
Ошибка будет следующая:
Рис. 1.4. Ошибка на валидаторе при использовании атрибута «type» у спискаС маркированными списками разобрались. Сейчас перейдем к нумерованным, а затем рассмотрим вложенные списки и несколько готовых примеров, которые используются чаще всего на реальных сайтах.
2. Нумерованные списки в HTML
В отличие от предыдущего вида списков, в нумерованных списков есть одна важная особенность: они автоматически проставляют нумерацию. Это бывает полезно когда необходимо пронумеровать большой список. Вручную это займет очень много времени, при этом еще можно сбиться. Нумерованный список задается с помощью тега . Как это выглядит на практике:
Пример нумерованного списка:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | html > head > title > Пример стандартного нумерованного списка/ title > / head > body > p > От одного до пяти:/ p > ol > li > Первый/ li > li > Второй/ li > li > Третий/ li > li > Четвертый/ li > li > Пятый/ li > / ol > / body > / html > |
Таким образом выглядит нумерованный список со стандартными настройками в браузере:
Рис. 2.1. Нумерованный список в браузере со стандартными настройкамиКак и у его предшественника (маркированного списка) у него есть свои стили для вывода цифр. Обычная нумерация — это не единственный вид маркеров у нумерованного списка в HTML.
2.1 Стандартные маркеры для нумерованного списка
Здесь у нас есть выбор не из трех видов маркеров, а из пяти:
Название маркера | Значение атрибута «type» | Пример списка |
---|---|---|
Маркеры в виде арабских чисел | 1 |
|
Маркеры в виде строчных латинских букв | a |
|
Маркеры в виде заглавных латинских букв | A |
|
Маркеры в виде римских цифр в нижнем регистре | i |
|
Маркеры в виде римских цифр в верхнем регистре | I |
|
2.2 Своя нумерация в списке HTML
Кроме обычного вывода нумерованного списка мы также можем начать свою нумерацию с любой цифры. Для этого необходимо задать дополнительный атрибут «start» . Такая нумерация работает на всех видах маркеров у нумерованных списков. Как это выглядит на практике:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | html > head > title > Произвольная нумерация для нумерованного списка/ title > / head > body > p > Начинаем нумерацию с двенадцати:/ p > ol type = «a» start = «12» > li > Двенадцать/ li > li > Тринадцать/ li > li > Четырнадцать/ li > li > Пятнадцать/ li > li > Шестнадцать/ li > / ol > / body > / html > |
Вот как это будет отображаться на реальном сайте:
Рис. 2.2. Нумерация с произвольного числа в нумерованном спискеНа изображении выше мы пронумеровали список начиная с двенадцати, при этом сделали маркеры в виде строчных латинских букв. Сейчас, я думаю, стало понятно как использовать данные атрибуты в своих проектах.
Ну а сейчас перейдем к вложенным спискам HTML.
3. Как сделать многоуровневый (вложенный) список в HTML
Многоуровневые списки используются на сайте в построении меню. Это меню чаще всего выглядит выпадающим либо вниз (урок по ), либо выпадающим влево или вправо. Такие меню позволяют хранить в себе другие элементы меню в компактном виде.
На примере моделей автомобилей мы построим многоуровневый список в HTML:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | html > head > title > Вложенный маркированный список HTML/ title > / head > body > ul > li > Citroen ul > li > Berlingo/ li > li > C1/ li > li > C2/ li > li > C3 Picasso/ li > li > C4 Grand Picasso/ li > / ul > / li > li > KIA/ li > li > Toyota/ li > li > Audi/ li > li > Lexus/ li > / ul > / body > / html > |
Обратите внимание, как выглядит многоуровневый список в браузере:
Рис. 3.1. Пример многоуровневого списка в HTMLМы делали многоуровневый список с помощью маркированного (тег
css li убрать маркер | Все о Windows 10
На чтение 4 мин. Просмотров 28 Опубликовано
За управление маркерами есть специальное свойство CSS list-style-type .
Синтаксис свойства CSS list-style-type
- disc — маркер в виде закрашенного кружка
- circle — маркер в виде прозрачного кружка
- square — маркер в виде закрашенного квадрата
- none — отсутствие маркера
Internet Explorer | Chrome | Opera | Safari | Firefox | Android | iOS |
4.0+ | 1.0+ | 4.0+ | 1.0+ | 1.0+ | 1.0+ | 1.0+ |
Задача
Скрыть отображение маркеров в списке.
Решение
Для этой цели применяется стилевое свойство list-style-type со значением none . Его следует добавить к селектору UL или LI как показано в примере 1.
Пример 1. Список без маркеров
HTML5 CSS 2.1 IE Cr Op Sa Fx
Результат данного примера показан на рис. 1.
Рис. 1. Список без маркеров
Маркеры хотя и не отображаются в списке, но текст при этом всё равно оказывается сдвинут вправо. Чтобы управлять положением элементов списка, для селектора UL в данном примере добавлены свойства margin-left и padding-left . Два свойства вместо одного требуется, чтобы одинаково показывать результат в разных браузерах.
Тип маркера
Существует возможность установки внешнего вида маркера элементов списка. В том числе, можно вообще убрать маркер списка CSS. Для этого есть свойство list-style-type . У него достаточно много значений. Часть значений применяется для маркированного, другая часть для нумерованного списка.
Для маркированного списка:
list-style-type: disc — в виде диска (по умолчанию)
list-style-type: circle — в виде круга
list-style-type: square — в виде квадрата
Для нумерованного списка
list-style-type: decimal — арабские цифры (по умолчанию)
list-style-type: decimal-leading-zero — арабские цифры c 0 впереди для чисел 1-9
list-style-type: upper-roman — заглавные римские цифры
list-style-type: lower-roman — строчные римские цифры
list-style-type: upper-latin — заглавные латинские буквы
list-style-type: upper-alpha — то же, что и upper-latin
list-style-type: lower-latin — строчные латинские буквы
list-style-type: lower-alpha — то же, что и lower-latin
list-style-type: lower-greek — строчные греческие буквы
list-style-type: armenian — армянские числа
list-style-type: georgean — грузинские числа
list-style-type: none — позволяет убрать маркеры списка. Для обоих списков
list-style-type: inherit — значение принимается от родительского элемента. Для обоих списков
Создадим на странице маркированный и нумерованный списки и установим для них тип маркера:
Попробуйте установить другие типы маркера.
Как убрать маркеры списка в CSS
Значение none позволяет убрать маркеры списка. Пример:
Позиция маркера
Маркер может занимать в списке две позиции. Он может находиться за пределами элемента списка и занимать своё место на странице. А может находиться внутри элемента списка и быть частью текста. Это выгладит так:
- В этом пункте списка маркер находится за пределами элемента и занимает своё место на странице.
- В этом пункте списка маркер входит в элемент списка и является частью текста
Позицию маркера устанавливает свойство list-style-position . Оно принимает значения:
list-style-position: outside — за пределами элемента (по умолчанию)
list-style-position: inside — внутри элемента
Добавим в маркерованный список ещё один пункт с длинным текстом и добавим селектору #nl1 свойство list-style-position :
Маркер в виде изображения
В качестве маркера может быть использовано изображение. При этом, список может выглядеть так:
Для использлвания изображения существует свойство list-style-image . Значением свойства является путь к файлу изображения.
Для примера Вы можете использовать это изображение: Нажмите на него правой кнопкой мыши и выберите «Сохранить изображение как».
Добавим на страницу ещё один список и установим для него маркер в виде картинки. Назовём файл marker, он имеет расширение JPEG. Разместим его в той же папке, где находится страница. Иначе путь к файлу нужно прописывать по-другому.
Краткая запись
Существует возможность указать рассмотренные свойства более коротким способом. Для этого есть свойство list-style . В нём перечисляются через пробел сначала тип маркера, затем положение маркера, затем картинка. При этом, все свойства указывать не обязательно. Указываются только те свойства, которые нужны. Если изображение не установлено, то маркер зависит от того, маркерованный список или нумерованный, и от типа маркера.
Добавим на страницу ещё один список и установим ему стиль с помощью свойства list-style .
Любое из свойств, рассмотренных в данной теме можно установить как самому списку, так и отдельному элементу списка.
Коприрование материалов сайта возможно только с согласия администрации
Пользовательские маркеры с помощью CSS :: marker
Теперь легко настроить цвет, размер или тип числа или маркера при использовании
- или
- Lorem ipsum dolor sit amet conctetur adipisicing elit
- Dolores quaerat illo totam porro li >
- Quidem aliquid perferendis voluptates
- Ipsa adipisci fugit acceptnda dicta voluptates nihil REPORTENDERIT Conquatur alias facilis rem
- Fuga
- Lorem
- Lorem ipsum dolor sit amet conctetur adipisicing elit
- Dolores quaerat illo totam porro
- Ipsum < / dt>
- Quidem aliquid perferendis voluptates
-
анимация- *
-
переход- *
-
цвет
-
направление
-
шрифт- *
-
содержимое
-
юникод-биди
0 белое пространство
9157 Изменение содержимого:: marker
выполняется с помощьюсодержимого
в отличие оттипа
в виде списка.В следующем примере для первого элемента используется стильlist-style-type
, а для второго —:: marker
. Свойства в первом случае применяются ко всему элементу списка, а не только к маркеру, что означает, что текст анимируется так же, как и маркер. При использовании:: marker
мы можем нацеливаться только на поле маркера, а не на текст.Также обратите внимание, что запрещенное свойство
background
не действует.Стили списков
li: nth-child (1) {
list-style-type: '?';
font-size: 2rem;
фон: hsl (200 20% 88%);
анимация: изменение цвета 3 секунды, легкость выхода бесконечна;
}Стили маркера
li: nth-child (2) :: marker {
content: '!';
font-size: 2rem;
фон: hsl (200 20% 88%);
анимация: изменение цвета 3 секунды, легкость выхода бесконечна;
}
Попался!В Chromium
white-space
работает только для внутренних маркеров.Для внешних маркеров регулятор стиля всегда устанавливает пробел: до
, чтобы сохранить конечное пространство.Изменение содержимого маркера #
Вот несколько способов стилизации маркеров.
Изменение всех элементов списка
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, ");
}Изменение нумерованных списков
А как насчет
? Маркер в элементе упорядоченного списка по умолчанию является числом, а не маркером.В CSS они называются счетчиками, и они довольно мощные. У них даже есть свойства для установки и сброса в начале и в конце числа или переключения их на римские цифры. Можем ли мы это стилизовать? Да, и мы даже можем использовать значение содержимого маркера для создания собственной презентации нумерации.li :: marker {
content: counter (list-item) "› ";
цвет: розовый;
}Debugging #
Chrome DevTools готов помочь вам проверить, отладить и изменить стили, применяемые к псевдоэлементам
:: marker
.Будущий стиль псевдоэлементов #
Вы можете узнать больше о :: marker по адресу:
Замечательно получить доступ к чему-то, что было трудно стилизовать. Возможно, вы захотите стилизовать другие автоматически сгенерированные элементы. Вы можете быть разочарованы
Последнее обновление: Улучшить статьюКакие бывают типы маркеров элементов списка? — Веб-учебники
Какие существуют типы маркеров пунктов списка?
Автор: Дерон Эрикссон
Описание. В этом руководстве по CSS показаны различные типы маркеров элементов списка.
Учебник создан с использованием: Windows XP
Свойство «list-style-type» можно использовать для указания типа маркера, используемого для элементов списка.Его значение по умолчанию — «диск». Значение ‘list-style-type’ будет использоваться, если ‘list-style-image’ равно ‘none’ или если изображение, на которое указывает ‘list-style-image’, не может быть отображено.
Свойство ‘list-style-image’ может быть uri, none или наследовать. Его значение по умолчанию — «нет». Свойство list-style-image позволяет использовать изображение в качестве маркера элемента списка.
Спецификация CSSW 2 определяет значения ‘list-style-type’ как:
диск | круг | квадрат | десятичный | десятичный-ведущий-ноль | нижний римский | верхнеримский | нижнегреческий | нижняя альфа | нижнелатинский | верхняя альфа | верхнелатинский | иврит | армянский | грузинский | cjk-ideographic | хирагана | катакана | хирагана-ироха | катакана-ироха | нет | унаследовать
CSS 2.1 спецификация определяет значения ‘list-style-type’ как:
диск | круг | квадрат | десятичный | десятичный-ведущий-ноль | нижний римский | верхнеримский | нижнегреческий | нижнелатинский | верхнелатинский | армянский | грузинский | нижняя альфа | верхняя альфа | нет | унаследовать
Поскольку CSS 2.1 является более поздней спецификацией, давайте рассмотрим примеры его значений в виде списка. Кроме того, давайте рассмотрим пример того, как изображение в стиле списка можно использовать для указания изображения для маркера элемента списка.Мы можем увидеть эти примеры в style-test.html:
.style-test.html
Тест стиля - диск
- круг
- квадрат
- десятичный
- десятичный-ведущий-ноль
- нижний римский
- верхний римский алфавит
- нижнегреческий
- нижняя латынь
- заглавные латыни
- армянский
- грузинский
- нижняя альфа
- верхняя альфа
- нет
- наследовать
- list-style-image: url ('eyes.gif ')
На снимке экрана ниже мы видим style-test.html, отображаемый в IE7 и Firefox. Обратите внимание, что значения типа списка для диска, круга, квадрата, десятичного числа, нижнего латинского алфавита, верхнего римского алфавита, нижнего альфа, верхнего альфа и ничего не работают как в IE7, так и в Firefox. Обратите внимание, что значения типа списка десятичного начального нуля, нижнего греческого, нижнего латинского, верхнего латинского, армянского и грузинского языков работают в Firefox, но не в IE7. Мы также можем видеть, что указание значения стиля списка-изображения работает как в Firefox, так и в IE7.
CSS Свойство: тип-стиль-список | HTML Dog
Свойство CSS: стиль-список | HTML СобакаВы здесь: Главная → Ссылки → CSS → Свойства →
Стиль маркера списка или система нумерации в списке.
Применяется к блокам, для которых установлено значение
display: list-item
(из которыхli
HTML-элементы по умолчанию).Тип стиля списка также может быть указан как часть сокращенного свойства стиля списка .
Возможные значения
Значение Описание диск
Сплошной круг. круг
Полый круг. квадрат
Сплошной квадрат. десятичный
1, 2, 3, 4 и т. Д. десятичный начальный ноль
01, 02, 03… 10, 11 и т. Д. младший -roman
i, ii, iii, iv и т. д. верхние римские буквы
I, II, III, IV и т. Д. нижнегреческие символы
греческие символы. нижняя латынь
a, b, c, d и т. Д. верхняя латынь
A, B, C, D и т. Д. армянский
Армянская нумерация. грузинский
грузинская нумерация. младший альфа
Эквивалент младшего латинского
.верхняя альфа
Эквивалент верхняя латынь
.нет
Нет маркера списка. наследство
начальное
снятое
Ссылка на нас! Если вы нашли HTML Dog полезным, рассмотрите возможность ссылки на нас.
Пример
ли {список-стиль-тип: нижний римский; }
Поддержка браузера
Поддерживается всеми современными браузерами.
Связанные страницы
Все свойства CSS
Примеры
Главное меню
Дополнительное меню
↑ Вверхпользовательских стилей списков с использованием :: marker | автор: Mateusz Hadryś
Научитесь стилизовать маркеры списков с помощью нового псевдоэлемента :: marker
Списки не должны быть скучными.
А с новым псевдоэлементом
:: marker
делать их интересными тоже не должно быть болезненно. Поддержка этого псевдоэлемента браузером раньше была нечеткой, но с добавлением в Chrome 86 она скоро станет универсальной.Я покажу вам, как выделить ваши списки.
Мы собираемся охватить:
- Встроенные стили списков
- Изменение цвета маркеров списка
- Маркировки списка эмодзи
- Счетчики CSS
- маркеры настраиваемых изображений
- Полностью настраиваемые маркеры списка с использованием
: : before
Начнем с изменения внешнего вида маркеров списка с помощью встроенных стилей.Мы делаем это, используя свойство типа списка
. Есть несколько вариантов стилей для упорядоченных и неупорядоченных списков на выбор:
Это лишь наиболее распространенные варианты. Полный список можно найти на MDN.
Псевдоэлемент
:: marker
позволяет изменить стиль маркера списка (маркер / номер). используя подмножество свойств CSS. Допустимые свойства:- Все
свойства шрифта
(размер шрифта, семейство шрифтов и т. Д.) -
цвет
-
анимация
ипереходные свойства
-
направление
,текст-комбинировать- вертикальный
,unicode-bidi
- и
контент
Давайте посмотрим, что он умеет.
🌈 Изменение цвета
Самый простой способ улучшить внешний вид списков - это изменить цвет маркеров списка. Мы можем сделать это так же, как и изменить цвет обычного текста. Код
: https://gist.github.com/hadrysmateusz/4372de53d9de1c78363eeeaa54cb8a89Что делать, если вам нужна поддержка старых браузеров? Вы можете применить цвет к
HTMLCSSli
и обернуть текст внутри него в другом элементе. Например:Или создайте полностью настраиваемый маркер с
:: до
.Подробнее об этом позже.Пользовательский текст
Вы могли подумать: Хорошо, но меняет ли цвет все, что может сделать
:: marker
?Нет. Это далеко не так. Это позволяет нам изменять содержимое маркера списка, используя метко названное свойство
по адресу: https://gist.github.com/hadrysmateusz/03bcb4555e3eb0cce51c66e60894d1dccontent
. КодВы можете использовать любой текст в качестве содержимого
🔫 Emoji Bullets
Как я сказал выше, вы можете использовать смайлики в качестве маркеров списка.
Но вы, вероятно, не захотите использовать одни и те же смайлики для каждого элемента списка. Чтобы исправить это, мы можем установить наши смайлики в атрибуте
data- *
в HTML.И получить их в CSS с помощью функции
attr ()
.Мы даже можем изменить содержимое маркера при наведении курсора, используя псевдокласс
: hover
.И вот результат.
Хорошо, а как насчет упорядоченных списков? Можем ли мы вот так изменить содержание их маркеров?
Пользовательские упорядоченные списки
Чтобы изменить содержимое маркера упорядоченного списка, нам нужно знать, к какому элементу он принадлежит.Нам нужно знать его позицию в списке. Вот тут и пригодятся счетчики CSS.
Нам нужно создать счетчик в списке и увеличивать его для каждого элемента списка. Затем получите текущее значение счетчика с помощью CSS-функции
counter ()
. Мы используем результат этой функции как значение свойстваcontent
.Давайте рассмотрим код, чтобы понять, что происходит.
Мы используем
counter-reset
для создания нового счетчика с именемlist
.Название произвольное и полностью зависит от вас. Но почему свойство называется counter- reset ? Потому что счетчик на самом деле глобальный, и нам нужно сбрасывать его значение в каждом списке. Вот почему мы должны установить его наol
, а не на элементы списка.Мы создали счетчик, но он бесполезен, если его значение никогда не меняется. Нам нужно увеличивать его для каждого элемента списка. Для этого мы устанавливаем
counter-increment: list;
на наших
.Теперь, когда у нас есть автоматически увеличивающееся значение, мы используем его в свойстве
content
нашего маркера.И вот здесь происходит волшебство. Мы можем комбинировать значение нашего счетчика с другими строками, при желании разделенными пробелами.Несколько примечаний:
- В этом примере я импортировал некоторые шрифты из Google Fonts. В этом нет необходимости, но я использую его, чтобы различать содержание элемента списка и маркер.
- Поскольку содержание маркера в примере стало довольно длинным, в некоторых случаях он мог исчезнуть с экрана. Вот почему я использовал
list-style-position: inside;
, чтобы переместить маркер внутри поля элемента списка. - Вы можете поставить число после имени счетчика, чтобы начать с другого значения. Это будет выглядеть примерно так:
counter-reset: list 5;
и первые три элемента этого списка будут иметь номера 6, 7 и 8. - Счетчики могут использоваться для любого элемента html, а не только для списков.
Пользовательские маркеры изображений
Хорошо, мы можем изменить цвет, стиль и текстовое содержимое маркеров списка, но что, если нам нужно что-то полностью индивидуальное? Придется использовать изображения.
Для этого мы устанавливаем изображение в качестве содержимого маркера с помощью функции CSS
: https://gist.github.com/hadrysmateusz/525d46c3eacc618c951bba781e19374burl ()
. КодКак скрыть маркеры в списке для боковой панели?
<
html
>
<
Головка
>
<
стиль
>
h2 {
цвет: зеленый;
}
ul # remove {
тип стиля списка: нет;
обивка: 0;
}
.левый {
ширина: 40%;
поплавок: левый;
}
. Право {
ширина: 40%;
поплавок: правый;
}
стиль
>
головка
>
<
корпус
>
<
центр
>
<
h2
> GeeksforGeeks
h2
>
<
h3
> Безбуквенный список HTML
h3
>
центр
>
<
дел.
класс
=
«слева»
>
<
p
> Список курсов GeeksforGeeks:
p
>
<
ul
>
<
li
> Компьютерщики
li
>
<
li
> Sudo
li
>
<
li
> Gfg
li
>
<
li
> Ворота
li
>
<
li
> Размещение
li
>
ul
>
div
>
<
дел
класс
=
«правый»
>
<
p
> Список курсов GeeksforGeeks:
p
>
<
ul
id
=
«удалить»
>
<
li
> Компьютерщики
li
>
<
li
> Sudo
li
>
<
li
> Gfg
li
>
<
li
> Ворота
li
>
<
li
> Размещение
li
>
ul
>
корпус
>
html
>
полностью настраиваемых стилей списков | Современные решения CSS
Это пятая публикация в серии, посвященной современным решениям CSS для проблем, которые я решал за последние 13 с лишним лет работы в качестве фронтенд-разработчика .
Из этого туториала Вы узнаете, как использовать макет сетки CSS для упрощения пользовательского стиля списка в дополнение к:
- Атрибуты данных как содержимое псевдоэлементов
- Счетчики CSS для стилизации упорядоченных списков
- Пользовательские переменные CSS для стилизации элементов списка
- Адаптивные многоколоночные списки
Обновление : псевдоселектор
.:: marker
теперь хорошо поддерживается в современных браузерах. Хотя это руководство содержит полезные советы по CSS для перечисленных выше элементов, вы можете перейти к решению:: marker
Список HTML #
Сначала мы настроим наш HTML с одним
ul
и однимli
.Я добавил более длинный пункт, чтобы помочь в проверке выравнивания, интервала и высоты строки.- Элемент неупорядоченного списка
- Пирожное мороженое сладкое кунжутное печенье драже кекс вафельное печенье
- Элемент неупорядоченного списка
- Упорядоченный элемент списка
- Пирожное мороженое сладкое кунжутное печенье драже кекс вафельное печенье
- Заказанный элемент списка
Обратите внимание на использование
role = "list"
.Поначалу это может показаться лишним, но мы собираемся удалить неотъемлемый стиль списка с помощью CSS. Хотя CSS не часто влияет на семантическое значение элементов,list-style: none
может удалить семантику списка для некоторых программ чтения с экрана. Самое простое решение - определить атрибутrole
, чтобы восстановить эту семантику. Вы можете узнать больше из этой статьи от Скотта О'Хара.Привет! Доступна ранняя регистрация на мой предстоящий июльский семинар с Smashing Conference - Level-Up With Modern CSS
Базовый список CSS #
Сначала мы добавляем сброс стилей списков в дополнение к их определению как сетке с пробелом.
ol,
ul {
маржа: 0;
отступ: 0;
стиль списка: нет;
дисплей: сетка;
сетка-зазор: 1бэр;
}Преимущество
grid-gap
заключается в добавлении пространства междуli
, заменяя более старый метод, такой какli + li {margin-top: ...}
.Далее подготовим элементы списка:
li {
дисплей: сетка;
столбцы-шаблон-сетки: 0 1fr;
сетка-зазор: 1,75 эм;
align-items: start;
размер шрифта: 1.5рем;
высота строки: 1,25;
}Мы также настроили элементы списка для использования сетки. И мы обновили старую «хитрость» использования
padding-left
, чтобы оставить место для псевдоэлемента с абсолютным позиционированием с комбинацией первого столбца шириной0
иgrid-gap
. Мы скоро увидим, как это работает. Затем мы используемalign-items: запускаем
вместо значения по умолчаниюstretch
и применяем стили некоторых типов.UL: атрибуты данных для маркеров эмодзи №
Возможно, это не совсем масштабируемое решение, но для развлечения мы собираемся добавить настраиваемый атрибут данных, который будет определять эмодзи, который будет использоваться в качестве маркера для каждого элемента списка.
Во-первых, давайте обновим
ul
HTML:- Неупорядоченный элемент списка
- Пирожное мороженое сладкое кунжутное печенье драже кекс вафельное печенье < / li>
- Элемент неупорядоченного списка
А чтобы применить смайлики как маркеры, мы используем довольно волшебную технику, в которой атрибуты данных могут использоваться в качестве значения свойства
content
для псевдоэлементов:ul li :: before {
content: attr (data-icon);
размер шрифта: 1.25em;
}Вот результат с проверкой элемента
:: before
, чтобы проиллюстрировать, как работает сетка:Смайлик все еще может занимать ширину, чтобы быть видимым, но фактически находится в промежутке между сеткой. Вы можете поэкспериментировать с установкой для первого столбца сетки
li
значенияauto
, что приведет к полному применению разрыва сетки между столбцом смайликов и столбцом текста списка.OL: счетчики CSS и пользовательские переменные CSS #
СчетчикиCSS были жизнеспособным решением со времен IE8, но мы собираемся добавить дополнительный эффект использования пользовательских переменных CSS, чтобы также изменить цвет фона каждого числа.
Сначала мы применим стили счетчиков CSS, назвав наш счетчик
orderlist
:ol {
сброс счетчика: список заказов;
}ol li :: before {
счетчик-инкремент: заказанный список;
содержимое: счетчик (упорядоченный список);
}Этим достигается следующее, что не сильно отличается от стиля по умолчанию
ol
:Затем мы можем применить базовый стиль к номерам счетчиков:
семейство шрифтов: "Indie Flower";
размер шрифта: 1.25em;
высота строки: 0,75;
ширина: 1,5 бэр;
набивка: 0,25 бэр;
выравнивание текста: по центру;
цвет: #fff;
цвет фона: фиолетовый;
border-radius: 0,25em;Сначала мы применяем шрифт Google и увеличиваем размер шрифта
line-height
составляет половину применяемойline-height
li
(по крайней мере, это то, что сработало для этого шрифта, это может быть немного магическим числом). Он выравнивает число там, где мы хотели бы, по отношению к основному текстовому контентуli
.Затем нам нужно указать явную ширину. В противном случае фон не появится, хотя текст появится.
Добавлен Padding для исправления выравнивания текста по фону.
Теперь у нас есть это:
Это, безусловно, кажется более индивидуальным, но мы немного расширим его, заменив цвет фона
ol {
--li-bg: пурпурный;
}ol li :: before {
background-color: var (- li-bg);
}Он будет выглядеть так же, пока мы не добавим встроенные стили ко второму и третьему
li
для обновления значения переменной:- Заказанный элемент списка
- Пирожное мороженое, сладкое, кунжутное, драже, кекс, вафельное печенье
- Заказанный элемент списка
И вот последние
ul
иol
все вместе:Стефани Эклс (@ 5t3ph)
Обновите свои алгоритмы: многостолбцовые списки #
В нашем примере было всего 3 элемента короткого списка, но не забывайте, что мы применили сетку к базовым
ol
иul
.В то время как в прошлой жизни я делал забавные вещи с модулем в PHP, чтобы разбивать списки и применять дополнительные классы для получения равномерно разделенных многоколоночных списков.
С сеткой CSS теперь вы можете применить его в трех строках с присущей ему отзывчивостью, равными столбцами и длиной строки содержимого:
ol, ul {
дисплей: сетка;
столбца-шаблона-сетки: повторение (автозаполнение, minmax (22ch, 1fr));
сетка-зазор: 1бэр;
}Применяя к нашему существующему примеру (не забудьте сначала удалить
max-width
наli
) дает:Вы можете переключить это представление, обновив переменную
$ multicolumn
в Codepen доtrue
.Попался: больше, чем просто текст как
li
content #Если у вас внутри
li
больше обычного текста - включая что-то вроде невинногоОднако это очень простое решение - обернуть содержимое
li
вspan
. Нашему шаблону сетки не важно, что это за элементы, но он ожидает только два элемента, из которых псевдоэлемент считается первым.Обновление до CSS-маркера #
За несколько месяцев после публикации этой статьи поддержка
:: marker
стала намного лучше во всех современных браузерах.Псевдоселектор
:: marker
позволяет напрямую изменять и стилизовать маркированный / числовой списокol
илиul
.Мы можем полностью заменить решение для пуль
разрешены только несколько свойств.ul
, используя:: marker
, но мы должны понизить версию нашего решенияol
, потому что для:: marker
:-
анимация- *
-
цвет
-
содержание
-
направление
-
шрифт- *
-
переход- *
-
юникод-биди
-
белое пространство
Стиль неупорядоченного списка с
:: маркер
#Поскольку содержимое
data-icon
для разрешения настраиваемых маркеров эмодзи 🎉Нам просто нужно поменять местами с
:: до
на:: маркер
:ul li :: marker {
content: attr (значок данных);
размер шрифта: 1.25em;
}Затем удалите из
li
свойства сетки, которые больше не нужны, и снова добавьте несколько отступовli {
отступ слева: .5em;
}Наконец, мы ранее удалили поле
:: marker
, чтобы предотвратить его обрезание из-за переполнения:
ol,
ul {
маржа: 0 0 0 2em;
}И визуальные результаты идентичны нашему предыдущему решению, как вы можете видеть в демонстрации.
Стиль упорядоченного списка с
:: marker
#Для нашего упорядоченного списка теперь мы можем переключиться и воспользоваться встроенным счетчиком.
Нам также нужно отбросить наш
background-color
иborder-radius
, поэтому мы поменяем местами на использование нашего настраиваемого свойства для значенияcolor
. И мы изменим имя нашего настраиваемого свойства на--marker-color
для ясности.Итак, наши сокращенные стили выглядят следующим образом:
ol {
- цвет маркера: пурпурный;
}li :: marker {
content: counter (элемент списка);
семейство шрифтов: «Инди-цветок»;
размер шрифта: 1.5em;
color: var (- маркер-цвет);
}Не забудьте также обновить имя настраиваемого свойства CSS в HTML!
Остерегайтесь этой ошибки : изменение свойства
display
дляli
приведет к удалению псевдоэлемента:: marker
. Поэтому, если вам нужен другой тип отображения для содержимого списка, вам нужно будет применить его, вложив дополнительный элемент оболочки.:: маркер
Demo #Вот наши обновленные стили пользовательских списков, которые теперь используют
:: marker
.Обязательно проверьте текущую поддержку браузера, чтобы решить, какое решение для стиля настраиваемого списка использовать с учетом вашей уникальной аудитории! Вы можете захотеть использовать
:: marker
как прогрессивное усовершенствование одного из ранее продемонстрированных решений.Стефани Эклс (@ 5t3ph)
Для получения более подробной информации об использовании
:: marker
ознакомьтесь с этой отличной статьей Адама Аргайла.Пули списка стилей с эмодзи · clairecodes
Доступные стили маркеров для неупорядоченных списков HTML
ограничены.Используя CSS, их можно изменить на что-то более захватывающее, например смайлики! 🎉👯♂️✨В этом посте я покажу вам два метода их замены:
@ counter-style
, который краток и гибок (но ваш браузер, вероятно, не поддерживает его), и более проверенный метод с использованием псевдоэлемента:: before
.Преобразуем неупорядоченный список со счетчиками без стиля из этого:
Кому:
Примечание : следующие примеры кода написаны на Sass для использования вложенности, чтобы они были краткими.
Метод 1:
@ counter-style
at-ruleАт-правила CSS - это инструкции, которые указывают CSS, как себя вести, например
@import
,@ font-face
или@media
.Ат-правило
@ counter-style
было предложено для того, чтобы предоставить больше возможностей и функциональности существующему набору стилей маркеров в списках HTML.@ counter-style
- это предложение уровня 3 на стадии кандидатской рекомендации, что означает, что спецификация достаточно стабильна для реализации в браузерах.Однако по состоянию на апрель 2019 года он поддерживается только Firefox (статистика caniuse для@ counter-style
). Пример вывода в этом посте представлен в виде изображения, хотя код для всех примеров доступен в CodePen внизу страницы.Пример правила встречного стиля
Чтобы использовать стиль счетчика, напишите правило, а затем объявите это как значение свойства CSS
list-style-type в теге
или
. Синтаксис правила встречного стиля имеет несколько необязательных дескрипторов, как указано на странице документации MDN.MDN также предоставляет интерактивную демонстрацию различных вариантов стиля счетчика (лучше всего просматривать в поддерживаемом браузере, таком как Firefox).Чтобы заменить маркеры на эмодзи, нам нужно предоставить параметры дескрипторам «система», «символы» и «суффикс». Выберите «циклическую» систему и укажите кодовые точки Юникода для желаемых символов эмодзи. Обратите внимание, что вам нужно использовать кодовую точку Unicode для представления эмодзи, а не только символа, например «\ 1F431» вместо 🐱. Найдите полный список на сайте Unicode.Установка для «суффикса» значения «» означает, что никакие другие символы, такие как точка, не появляются после счетчика.
Дескриптор "symbols" может принимать набор символов, разделенных пробелами. В сочетании с опцией «циклической» системы это означает, что наш окончательный дизайн маркеров будет вращаться по всем предоставленным символам.
@ counter-style Repeating-emoji { система: циклическая; символы: "\ 1F431" "\ 1F436" "\ 1F984"; // кодовая точка юникода суффикс: ""; } // Добавляем этот класс в элемент ul или ol .Repeating-counter-rule { список-стиль-тип: повторяющийся-эмодзи; }
Метод 2:
:: before
псевдоэлементЭтот метод можно использовать для замены стандартных дисков с изображениями, а не только с эмодзи. Обратной стороной является то, что он не обеспечивает гибкости
@ counter-style
.Начните с установки
list-style: none
в родительском элементе списка,
или
, а затем настройте отступы и поля для элементов элемента списка
.Значок, используемый для маркера, добавляется с помощью псевдоэлемента:: before
.Чтобы заменить диски по умолчанию на те же эмодзи, можно использовать следующий код, где класс
.emoji-list
добавляется к элементу
:. Single-before { стиль списка: нет; отступ: 0; маржа: 0; li { отступ слева: 1 бэр; текстовый отступ: -0.7rem; } li :: before { содержание: «🐻»; } }
Для того, чтобы воспроизвести повторяющийся узор из трех маркеров эмодзи из приведенного выше примера встречного стиля, нам нужно использовать псевдокласс
: nth-child
.Например:.repeating-before { стиль списка: нет; отступ: 0; маржа: 0; li { отступ слева: 1 бэр; текстовый отступ: -0.7rem; } li: nth-child (3n + 1) :: before { содержание: «🐱»; } li: nth-child (3n + 2) :: before { содержание: «🐶»; } li: nth-child (3n) :: before { содержание: «🦄»; } }
Хотя изначально этот метод прост, он может стать более сложным в зависимости от модели смайлов, которые необходимо реализовать. Однако преимущество этого метода в том, что оно хорошо поддерживается браузерами.
Заключение
Ат-правило
@ counter-style
обеспечивает большую гибкость при стилизации счетчиков списков, но его ограниченная поддержка браузером делает его непригодным для большинства производственных сайтов. Использование псевдоэлементов надежно, но неудобно для более сложных макетов. Однако, если стиль маркеров списка является дополнительной функцией дизайна, а не важной частью дизайна страницы, то рассмотрите возможность объединения@ counter-style
с правилом@supports
и обеспечения приемлемого запасного дизайна, возможно, используя псевдоэлементы.Emoji Bullet Point CodePen Пример
См. Перо Демо-версия правил @ counter-style от Клэр (@clairecodes) на CodePen.
- .
• Обновлено
Благодаря Игалии, спонсируемой Bloomberg, мы наконец можем убрать наши хаки для списков стилей. Видеть!
Просмотр исходного кода Благодаря CSS :: marker
мы можем изменять содержимое и некоторые стили маркеров и чисел.
Совместимость с браузером #
:: marker
поддерживается в Firefox для настольных ПК и Android, Safari для настольных ПК и iOS Safari (но только свойства color
и font- *
, см. Ошибка 204163) и на основе Chromium настольные браузеры и браузеры Android.См. Обновления в таблице совместимости браузера MDN.
Псевдоэлементы #
Рассмотрим следующий неупорядоченный список HTML:
В результате получается следующая неудивительная визуализация:
Точка в начале каждого элемента
бесплатна! Браузер рисует и создает за вас сгенерированную рамку маркера.
Сегодня мы рады поговорить о псевдоэлементе :: marker
, который дает возможность стилизовать элемент маркера, который браузеры создают для вас.
Ключевой термин : Псевдоэлемент представляет элемент в документе, отличный от тех, которые существуют в дереве документа. Например, вы можете выбрать первую строку абзаца, используя псевдоэлемент p :: first-line
, даже если нет HTML-элемента, обертывающего эту строку текста.
Создание маркера #
Поле маркера псевдоэлемента :: marker
автоматически создается внутри каждого элемента элемента списка, предшествующего фактическому содержимому и псевдоэлементу :: before
.
li :: before {
content: ":: before";
фон: светло-серый;
радиус границы: 1 канал;
внутреннее заполнение: 1 канал;
margin-inline-end: 1 канал;
}
Обычно элементы списка — это
HTML-элементы, но другие элементы также могут стать элементами списка с display: list-item
.
dd {
display: list-item;
список-стиль-тип: "🤯";
padding-inline-start: 1 канал;
}
Стилизация маркера #
До :: marker
списки можно было стилизовать с использованием list-style-type
и list-style-image
, чтобы изменить символ элемента списка с помощью 1 строки CSS:
li {
изображение в стиле списка: URL (/ стрелка вправо.svg);
список-стиль-тип: '👉';
padding-inline-start: 1 канал;
}
Это удобно, но нам нужно больше. А как насчет изменения цвета, размера, интервала и т. Д. !? Здесь на помощь приходит :: marker
. Это позволяет индивидуально и глобально нацеливать эти псевдоэлементы из CSS:
li :: marker {
color: hotpink;
} li: first-child :: marker {
font-size: 5rem;
}
Внимание : Если в приведенном выше списке нет розовых маркеров, значит, :: marker
не поддерживается в вашем браузере.
Свойство типа списка типа
дает очень ограниченные возможности стилизации. Псевдоэлемент :: marker
означает, что вы можете настроить таргетинг на сам маркер и применить стили непосредственно к нему. Это дает гораздо больший контроль.
Тем не менее, вы не можете использовать все свойства CSS в :: marker
. Список разрешенных и запрещенных свойств четко указан в спецификации. Если вы попробуете что-то интересное с этим псевдоэлементом, но это не сработает, приведенный ниже список является вашим руководством по тому, что можно и чего нельзя сделать с помощью CSS:
Разрешено CSS
:: marker
Properties #