Ответ 1
:before
и :after
не будут работать с text-area
(ни любым элементом, который не может содержать другой элемент, например img
или input
), поскольку генерируемое содержимое псевдоэлемента получает помещается внутри элемента, но до или после этого содержимого элемента, и действует как элемент. Псевдоэлемент не размещается до или после самого родительского элемента (в отличие от некоторой информации, которую можно найти в Интернете). Чтобы проиллюстрировать:
Если у вас есть этот css:
p:before {content: 'before--'}
p:after {content: '--after'}
Тогда html вот так:
<p>Original Content</p>
Эффективно отображается на экране, как если бы исходный код был:
<p>before--Original Content--after</p>
Не, как если бы исходный код был:
before--<p>Original Content</p>--after
Вот почему теги, которые не могут содержать какой-либо элемент html-содержимого (например, упомянутый выше), не распознают псевдоэлементы, так как нет никакого "места" для этого контента, который должен быть сгенерирован. textarea
может содержать "контент", но только чистый текстовый контент.