Почему бы:до и: после псевдо-элементов не работать с элементами` img'? [дубликат]
этот вопрос уже есть ответ здесь:
- Does: прежде чем не работать на элементах img? 6 ответов
- CSS: после не добавления контента к определенным элементам 3 ответы
I я пытаюсь использовать :before
псевдо элемент С img
элемент.
рассмотрим этот HTML и CSS...
HTML
<img src="http://0.gravatar.com/avatar/this-is-not-a-hash" alt="" />
CSS
img:before {
content: "hello";
}
это не дает желаемого эффекта (проверено в Chrome 13 и Firefox 6). Тем не менее, он работает с div
или span
элемент.
почему бы и нет?
есть ли способ заставить псевдо-элементы работать с img
элементы?
3 ответа:
спец говорит...
Примечание. Эта спецификация не полностью определяет взаимодействие
:before
и:after
с замененными элементами (например, IMG в HTML). Это будет определено более подробно в будущей спецификации.Я думаю, это означает, что они не работают с
img
элементы (на данный момент).см. Также ответ.
просто для тестирования и зная, что это не очень вы можете сделать следующее, чтобы сделать псевдо элементы работают с элементами 'img'.
добавить:
display: block; content: ""; height: (height of image)px
к элементу img В вашем CSS.хотя это сделает ваш тег img пустой причиной
content: ""
тут вы можетедобавить:
style="background-image: url(image.jpg)"
к вашему элементу img в html.протестировал это в Fx, Chrome и Safari
возможно, что поставщики браузеров не реализовали псевдо-элементы на
img
тег из-за их интерпретации спецификации:img
элемент, строго говоря, не является элементом уровня блока или встроенным элементом, это пустой элемент.