Здесь возникают две проблемы:
В спецификации CSS 2.1 указано, что «: before
и : after
псевдоэлементы взаимодействуют с другими блоками, такими как как вводные блоки, как если бы они были настоящими элементами, вставленными только внутри связанного с ними элемента ". Учитывая способ реализации z-индексов в большинстве браузеров, довольно сложно (читайте, я не знаю способа) переместить контент ниже z-индекса их родительского элемента в DOM, который работает во всех браузерах.
Номер 1 выше не обязательно означает, что это невозможно, но второе препятствие на самом деле еще хуже: в конечном итоге это вопрос поддержки браузером. Firefox вообще не поддерживал позиционирование сгенерированного контента до FF3.6. Кто знает про браузеры вроде IE. Так что даже если вы найдете способ заставить его работать в одном браузере, весьма вероятно, что он будет работать только в этом браузере.
Единственное, о чем я могу думать, что будет работать во всех браузерах, - это использовать javascript для вставки элемента, а не CSS. Я знаю, что это не самое лучшее решение, но псевдоселекторы : before
и : after
действительно не выглядят так, как будто они собираются вырезать его здесь.
Говоря о спецификации (http://www.w3.org/TR/CSS2/zindex.html), поскольку a.someSelector
позиционируется, он создает новый контекст стекирования, из которого его дети не могут выйти. Оставьте a.someSelector
непозиционированным, и тогда дочерний a.someSelector:after
может быть позиционирован в том же контексте, что и a.someSelector
.