[css] Должен ли я использовать одно или двойное обозначение двоеточия для псевдоэлементов?



Answers

Из селекторов CSS3 REC :

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

Кажется, вы в безопасности используете (только) однотопливные обозначения для псевдоэлементов, которые уже существовали в CSS2.1, поскольку UA должны быть обратно совместимы.

Question

Поскольку IE7 и IE8 не поддерживают обозначение с двумя двоеточиями для псевдоэлементов (например ::after или ::first-letter ), и поскольку современные браузеры поддерживают нотацию с одним двоеточием (например :after ) для обратной совместимости, Я использую исключительно однонаемное обозначение, и когда доля рынка IE8 падает до ничтожного уровня, вернитесь назад и найдите / замените в моей базе кода? Или я должен включить оба:

.foo:after,
.foo::after { /*styles*/ }

Использование двойного одиночества кажется глупым, если я забочусь о пользователях IE8 (бедняках).




Включение обоих обозначений, безусловно, безопаснее, но я не вижу, чтобы какой-либо браузер удалял одну нотацию в течение длительного времени, так что только один из них будет в порядке (это действительно CSS2.)

Personnaly Я использую только одну нотацию двоеточия, в основном по привычке.




Тем не менее, становится все более популярным использование полифилов как для нового javascript, так и для CSS, поэтому вы можете просто хотеть использовать новый синтаксис double-colon ( :: :) и поддерживать полиполк для старых браузеров, если это необходимо ,




Links