Почему плохо использовать -moz, -ms, -webkit и прочее
Я очень часто вижу на сайтах свойства для какого-то конкретного браузера. Например, свойство "-moz-border-left-colors", указывающее цвет левой рамки у элемента для Firefox. Давайте с Вами разберём, почему этого делать не стоит, а также укажу лишь единственный случай, когда -moz, -ms, -webkit и аналоги использовать можно.
Не буду особо говорить, что все эти свойства не входят в стандарт CSS, а потому не являются валидными. Как следствие, их реализация может быть в любой момент изменена (если так посчитают разработчики браузеров, ведь описания этих свойств в стандарте CSS нет), в итоге, Ваш сайт может сильно испортиться. Так же не буду особо объяснять, почему они портят общий вид кода. Всё это и так понятно.
Лучше разобрать причины того, зачем используют эти свойства. А причины тут две:
- Отсутствие кроссбраузерности. Я могу смело сказать, что проблема кроссбраузерности уже в прошлом. Осталась только проблема некачественной вёрстки. Все современные браузеры адекватно всё обрабатывают. Минимальные недоразумения (например, border-radius у input в Opera) легко решаются альтернативным подходом к задаче, когда все браузеры хорошо отобразят страницу без всяких "хаков". И данная проблема не является поводом использования "левых" свойств.
- Поддержка более старых браузеров. Причём именно "более", а не просто старых. В старых браузерах этих свойств и в помине не было. Чтобы понять бессмысленность этого, стоит посмотреть статистику браузеров. Где-то 95% аудитории идёт по современным браузерам. Оставшиеся 5% пользуются непонятно чем. Портя код, Вы получите хороший вид ещё от силы на 1% браузеров. Поэтому сейчас лучше либо выводить сообщение о том, что стоит сменить браузер (у jQuery есть плагин jReject, который это делает), либо просто игнорировать. Более того, я сильно сомневаюсь, что среди этих 5% много людей, скорее всего, большинство там - это боты, которые отдают произвольные заголовки о клиенте. И старые боты могут отдавать тот же IE6. Так же сюда входят те, кто по-прежнему тестирует свои сайты в старых браузерах.
Поэтому используйте CSS3, там все возможности уже есть, и его смогут увидеть как раз 95% аудитории.
Однако, я пообещал сказать, когда свойства -moz, -ms, -webkit и прочие, можно использовать. Это нужно, если Вы хотите сделать, немного разный дизайн для разных браузеров. Причём именно "немного", а если нужно полностью менять всё, то проще через JavaScript определить браузер и подключить отдельный файл стилей. Скажу честно, я с такой задачей не сталкивался, но это единственное, что мне пришло в голову, дабы хоть как-то оправдать "лишние" свойства CSS.
-
- Михаил Русаков
Комментарии (1):
Не использовать вендорные префиксы? Очень глубокомысленный совет профессионала. А как же быть тогда со свойствами, которые без упомянутых префиксов ни в каких версиях определенных бразеров не работают? Например, свойство transform без префикса -webkit не будут работать в Chrome, Safari, Android, iOS и Яндекс браузере. Не спорю, что вендорные префиксы не есть хорошо, и по поводу путей решения данной проблемы ведется множество дискуссий. Но я нигде еще не встречал предложения отказаться от них, пока они поддерживаются браузерами.
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.