:beforeі :afterне потрібно працювати для замінених елементів, а специфікації CSS не визначають, як би вони працювали для них, а концепція заміненого елемента дещо розпливчаста.
Специфікація CSS 2.1 чітко підказує, що вони можуть працювати на замінених елементах, просто кажучи, що це не "повністю визначає", як. Це стосується питання, що очікується, що замінений елемент має власне візуальне відображення, яке не контролюється CSS, тоді як псевдоелементи повинні щось додати до змісту елемента. Специфікація додає, що це буде визначено "більш докладно" в майбутній специфікації, але це досі не відбулося.
Продавці браузерів просто вирішили уникати проблем, взагалі не застосовуючи ці псевдоелементи для деяких елементів.
Зовсім не ясно, що означає «замінений елемент», і значення, схоже, дещо змінилося. Його часто трактують як те саме, що означає порожній елемент (елемент із EMPTYоголошеним вмістом, тобто елемент, який не може мати жодного вмісту), але сам CSS 2.1 показує зразок стильового аркуша із селектором br:before(хоча браузери проігнорували це, реалізуючи brсвій власний спосіб). Можна стверджувати, що все більше елементів перейшли у сферу візуалізації CSS, принаймні частково. Наприклад, inputелемент (включаючи його шрифт, кольори тощо) значною мірою керується CSS у сучасних браузерах.
Поточні веб-переглядачі (Firefox, IE, Chrome), схоже, не підтримують :afterі :beforeпсевдоелементи для порожніх елементів, крім hr. Бо hrIE та Chrome розміщують створений вміст всередині облямованого вікна, що є реалізацією hr; вміст робить поле вище. Firefox розміщує вміст обох (!) Псевдоелементів після горизонтального правила, яке є його реалізацією hr. Цей варіант ілюструє види проблем "взаємодії", про які йдеться у CSS 2.1.
Часто стверджується, що ці псевдоелементи не можна використовувати для порожніх елементів, оскільки їхні визначення HTML не дозволяють вмісту. Це помилка категорії. Правила синтаксису мови розмітки не обмежують те, що можна зробити в CSS
На закінчення, :afterі :beforeнаразі вони не використовуються для порожніх елементів (за винятком незначних hr), але це, головним чином, пов'язано з реалізаціями і може змінитися в майбутньому.
<before></before>" у джерелі.