Я обнаружил, что использование одного двоеточия с псевдо-тегом first-line отлично работает. Почему двойной тег используется для этого тега и действительно ли он нужен?
Из школ WC3:
p::first-line
{
color:#ff0000;
font-variant:small-caps;
}
Но это прекрасно работает:
p:first-line
{
color:#ff0000;
font-variant:small-caps;
}
Как сказано в MDN:
В CSS 2 псевдоэлементы имели префикс с одним символом двоеточия. Поскольку псевдоклассы также придерживались одного и того же соглашения, они были неразличимы. Чтобы решить эту проблему, CSS 2.1 изменил соглашение для псевдоэлементов. Теперь псевдоэлемент имеет префикс с двумя символами двоеточия, а псевдокласс по-прежнему имеет префикс с одним двоеточием.
Поскольку несколько браузеров уже реализовали версию CSS 2 в версии выпуска, все браузеры, поддерживающие синтаксис с двумя двоеточиями, также поддерживают старый синтаксис с одним двоеточием.
Если необходимо поддерживать устаревшие браузеры: первая строка - единственный жизнеспособный выбор; if not, :: first-line является предпочтительным.
Далее, поскольку W3 утверждает:
Это: нотация вводится текущим документом, чтобы установить дискриминацию между псевдоклассами и псевдоэлементами. Для совместимости с существующими таблицами стилей пользовательские агенты также должны принимать предыдущую однотопливную нотацию для псевдоэлементов, введенных в CSS-уровнях 1 и 2 (а именно: first-line,: first-letter, before и: after). Эта совместимость не допускается для новых псевдоэлементов, представленных в этой спецификации.