В этой статье будет представлен более интересный псевдоэлемент в CSS.::marker
, используя его, мы можем сделать наш текстовый серийный номер более интересным!
что такое ::маркер
Псевдоэлементы CSS::marker
ОтCSS Pseudo-Elements Level 3начать добавлять,CSS Pseudo-Elements Level 4Относительно новый псевдоэлемент, усовершенствованный в Chrome 86+, поддерживается браузерами, начиная с Chrome 86+.
Используя его, мы можем добавить псевдоэлемент к элементу, который генерирует маркер или число.
Обычно мы имеем следующую структуру:
<ul>
<li>Contagious</li>
<li>Stages</li>
<li>Pages</li>
<li>Courageous</li>
<li>Shaymus</li>
<li>Faceless</li>
</ul>
По умолчанию никакого специального стиля не добавляется, и его стиль примерно такой:
использовать::marker
Мы можем преобразовать маленькую точку перед серийным номером:
li {
padding-left: 12px;
cursor: pointer;
color: #ff6000;
}
li::marker {
content: '>';
}
Мы можем превратить маленькие точки во все, что захотим:
Некоторые ограничения псевдоэлемента ::marker
Во-первых, уметь отвечать::marker
Элемент может быть только одинlist item,Напримерul
Внутреннийli
,ol
Внутреннийli
обеlist item.
Конечно, дело не в том, что мы не можем использовать его на других элементах, если захотим, за исключениемlist item, мы можем установить любойdisplay: list-item
Использование элементов::marker
Псевдоэлемент.
Во-вторых, для стилей внутри псевдоэлементов нельзя использовать никакие атрибуты стиля, в настоящее время мы можем использовать только эти:
- all font properties-- Итак, атрибуты шрифта связаны
- color -- значение цвета
-
the content property-- контент-контент, похожий на
::before
Содержимое псевдоэлемента, используемого для заполнения содержимого серийного номера. - свойства text-combine-upright (en-US), unicode-bidi и direction -- направление написания документа
Некоторое исследование применения ::marker
Например, мы часто видим какие-то украшения перед заголовком:
Кроме того, мы также можем использовать смайлики:
очень подходят для использования::marker
чтобы показать, обратите внимание на использование в не-list-item
Элементы нужно использоватьdisplay: list-item
:
<h1>Lorem ipsum dolor sit amet</h1>
<h1>Lorem ipsum dolor sit amet</h1>
h1 {
display: list-item;
padding-left: 8px;
}
h1::marker {
content: '▍';
}
h1:nth-child(2)::marker {
content: '😅';
}
CodePen Demo -- ::marker example
:: Маркер может быть динамически изменен
Что интересно,::marker
Его по-прежнему можно динамически изменять, используя это, вы можете просто создавать интересные эффекты при наведении курсора.
Например, если вы недовольны, если вас не выбрали, вы будете счастливы, если вас выберут:
li {
color: #000;
transition: .2s all;
}
li:hover {
color: #ff6000;
}
li::marker {
content: '😩';
}
li:hover::marker {
content: '😁';
}
CodePen Demo -- ::marker example
Использовать со счетчиком
Можно заметить, что,::marker
псевдоэлемент с::before
,::after
Псевдоэлементы очень похожи, все они имеютcontent
Атрибуты.
существуетcontent
Фактически, его можно использовать для некоторых простых операций сложения строк. Используя это, мы можем работать со счетчиками CSS.counter-reset
а такжеcounter-increment
реализовать::marker
Операция добавления порядкового номера к элементу.
правильно
counter-increment
Если вы мало что знаете об этом, то можете зайти сюда:MDN -- counter-increment
Предположим, у нас есть следующий HTML:
<h3>Lorem ipsum dolor sit amet.</h3>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit.</p>
<h3>Itaque sequi eaque earum laboriosam.</h3>
<p>Ratione culpa reprehenderit beatae quaerat voluptatibus, debitis iusto?</p>
<h3>Laudantium sapiente commodi quidem excepturi!</h3>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit.</p>
мы используем::marker
и счетчики CSScounter-increment
осуществляет автоматический подсчет иh3
Упорядоченный список, которому предшествует смайлик:
body {
counter-reset: h3;
}
h3 {
counter-increment: h3;
display: list-item;
}
h3::marker {
display: list-item;
content: "✔" counter(h3) " ";
color: lightsalmon;
font-weight: bold;
}
Эффект заключается в следующем, реализуя автоматический::marker
Элементы добавляют серийный номер:
CodePen Demo -- ::marker example
наконец
В этой статье описано, что такое::marker
Как и некоторые его практические сценарии, видно, что хотя::before
,::after
Подобная функциональность может быть достигнута, но CSS по-прежнему предоставляет больше семантических тегов.::marker
, что также показывает, что всем нужно уделять больше внимания семантике своего внешнего кода (HTML/CSS).
Ну вот и конец этой статьи, надеюсь она вам поможет :)
Если вы хотите получить самую интересную информацию о CSS, не пропустите мой официальный аккаунт --Интересные факты о внешнем интерфейсе iCSS😄
Другие замечательные технические статьи по CSS собраны в моемGithub -- iCSS, продолжайте обновлять, добро пожаловать, нажмите звездочку, чтобы подписаться на коллекцию.
Если у вас есть какие-либо вопросы или предложения, вы можете общаться больше.Оригинальные статьи ограничены в написании и знаниях.Если в статье есть какие-либо неточности, пожалуйста, дайте мне знать.