:: after и :: before псевдоэлементы не применяются к replace-elements или void-elements .
Но вы можете использовать <span>
для достижения желаемого эффекта. Пример:
.my-special-class:before {
content: '[before] ';
}
.my-special-class:after {
content: ' [after]';
}
.my-special-class:before,
.my-special-class:after {
color: red;
}
<span class="my-special-class">Val 1</span>
Очевидно, вы можете присвоить классу любое имя и соответственно изменить селекторы.
Примечание: , если вы хотите использовать псевдоэлементы в качестве графики (чтобы дать им размер, position
, background-image
, border
, background
и т. Д. - без фактического content
) вы должны по-прежнему указывать content: ''
(пустая строка). Без установки content
псевдоэлемент не будет отображаться независимо от display
, visibility
или opacity
.
Большинство атрибутов CSS, которые можно применить к обычному элементу DOM, можно применить к псевдоэлементам .
<label>
s могут иметь псевдо, но это будет означать, что :before
помещается перед <input>
, который включен в <label>
. Если вы хотите поместить :before
после <input>
(который не может иметь псевдо), вы должны обернуть текстовый узел в <span>
, как в примере.
Также обратите внимание, что, хотя спецификация официально определяет псевдоэлементы с двойной двоеточием (::pseudo-element
), все браузеры, поддерживающие двоеточие, также поддерживают устаревшую нотацию с двоеточием, в то время как несколько старых версий (IE pre v9, FF) pre v1.5, Opera pre v7) поддерживает только запись с одним двоеточием. По этой причине большинство людей используют одинарную запись в двоеточии (что официально неправильно, но технически правильно, по крайней мере, на данный момент).