Фильтрация CSS по браузеру
Я как-то уже писал о том как подключить целый блок CSS только для FireFox, но чаще нужно подключить не блок, а всего один-два стиля. В этом случае удобно воспользоваться тем фактом, что браузер обязан игнорировать стиль, если в селекторе встречается что-то незнакомое.
Способ для FireFox мне подсказали в комментариях на «Хабре», для Internet Explorer я придумал его самостоятельно. Вот пример, иллюстрирующий идею:
.class { color: black } /* для всех остальных браузеров */
.class, noindex:-moz-any-link { color: blue } /* стиль только для Mozilla FireFox */
.class, v\:* { color: red } /* стиль только для Internet Explorer */
Можете попробовать самостоятельно — фильтрует идеально. В примере класс «class» даст тегу, к которому его применят, в FireFox — голубой цвет текста, в IE — красный, а в остальных браузерах — чёрный.
а что за логика в случае с IE, почему он её «съедает»?
Комментарий для zencd.livejournal.com:
С точки зрения других браузеров это невалидный селектор, а в IE он используется для всех тегов какого-либо пространства имён, «v» — это VML ( http://www.w3.org/TR/NOTE-VML ), который всё равно никто не использует, вот я его сюда и вписал.
потрясающе!
Жень, а зачем у тебя с Гаватара картинка просится, когда myopenid.com её сам отдаёт вместе с е-мейлом?
Т. е. этим постом Евгений нам как бы говорит, что все пользователи Firefox — голубые (смайлик).
Комментарий для astur.net.ru:
myopenid её не отдаёт. Он использует pavatar.
Комментарий для gluek.info:
Игры подсознания, да ;)
Комментарий для Евгения Степанищева:
Просьба не обижать VML. 8-) Я его использую. Смотри в блоге.
Для эксплорера достаточно запятой:
.class, { color: red } /* стиль только для Internet Explorer */
Точнее для всех остальных браузеров достаточно этого, чтобы пропустить правило.
Комментарий для id.yakushevsky.com:
Ну, это баг, его могут поправить.
Комментарий для blog.ad.by:
О! надо же :)