Если честно, вы не можете винить во всем IE (хотя Microsoft, безусловно, является худшим нарушителем). Часть проблемы с такими большими и быстро развивающимися стандартами заключается в том, что это слишком большая движущаяся цель, чтобы своевременно ее идеально реализовать. К сожалению, циклы выпуска веб-браузеров не совпадают с выпуском новых веб-спецификаций. Поэтому все, что могут сделать разработчики браузеров, - это попытаться реализовать как можно больше функций из последних рекомендаций W3C, выбрав, что, по их мнению, 1002 * будет наиболее часто используемыми функциями для реализации в первую очередь.
Тем не менее, ситуация явно улучшается, и позволяет поддерживать IE6 / 7 и по-прежнему использовать правильный дизайн CSS. Это просто ... сложно. Взгляните на это сравнение механизмов компоновки и поддержки CSS . Если вы посмотрите на общую тенденцию, то увидите, что большинство браузеров (даже IE) в долгосрочной перспективе, как правило, соответствуют установленным стандартам, для внедрения стандарта одни браузеры требуют больше времени, чем другие.
И иногда дело не в том, что один браузер "менее" соответствует стандартам, чем другой. С новыми стандартами часто возникает проблема, когда разные команды разработчиков выбирают различные части новой спецификации. Таким образом, даже несмотря на то, что CSS3 уже начинает реализовываться большинством браузеров, нам, вероятно, придется подождать, пока CSS4 не будет опубликован, прежде чем увидеть согласованную поддержку во всех основных механизмах рендеринга. И если вы попытаетесь использовать новейшие функции CSS3 прямо сейчас, вам будет сложно установить совместимость во всех основных браузерах. Но если вы используете функции, представленные в CSS1, это совсем не проблема.
Таким образом, единственный вариант - кроме использования уродливых хаков CSS - это придерживаться устоявшихся старых спецификаций. Тогда проблема больше не в том, что пытается соответствовать веб-стандартам при поддержке определенного браузера . Вместо этого проблема просто становится , пытающейся сопротивляться желанию использовать самые последние и лучшие функции CSS .
Помимо этого, единственное постоянное решение, которое я вижу в этой повторяющейся ситуации, заключается в том, чтобы W3C расставила приоритеты различным частям вновь представленных спецификаций, чтобы новые функции могли быть реализованы в дискретных фазах, синхронизированных по всем основные браузеры. Так, например, правилам грамматики может быть дан наивысший приоритет наряду с установленным сроком его реализации. После этого наступит второй этап, который может быть селектором элементов и атрибутов и т. Д. И т. Д.
Это потребует огромного уровня сотрудничества между W3C и командами разработчиков, но оно того стоит. В конце концов, пользователям и веб-разработчикам бесполезно реализовывать одно подмножество функций из CSS3, в то время как Firefox реализует другое подмножество, а браузеры Webkit - еще одно подмножество. «Стандарт» не годится до тех пор, пока он не станет стандартизированным на всех основных платформах рендеринга. Лучше, чтобы каждый браузер поддерживал меньше новых функций, но чтобы все они были с одинаковыми функциями , чем для того, чтобы они по отдельности представили массу своих собственных функций, которые не поддерживаются повсеместно.