Нужна ли псевдо-первой строке двойной синтаксис?

0

Я обнаружил, что использование одного двоеточия с псевдо-тегом first-line отлично работает. Почему двойной тег используется для этого тега и действительно ли он нужен?

Из школ WC3:

p::first-line 
{
color:#ff0000;
font-variant:small-caps;
}

Но это прекрасно работает:

p:first-line 
{
color:#ff0000;
font-variant:small-caps;
}

http://www.w3schools.com/css/css_pseudo_elements.asp

  • 0
    w3schools ужасно ненадежен, см. w3fools.com , и вопреки тому, что он пытается заставить людей поверить, он никоим образом не связан с W3C или каким-либо авторитетом.
  • 0
    В этом случае w3schools был прав. У меня не было проблем с их надежностью.
Показать ещё 1 комментарий
Теги:
pseudo-element

1 ответ

3
Лучший ответ

Как сказано в MDN:

В CSS 2 псевдоэлементы имели префикс с одним символом двоеточия. Поскольку псевдоклассы также придерживались одного и того же соглашения, они были неразличимы. Чтобы решить эту проблему, CSS 2.1 изменил соглашение для псевдоэлементов. Теперь псевдоэлемент имеет префикс с двумя символами двоеточия, а псевдокласс по-прежнему имеет префикс с одним двоеточием.

Поскольку несколько браузеров уже реализовали версию CSS 2 в версии выпуска, все браузеры, поддерживающие синтаксис с двумя двоеточиями, также поддерживают старый синтаксис с одним двоеточием.

Если необходимо поддерживать устаревшие браузеры: первая строка - единственный жизнеспособный выбор; if not, :: first-line является предпочтительным.

Далее, поскольку W3 утверждает:

Это: нотация вводится текущим документом, чтобы установить дискриминацию между псевдоклассами и псевдоэлементами. Для совместимости с существующими таблицами стилей пользовательские агенты также должны принимать предыдущую однотопливную нотацию для псевдоэлементов, введенных в CSS-уровнях 1 и 2 (а именно: first-line,: first-letter, before и: after). Эта совместимость не допускается для новых псевдоэлементов, представленных в этой спецификации.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню