Ответ 1
Использование :before
или :after
<video>
не будет работать. Вы также найдете этот случай (к сожалению) с элементами управления вводом HTML (например, текстовыми полями).
Это из-за способа :before
и :after
работы элементов psuedo. Это объекты модели коробки, которые работают, например, как div
но размещаются внутри их родительского элемента. Элементы, такие как входные текстовые поля и видео, не могут содержать дочерние элементы в отношении содержимого (видео имеют дочерние теги src, но это разные).
Например, если у вас есть HTML:
<div class="awesome-highlight">
...
</div>
И CSS:
.awesome-highlight::after {
content: 'Hello World';
}
Полученный эффект будет:
<div class="awesome-highlight">
...
Hello World
</div>
Больше информации:
W3: http://www.w3.org/TR/CSS21/generate.html
Ответ Old Stackoverflow: какие элементы поддерживают псевдо-элементы :: before и :: after?