Псевдоэлементы¶
Псевдоэлемент — это как добавление или нацеливание дополнительного элемента без необходимости добавлять дополнительный HTML. Они выполняют различные функции, и вы можете узнать о них в этом модуле.
CSS подкаст
014: Псевдоэлементы
Если у вас есть статья с контентом, и вы хотите, чтобы первая буква была более крупной — как этого добиться?
В CSS для достижения подобной детализации дизайна можно использовать псевдоэлемент ::first-letter
.
1 2 3 4 5 6 7 8 |
|
Псевдоэлемент — это как добавление или нацеливание дополнительного элемента без необходимости добавлять дополнительный HTML. Данный пример решения, использующий ::first-letter
, является одним из многих псевдоэлементов. Они выполняют различные функции, и в этом уроке вы узнаете, какие псевдоэлементы доступны и как их можно использовать.
::before
и ::after
¶
Псевдоэлементы ::before
и ::after
создают дочерний элемент внутри элемента только, если вы определили свойство content
.
1 2 3 4 5 6 7 |
|
Строка content
может быть любой, даже пустой, но следует иметь в виду, что любая строка, отличная от пустой, скорее всего, будет распознана программой чтения с экрана. Можно добавить изображение url
, которое вставит изображение с исходными размерами, так что изменить его размер будет невозможно. Можно также вставить counter
.
Вы можете создать именованный счетчик и затем увеличивать его, основываясь на его положении в потоке документов. Они могут быть полезны в самых разных контекстах, например, для автоматической нумерации конспекта.
Создав элемент ::before
или ::after
, вы можете стилизовать его как угодно, без каких-либо ограничений. Вставить элемент ::before
или ::after
можно только в тот элемент, который принимает дочерние элементы (элементы с деревом документа), поэтому такие элементы, как <img />
, <video>
и <input>
не будут работать.
Исключением является input[type="checkbox"]
. Ему разрешено иметь дочерние псевдоэлементы.
::first-letter
¶
С этим псевдоэлементом мы познакомились в начале урока. Следует иметь в виду, что не все CSS-свойства можно использовать при нацеливании на ::first-letter
. Доступными свойствами являются:
color
- свойства
background
(например,background-image
) border
(например,border-color
)float
- свойства
font
(например,font-size
иfont-weight
) - свойства текста (такие как
text-decoration
иword-spacing
)
1 2 3 4 |
|
Использовать :first-letter
можно только в блочных контейнерах. Поэтому он не будет работать, если вы попытаетесь добавить его в элемент, имеющий display: inline
.
::first-line
¶
Псевдоэлемент ::first-line
позволяет стилизовать первую строку текста только в том случае, если элемент, к которому применен ::first-line
, имеет значение display
block
, inline-block
, list-item
, table-caption
или table-cell
.
1 2 3 4 |
|
Как и в случае с псевдоэлементом ::first-letter
, существует лишь подмножество CSS-свойств, которые можно использовать:
color
background
свойстваfont
свойстваtext
свойства
::backdrop
¶
Если у вас есть элемент, представленный в полноэкранном режиме, например, <dialog>
или <video>
, вы можете стилизовать фон — пространство между элементом и остальной частью страницы — с помощью псевдоэлемента ::backdrop
:
1 2 3 |
|
Псевдоэлемент ::backdrop
поддерживается во всех основных браузерах, кроме Safari.
::marker
¶
Псевдоэлемент ::marker
позволяет стилизовать пулю или номер для элемента списка или стрелку элемента <summary>
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
Для ::marker
поддерживается только небольшое подмножество CSS-свойств:
color
content
white-space
font
свойстваanimation
иtransition
свойства
Вы можете изменить символ маркера, используя свойство content
. С его помощью можно, например, установить символ плюса и минуса для закрытого и пустого состояний элемента <summary>
.
::selection
¶
Псевдоэлемент ::selection
позволяет стилизовать вид выделенного текста.
1 2 3 4 |
|
Этот псевдоэлемент может быть использован для стилизации всего выделенного текста, как в приведенном выше примере. Он также может быть использован в сочетании с другими селекторами для получения более специфического стиля выделения.
1 2 3 4 |
|
Как и в случае с другими псевдоэлементами, допускается использование только некоторого подмножества CSS-свойств:
color
background-color
но неbackground-image
text
свойства
::placeholder
¶
К элементам формы, таким как <input>
, можно добавить вспомогательную подсказку с атрибутом placeholder
. Псевдоэлемент ::placeholder
позволяет стилизовать этот текст.
1 2 3 |
|
В ::placeholder
поддерживается только подмножество CSS-правил:
color
- свойства
background
- свойства
font
- свойства
text
Заполнитель placeholder
не является <label>
и не должен использоваться вместо <label>
. Элементы формы должны быть снабжены метками, иначе они будут недоступны.
::cue
¶
Последним в этой экскурсии по псевдоэлементам является псевдоэлемент ::cue
. Он позволяет стилизовать подсказки WebVTT, которые являются подписями к элементу <video>
.
В псевдоэлемент ::cue
можно также передать селектор, который позволяет стилизовать определенные элементы вне подписи.
1 2 3 4 5 6 7 8 9 10 11 |
|
Источник: Pseudo-elements