Вы знали, что это будет. Да, я все еще люблю CSS3 и использую его каждый день, но это не значит, что я доволен всем. Чтобы уравновесить 5 вещей Вики Ху, которые мне нравятся в CSS3 , вот пять вещей, которые меня расстраивают…
1. Перегрузка имущества
Как часто вы обращались к руководствам или справочным материалам при написании кода CSS2.1? Изучив основы, я подозреваю, что вам требуется лишь беглый взгляд время от времени.
Те дни прошли. Возможно, это только я, но огромное количество новых тегов огромно. Даже когда я знаю, что свойство существует, невозможно вспомнить значения. Кто-нибудь узнал все варианты градиента фона и изображения границы?
Несмотря на то, что CSS3 определенно экономит время, вам придется просматривать онлайн-руководства или инструменты каждые несколько минут.
2. Поставщик префиксов
Приставочные префиксы абсолютно необходимы. Я использую их и признаю, что это цена, которую приходится платить за передовые методы. Это не значит, что я должен любить их. Другие разработчики тоже этого не делают — иначе мы бы не столкнулись с катастрофой CSS3 .
В лучшем случае префиксы приводят к неуклюжим повторениям. В худшем случае они используют совершенно разные синтаксисы. Есть JavaScript и серверные препроцессоры, которые помогают облегчить бремя, но ни один не идеален. В конце концов, если свойство не работает в определенном браузере, это проблема с вашим CSS, браузером или инструментом автоматического создания кода, который вы используете?
3. Инструменты разработчика
Любому поставщику IDE сложно идти в ногу с быстрыми темпами разработки CSS3. Кто-нибудь знает о редакторе, который поддерживает все новые свойства и синтаксисы со всеми различиями с префиксом поставщика? Я не.
Это не все плохо; Есть много отличных онлайн-инструментов CSS3 . Тем не менее, вы все еще не найдете много достойных валидаторов.
4. Поддержка браузеров и политика W3C
У поставщиков браузеров разные приоритеты и графики выпуска. Хотя это легко выбрать в IE (IE9 не поддерживает тень текста), даже webkit не всегда впереди игры (Chrome не поддерживает отдельную анимацию псевдоэлементов). Один браузер всегда будет более способным, чем другой, но реклама и маркетинг часто мешают развитию. Как часто вы предполагаете, что браузер поддерживает свойство X, написали какой-то код и обнаружили, что он не работает?
Основные поставщики принадлежат W3C и работают вместе, чтобы согласовать стандарты. На самом деле они конкуренты:
- Apple обвиняют во внедрении специфичных для iPhone / iPad функций, которые рекламируются как «стандарт HTML5», но никогда не представляются W3C.
- Предложение о поддержке префиксов webkit в не-webit браузерах может сломать CSS3, как мы его знаем.
- Летаргическая скорость процесса утверждения стандартов подчеркивает разногласия и политические баталии.
Это расстраивает. Разработчики попали под перекрестный огонь, но простого решения не существует. И, прежде чем кто-либо предложит это снова, удаление всех механизмов рендеринга, кроме одного, не вариант и приведет к стагнации инноваций.
5. Глупый Шим Шенаниганс
Скругленные углы CSS3 позволяют сэкономить часы времени на каждом проекте. Там нет необходимости для извилистых макетов или нескольких фоновых изображений. К сожалению, они не будут работать в IE8 или предыдущих версиях браузера. Поэтому у вас есть три варианта:
- Забудьте CSS3 и используйте традиционные методы разработки.
- Примите, что никакие два браузера не отображают то же самое. IE8 исполнилось три года, и он был выпущен до того, как индустрия вскочила на подножку HTML5. Страницы, просматриваемые в IE8, будут выглядеть (и даже хуже) по сравнению с IE9, Firefox, Chrome, Safari и Opera.
- Попробуйте сделать так, чтобы IE8 выглядел хорошо, используя JavaScript-прокладки, которые обычно реализуют старые специфичные для IE фильтры.
Я рекомендую второй вариант. Возможно, вам придется обучать своих клиентов, но их стоимость будет снижена, и, в конечном итоге, это может убедить пользователей обновить свой браузер.
К сожалению, я продолжаю находить сайты, которые добавляют множество прокладок в тщетной попытке достичь совершенства пикселей. Хотя страницы могут выглядеть лучше, это приводит к громоздкому коду, а IE8 часто становится удручающе медленным. Я не могу поверить, что их клиенты были довольны результатом.
В итоге
CSS3 отлично. С практической точки зрения, он продвигается быстрее и более полезен, чем HTML5 или разные JavaScript API.
Совместимость браузера является проблемой, но Вики уверена, что «день, когда они объединятся, в конечном итоге наступит» . Я не убежден. Мы достигнем момента, когда CSS3 будет полностью реализован, но к тому времени мы будем жаловаться на CSS4!