Напоминаю, что те, кто пропустил первую часть рассылки, посвященную HTML, могут скачать самоучитель в формате CHM по адресу http://htmlbook.ru/download/?id=4, объем файла 519 кБ. Также в первой части тема графики была затронута весьма кратко из-за своего объема, поэтому рекомендую посетить сайт http://webimg.ru, который сейчас активно заполняется новыми материалами, и почитать о графике для сайтов подробнее.
3. Написание корректного кода
Валидация документов предназначена не только для того чтобы удостовериться, что код соответствует спецификации HTML, но и с целью устранения имеющихся ошибок и замечаний в документе. Между тем, формирование определенной культуры написания кода позволяет существенно снизить или даже вообще избавиться от возможных ошибок. Такая культура складывается из знания спецификаций и типовых ляпов разработчиков, которых надо избегать.
По адресу http://www.w3.org/TR/html401/ ознакомиться с правилами HTML версии 4.01 может каждый, здесь же мы рассмотрим рядовые ошибки и научимся, как же их обходить.
Ошибки в коде обычно возникают по следующим причинам:
на странице не задан !DOCTYPE;
опечатка (неверно написан тег или его атрибут);
не указан обязательный параметр тега;
используется тег или его параметр, который не входит в спецификацию;
неверное вложение тегов.
Далее разберем эти ошибки подробнее.
Не указан !DOCTYPE
Элемент !DOCTYPE располагается в первой строке кода документа и сообщает браузеру, как интерпретировать код и отображать данную веб-страницу. Разница между страницей с !DOCTYPE и без него может быть очень существенной, к тому же валидатор в первую очередь проверяет наличие этого элемента в коде.
Опечатки
Очевидно, что самая простая для исправления ошибка возникает из-за опечатки, когда допущено неверное написание требуемого тега. После валидации выдается тип ошибки и номер строки в коде, где она имеется, так что остается только поменять значение на корректное.
Не указан обязательный параметр тега
У некоторых тегов имеются параметры, которые обязательно должны присутствовать. Например, нельзя просто указать тег <style>, необходимо писать <style type="text/css">.
Параметр или значение не входит в спецификацию
В порыве завоевать рынок пользователей разработчики браузеров добавляли в них специальные теги, не входящие в спецификацию HTML, но расширяющие возможности веб-страниц. Со временем часть таких тегов была включена в спецификацию, но многие так и остались «за бортом». При этом поддержка браузером осталась, так что результат работы тега наблюдать можно, но валидацию документ не пройдет. Типичным примером подобного тега является <MARQUEE> придуманный компанией Microsoft
и понимаемый всеми современными браузерами. Вот только в спецификацию этот тег не включен.
Неверное вложение тегов
Ошибка с вложением одного контейнера внутрь другого может быть вызвана следующими причинами:
блочный элемент располагается внутри встроенного, когда должно быть наоборот — встроенные элементы допустимо помещать внутрь блочных;
пересечение тегов, например, как это показано в следующем примере: <strong><em>текст</strong></em>. Здесь закрывающий тег </strong> помещается в контейнер <em>, тогда как он должен следовать только после тега </em>;
не соблюдается порядок вложения тегов. В определенных элементах вроде списка и таблицы принципиальное значение имеет порядок следования тегов. Перестановка тегов местами может привести к неверному отображению объекта и появлению ошибок при валидации документа.
Напоследок отметим еще раз простые правила написания кода, соблюдение которых поможет существенно сократить количество ошибок или обойтись без них.
Закрывайте все теги
Хотя HTML и не требует присутствия некоторых закрывающих тегов, их наличие поможет сохранить строгость кода и четко определить порядок следования тегов.
Указывайте значения параметров тегов в кавычках
Валидатор во многих случаях пропустит значения параметров указанных без всяких кавычек, тем не менее, кавычки лучше писать всегда. Во-первых, подобный навык поможет для устранения возможных ошибок связанных с параметрами тегов. А во-вторых, поможет легче перейти на XHTML (Extensible Hypertext Markup Language, расширяемый язык разметки гипертекста), синтаксически более строгую версию HTML. В XHTML кавычки выступают обязательным элементом синтаксиса.
Коллекционируйте заготовки
Большинство элементов веб-страницы достаточно шаблонно, поэтому имея в своем запасе набор проверенных заготовок на разные случаи, можно сократить затраты времени и быть уверенным, что код корректный.
Используйте блочные элементы
Нельзя так просто вставить текст в код документа, он должен располагаться внутри абзаца (тег <P>) или другого блочного элемента. В тех случаях, когда вы не знаете, какой блочный тег использовать, добавляйте универсальный элемент <DIV>.
Переключайте !DOCTYPE
В HTML-коде обычно применяется строгий !DOCTYPE, который наиболее полно соответствует спецификации. Однако он же и требует соблюдения всех, самых жестких правил написания кода. В тех случаях, когда это сложно или затратно по времени, переключайтесь на переходный !DOCTYPE.
Как с помощью стилей задать цвет линии, созданной с помощью тега HR?
Цвет линии, добавленной на веб-страницу через тег <HR>, по умолчанию
отображается серого цвета и с эффектом объема. Такой вид линии не всегда подходит
к дизайну сайта, поэтому понятно желание разработчиков изменить цвет и другие
параметры линии через стили. Однако браузеры неоднозначно подходят к этому
вопросу, из-за чего придется использовать сразу несколько стилевых атрибутов.
В частности, браузер Internet Explorer для цвета линии применяет свойство color,
а браузеры Firefox и Opera — background-color. Но это еще не все, при
этом обязательно следует указать толщину линии (параметр height) отличной от
нуля и убрать рамку вокруг линии, задавая значение none у атрибута border.
Собирая все параметры воедино для селектора HR, получим универсальное решение
для популярных браузеров.
Пример
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<title>Цвет горизонтальной линии</title>
<style type="text/css">
HR {
border: none; /* Убираем границу для браузера Firefox */
color: red; /* Цвет линии для браузера Internet Explorer */
background-color: red; /* Цвет линии для браузера Firefox и Opera */
height: 2px; /* Толщина линии */
}
</style>
</head>
<body>
<hr>
<hr>
</body>
</html>
В данном примере цвет линии задан как красный, а толщина линии равна двум
пикселам (рис. 1).
Рис. 1. Цветная горизонтальная линия в браузере Opera
Учтите, что валидатор CSS выдаст предупреждение о том, что совпадают значения параметров color и background-color, поэтому стиль в данном случае не пройдет валидацию.
Copyright 2007 Влад Мержевич. По всем вопросам пишите по адресу vlad@htmlbook.ru