Статьи

5 вещей, которые я ненавижу в CSS3

Вы знали, что это будет. Да, я все еще люблю 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 или предыдущих версиях браузера. Поэтому у вас есть три варианта:

  1. Забудьте CSS3 и используйте традиционные методы разработки.
  2. Примите, что никакие два браузера не отображают то же самое. IE8 исполнилось три года, и он был выпущен до того, как индустрия вскочила на подножку HTML5. Страницы, просматриваемые в IE8, будут выглядеть (и даже хуже) по сравнению с IE9, Firefox, Chrome, Safari и Opera.
  3. Попробуйте сделать так, чтобы IE8 выглядел хорошо, используя JavaScript-прокладки, которые обычно реализуют старые специфичные для IE фильтры.

Я рекомендую второй вариант. Возможно, вам придется обучать своих клиентов, но их стоимость будет снижена, и, в конечном итоге, это может убедить пользователей обновить свой браузер.

К сожалению, я продолжаю находить сайты, которые добавляют множество прокладок в тщетной попытке достичь совершенства пикселей. Хотя страницы могут выглядеть лучше, это приводит к громоздкому коду, а IE8 часто становится удручающе медленным. Я не могу поверить, что их клиенты были довольны результатом.

В итоге

CSS3 отлично. С практической точки зрения, он продвигается быстрее и более полезен, чем HTML5 или разные JavaScript API.

Совместимость браузера является проблемой, но Вики уверена, что «день, когда они объединятся, в конечном итоге наступит» . Я не убежден. Мы достигнем момента, когда CSS3 будет полностью реализован, но к тому времени мы будем жаловаться на CSS4!