Стандарты являются новыми, а не предопределены. Ну, по крайней мере, они должны быть. Многие разработчики, с которыми я общался, считают, что мой взгляд на веб-стандарты немного еретичен, но оставайтесь со мной здесь.
Когда вы пытаетесь создать стандарт до реализации, у вас есть несколько проблем:
- Долгая задержка до появления полезных реализаций. Ни у кого нет работающей реализации, на которую можно ссылаться, и, поскольку никто не использует какие-либо функции стандарта (поскольку он еще не существует), существует небольшой стимул для его реализации. Проблема типа курица-яйцо.
- Потенциал для стандартов, которые на самом деле не могут быть реализованы. Кто знает наверняка, пока кто-нибудь не попробует? Стандарт HLA был хорошим примером этого, и в тот момент Министерство обороны должно было написать меморандум о «интерпретациях», который попытался установить стандарт де-факто, замаскировав некоторые ошибки в настоящем стандарте.
- Потенциал для стандартов, которые не служат никакой практической необходимости. Люди на самом деле хотят этого? Посмотрите пример на XForms, который попал в странную нишу на стороне сервера. Или я не могу вспомнить никого из тех, кого встречал, которые посчитали, что блочная модель CSS «ширина без учета отступов» интуитивно понятна.
- Невозможность для реализаторов стандарта, чтобы отличить свою продукцию от своих конкурентов, в результате чего упорного желания порвать со стандартом в практических или запирании в-поощрении путей. Смотрите пример на CORBA.
Я думаю, что W3C научился этому нелегко в последние годы. Некоторые из наиболее заметных для конечных пользователей инноваций пришли из новой войны браузеров: примерами могут быть HTML5 (несколько поставщиков), canvas (Apple), XMLHttpRequest (команда Microsoft Outlook Web Access), диапазон ввода (встроенный в Safari RSS Reader) и видеоэлемент (Firefox) - они пришли с запатентованного уровня вверх, а не с башни стандартов вниз. И эти новые «стандарты» были подделаны, глядя на эти прошлые отдельные реализации (Firefox скопировал Microsoft в основном для XMLHttpRequest и т. Д.), А не каким-то широко раскрытым аналитическим центром, размышляющим о будущем. (ISAPI, API плагинов Netscape и SQL - все это примеры стандартов снизу вверх, в которых критические изменения выполняются постепенно, шаг за шагом.)
Стандарт должен быть наименьшим общим знаменателем, сглаживающим основные различия в реализациях, языком пиджина, который работает во всех из них, а не перечислением предписывающих правил в стиле Роберта Лоута о языке или системе, потому что тогда вы в итоге получаются правила, которые не всегда имеют смысл, или применяются нереалистичные идеалы (например, попытка применить правила грамматики на основе латинского языка к языку на германском языке, например попытка применить правила грамматики на основе XML к языку на основе SGML ). Ну что ж, это то, что у нас есть.
Вероятно, самый большой недостаток в стандарте CSS на данный момент заключается в том, что действительно нет хорошего способа указать, что страница была написана в соответствии с определенной версией стандарта. Мы можем указать DOCTYPE для наших документов HTML, почему я не могу указать, что документ был написан для CSS 2.1? Это станет еще важнее, когда мы начнем добавлять все новые и новые причудливые функции в CSS, которые влияют на фактическое содержимое страницы, например CSS: before псевдоэлементы. В будущей версии стандарта однажды будут возникать ошибки, которые могут нарушить совместимость, и было бы неплохо позволить автору документа запрашивать определенное поведение, а не пытаться выяснить намерение браузеров.
С другой стороны, теперь, когда IE8 и IE7 вышли, вещи на самом деле не так плохи, как, скажем, в 2005 году. Конкретная таблица стилей IE6, снабженная условными комментариями, действительно может пройти долгий путь к созданию Возможна реализация на основе CSS / стандартов. Другой совет - использовать Google, чтобы взять пример макета с 3 колонками, и надеяться, что кто-то другой выполнил большую часть проблем для вас.
Создание веб-сайта, совместимого с различными браузерами, сложно, стандартно или не стандартно. Вы можете облегчить себе задачу, если согласитесь с тем, что различные браузеры отображают ваш сайт. Не бойтесь каких-либо проприетарных расширений (для пользователей, не являющихся IE, закругленные углы вполне допустимы), но есть запасной вариант, когда их не существует (например, закругленные углы не существуют). критически важно для использования сайта), и пусть ваши пользователи выбирают, как они хотели бы использовать ваш контент.