Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
veb-standы-Х.docx
Скачиваний:
11
Добавлен:
26.11.2019
Размер:
10.64 Mб
Скачать
      1. Валидность

Валидность – это соответствие кода формальным требованиям спецификаций.

По логике, если проектирование и реализация чего бы то ни было осуществляется на основе неких спецификаций, названных в том или ином смысле стандартами, необходимо стремиться выполнять в полной мере все формальные требования этих спецификаций.

Проверить веб-документ на валидность можно с помощью специального онлайн-инструмента – валидатора. Чаще всего используются:

  • HTML-валидатор: validator.w3.org

  • CSS-валидатор: jigsaw.w3.org/css-validator

В идеале необходимо стремиться доводить код до полностью валидного состояния.

Валидность труднее обеспечить, если речь заходит об экспериментальных технологиях (например, HTML5 и CSS3). Общепринятой можно признать практику стремиться достигать абсолютной валидности кода разметки, а к таблицам стилей относиться более либерально, ограничиваясь обеспечением их синтаксической корректности. «Фундамент» HTML5 — словарь и грамматика языка разметки — относительно небольшая часть всей спецификации, которая уже в деталях проработана и не будет претерпевать принципиальных изменений. Многие свойства и значения, предусматриваемые в CSS3, разработчики пока вынуждены применять с вендорными префиксами, что автоматически делает таблицы стилей невалидными. Можно отметить, что валидность кода разметки куда как более важна, чем валидность таблиц стилей, ибо код разметки описывает самоценную сущность — структурированное содержание, а код таблиц стилей — всего лишь представление, которое не может существовать без содержания, и вариантов которого для одного и того же содержания теоретически может быть бесконечно много.

Потенциальной возможностью пересмотра тех или иных разделов «сырых» спецификаций порождена необходимость в первое время использовать экспериментальные свойства и значения CSS с вендорными префиксами - например, -moz- (для MozillaFirefox), -webkit- (для браузеров на основе движка Webkit - в частности, Chrome и Safari), -o- (для Opera). Применение конструкций CSS, использующих вендорные префиксы, конечно же, с формальной точки зрения автоматически делает соответствующие таблицы стилей невалидными, но этот «костыль нового поколения» — во всех отношениях разумное и удачное решение, против которого ничего не имеют ни W3C, ни сообщество веб-стандартистов. К слову, у упоминавшегося CSS-валидатора с сайта W3C даже есть опция проверки таблиц стилей с учетом использования вендорных префиксов.

CSS-валидатор проверяет правильность написания селекторов CSS, свойств CSS и их значений, наличие фигурных скобок { } и точек с запятой (;), но он не отслеживает наличие дубликатов свойств для одного и того же элемента, так как синтаксис CSS это позволяет. Значение валидности CSS такое же, как и у HTML: почти не имеет значения. Но, аналогично с HTML, лучше, если требования валидности будут соблюдены. Валидный код чёткий и структурированный, он легко поддаётся пониманию, что также немаловажно, особенно при исправлении, и особенно другими людьми. Также валидность CSS ускоряет процесс обработки, а, следовательно, и скорость загрузки страниц.

Для старых версий IE, пользуясь условными комментариями, веб-разработчики подключают таблицы стилей, содержащие порой та-а-акие хардкорные хаки — и ничего, живем… Нормальным браузерам и валидатору все, что скрыто за условными комментариями, безразлично. Ну да, конечно, это не верх изящества, а вполне себе костыль — но ничего лучше пока не придумали. Абсолютно валидные как в плане разметки, так и в плане стилей страницы, отображающиеся в IE6 не хуже, чем в остальных браузерах, возможны, но их внешний вид напомнит вам о начале века5.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]