Я экспериментирую с некоторыми стилями на <textarea>
s, и я пробовал делать кое-что с ::before
и ::after
селекторами, и мне ничего не удалось заставить их работать. Возникает вопрос: возможно ли это? Я знаю, что окружающие формы CSS непонятны, но похоже, что это должно сработать.
Можно ли использовать селектор :: before с ‹textarea›?
Ответы (3)
:before
и :after
не будут работать с text-area
(или любым элементом, который не может содержать другой элемент, например img
или input
), потому что сгенерированное содержимое псевдоэлемента помещается внутри элемента, но < em> до или после содержимого этого элемента и действует как элемент. Псевдоэлемент не размещается до или после самого родительского элемента (вопреки некоторой информации, которую можно найти в Интернете). Проиллюстрировать:
Если у вас есть этот 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
может содержать «контент», но только чистый текстовый контент.
<div class='tx-div-before'></div>
используйте это перед текстовым полем и
<div class='tx-div-after'></div>
используйте этот код после textarea. и добавить до и после элемента psedu.
Фактически, вы можете добавлять контент с помощью :after
в элемент ввода. Это добавит своего рода подсказку, когда элемент находится в активном состоянии:
#gallery_name {
position:relative;
}
#gallery_name:focus:after {
content: "Max Characters: 30";
color: #FFF;
position: absolute;
right: -150px;
top:0px;
}
<input id="gallery_name" type="text" name="gallery_name" placeholder="Gallery Name">
:before
и:after
? И здесь они отлично работают; Что вы пытаетесь достичь? Вы сталкиваетесь с проблемами, связанными с браузером? - person strager   schedule 20.07.2010textarea::after{ content: "some text" }
не работает, ноform::after{ content: "some text" }
работает. Обратите внимание, что стиль двойного двоеточия - это синтаксис CSS3, а одинарное двоеточие - синтаксис CSS2. Ни работать с текстовым полем. - person Rupert Madden-Abbott   schedule 20.07.2010:after
textarea. Все, что я вижу в спецификации CSS2 по этой проблеме, - это Примечание. Эта спецификация не полностью определяет взаимодействие: before и: after с заменяемыми элементами (такими как IMG в HTML). Это будет определено более подробно в будущих спецификациях. Другими словами, это может быть поведение, определяемое реализацией. - person strager   schedule 20.07.2010