Префиксы, вебкит и вебстандарты
14 Feb, 2012В верстальщицкой сфере наконец хоть что-то происходит! И я даже не про свой первый пост за полгода! О забавной ситуации с браузерами на базе webkit и всеми остальными.
суть проблемы вкратце
В данный момент некоторые мобильные браузеры теряют аудиторию из-за того, что многие сайты сделаны исключительно под webkit-браузеры (iPhone, iPod, iPad). Чтобы сохранить свою аудиторию они (браузеры) хотят начать «притворяться» webkit и поддерживать -webkit-*** свойства, в частности -webkit-text-size-adjust и какие-нибудь другие.Кроме этого, и, что я думаю важнее, им придется отдавать такой user agent, чтобы фильтры принимали их за вебкит браузер (deja vu?), несмотря на то, что они им не являются.
Из-за этого многие стандартисты в ужасе. «Интернет катится в ад» и все такое :)
Но мне все это кажется забавным, и это возможность заглянуть в мир стандартов.
Почему это многих пугает
Во-первых потому что это как-то философски неправильно. Вот написал я в CSS-webkit-border-radius:10px;
а окажется что граница закруглится и в Мозилле. А я, может, не хотел.
А, предположим, я дурак, и я писал всегда только -webkit-border-radius
и не добавлял просто border-radius
(как это по стандартам должно быть). И сайт был красивый только в iPhone, но никогда в Опере. А потом вдруг Опера начала поддерживать -webkit-border-radius
. И все стало красивым и в Опере, зачем мне тогда использовать что-то кроме -webkit-border-radius
?
А потом я привыкну и захочу чтобы все свойства -webkit- работали во всех возможных браузерах. И тогда префиксы (которые были временными), останутся в вебе навсегда. И это, конечно, можно считать полным фиаско и самым страшным сном w3c.
Вобщем, это неправильно. Но.
Почему это не так уж страшно все
Потому что все они видят только "ОНИ РЕАЛИЗУЮТ ВЕСЬ ВЕБКИТ", а на самом деле один из инициаторов этого всего Тантек Челик (представитель Mozilla, и «автор» IE5 Mac) говорит вот о чем:One possible proposal is to only parse other vendors' prefixes in conjunction with parsing unprefixed. e.g. with -webkit-transform. We wouldn't parse that until we also parse transform.
plinss: You're telling authors to just use webkit prefixes, we'll make it work. Tantek: No, we're only implementing a small minimized number of these.Никто не собирается сделать вебкит универсальными свойствами, скорее они хотят залатать дыры, пару важных свойств, чтобы их браузеры сейчас хоть как-то отображали iphone-сайты.
Более того, предлагают решить эту проблему только для мобильных, тогда вообще использовать только -webkit- будет ненадежно, и придется писать все свойства рано или поздно.
fantasai: What if -webkit- was implemented only for mobile? That would add the unreliability factor that Tantek was asking for, because it would not work on desktop. And that would bias authors to using unprefixed, which is what we want.
В конце концов все пришли к мнению что от всех префиксов надо избавляться :). Чего и вам советую.
Реальная статистика свойств
Чтобы исследовать этот вопрос мозилловцы даже распарсили кучу CSS файлов, чтобы понять насколько велика проблема и какие свойства с префиксами используются. Статистика 30 000 сайтов, и примерно 90 000 CSS файлов.Среди прочего, рейтинг использования css-свойств вообще. Width уверенно побеждает.
Кстати одни из самых редкоупотребляемых свойствdispaly
и heigth
, я, периодически, их тоже использую! Yeah!
А вот рейтинг префиксных свойств.
Скругления и тени побеждают с отрывом
Забавно, но ни одному из этих свойств уже год префиксы не нужны. Потому, ну кому какой вред от того что -webkit-border-radius заработает в Mozilla? Вряд ли бы кто-то это вообще заметил.Все данные которые я обрабатывал лежат вот тут, можете сами поиграться.
Кто виноват
Конечно, все валят вину друг на друга.Теперь w3c и браузеры говорят что виноват Webkit, который не сабмитит стандарты. Вебкиту, при этом как-то все равно. Другие хвалят Webkit за инновации, но винят во всем стандартистов и лень Webkit.
И в конце концов многие вдруг решили что виноваты разработчики!
Более того, на некоторых популярных блогах можно прочитать даже такую идеологически правильную фигню:
We at Webmonkey hope it’s obvious that building WebKit-only sites is a waste of time.
О, да.
Конечно, по-хорошему надо делать для всех, но говорить что делать сайты только для вебкит - трата времени, перегиб в другую сторону.
Кого из нас когда-то просили сделать сайт для Fennec или Opera Mini?
Хоть код и надо писать правильно, для всех, но спихивать ответственность на разработчиков тут тоже не очень верно. Они делали то, за что им платили деньги.
Я думаю никто не виноват, просто веб стал меняться слишком быстро, и процесс стандартов-реализации не успевает за ним. А тут еще эти префиксы которые уже давно все можно было отменить, но CSS WG не решается это сделать толком. А еще этот вебкит который столько всего наделал нового, и за ним мало кто успел.
Вобщем, виновник этой забавной ситуации, разве что популярность Андроида и Айфона.
А все остальные просто пытаются сохранить свои доли на рынке. На самом деле браузеры ходили этим путем уже много-много-много раз. Достаточно почитать историю user agent string, чтобы понять что все притворяются всеми, и никто еще не умер. Хотя, порядка это тоже не добавляло.
Такие пироги в нашей веб-стандартной песочнице.
Почитать об этом же
- Update! Интервью в Тантеком о том что они собираются делать с этим в Мозилла
- «Исторические» разговоры браузеров и стандартистов о реализации -webkit- свойств
- Исследование префикс-свойств от Мозиллы
- Мысли на эту же тему от главы CSS Working Group
- Одна из полупанических статей которые меня забавляют
- Отличная объективная статья об этом всем от Remy Sharp
Что делать?
Да ничего, верстать по стандартам, и стараться всегда использовать свойства без префиксов. Потому что главным результатом этой миниинтрижки, я думаю, будет постепенный отказ от префиксов вообще. Наконец-то.Буду рад и вашему мнению об этом всем, особенно если оно отличается от моего :)
TL;DR: Webkit популярен, CSS WG медленное и педантичное, разработчики ленивые, Opera-IE-Moz тоже хотят жить, Жизнь прекрасна.
31 комментариев к “Префиксы, вебкит и вебстандарты”