Блог Обо мне Храню Читаю Ем 99  

25.03.2008, Nº 1639



Фильтрация 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 — красный, а в остальных браузерах — чёрный.
25.03 13:22
25.03 13:22



25.03.2008, Nº 1639

#1 zencd.livejournal.com 25.03.2008, 16:28

а что за логика в случае с IE, почему он её "съедает"?

#2 bolk @bolknote.ru25.03.2008, 16:36 ответил zencd.livejournal.com

С точки зрения других браузеров это невалидный селектор, а в IE он используется для всех тегов какого-либо пространства имён, «v» — это VML (http://www.w3.org/TR/NOTE-VML), который всё равно никто не использует, вот я его сюда и вписал.

#3 astur @astur.net.ru25.03.2008, 18:34

потрясающе!

#4 astur @astur.net.ru25.03.2008, 18:37

Жень, а зачем у тебя с Гаватара картинка просится, когда myopenid.com её сам отдаёт вместе с е-мейлом?

#5 gluek.info 25.03.2008, 18:49

Т.е. этим постом Евгений нам как бы говорит, что все пользователи Firefox — голубые (смайлик).

#6 bolk @bolknote.ru25.03.2008, 19:24 ответил astur.net.ru

myopenid её не отдаёт. Он использует pavatar.

#7 bolk @bolknote.ru25.03.2008, 19:25 ответил gluek.info

Игры подсознания, да ;)

#8 blog.ad.by 25.03.2008, 22:39 ответил bolknote.ru

Просьба не обижать VML. 8-) Я его использую. Смотри в блоге.

#9 yakushevsky @id.yakushevsky.com26.03.2008, 12:00

Для эксплорера достаточно запятой:
.class, { color: red } /* стиль только для Internet Explorer */

Точнее для всех остальных браузеров достаточно этого, чтобы пропустить правило.

#10 bolk @bolknote.ru26.03.2008, 12:27 ответил id.yakushevsky.com

Ну, это баг, его могут поправить.

#11 bolk @bolknote.ru26.03.2008, 12:27 ответил blog.ad.by

О! надо же :)
Ваше имя или адрес блога:

Текст комментария (для гиков: не HTML, а текст!)


Кому бы вы хотели ответить (или кликните на его аватару)


Евгений Степанищев (imbolk@gmail.com)
t=0.047