Вы не можете выбирать или манипулировать псевдо элементами, добавленными с :before
или :after
.Они просто не появляются в DOM.Начиная с Генерируемый контент spec :
Генерируемый контент не изменяет дерево документа.В частности, он не возвращается обратно в процессор языка документа (например, для повторного анализа).
См. этот пример на jsFiddle .
Использование jQuery для добавления изображения и ссылки - как в ответе Расти Джинса - является хорошим способом.
Если вас беспокоит изменение размера, наиболеечто CSS-подход купит вас, так это то, что изображение будет отображаться / скрываться, даже если JS был отключен.Чтобы «связать» его, вам необходимо следить за событием resize
, независимо от того,(Если по какой-то причине изменение размера действительно является большой проблемой.)
Если бы это был я, я бы использовал реальный HTML - изображение с предварительно связанными ссылками - вместо псевдоэлементов.Используйте CSS, управляемый медиа-запросом, чтобы показать или полностью скрыть эти узлы (display:none
и т. Д.).
Другой подход - добавить изображение с помощью CSS, чтобы браузеры с отключенной JS работали после, НО , затем используйте JS, чтобы удалить этот CSS, псевдоэлемент и добавить вместо него реальный элемент со ссылкой.То есть подход «прогрессивного улучшения».
:before
и :after
контент предназначен для презентационных целей, а не структурных, функциональные элементы.