После долгого перерыва возобновляем рассылку и переходим ко второй части статей об HTML и CSS. Для тех, кто пропустил первую часть, посвященную HTML, рекомендую скачать самоучитель в формате CHM по адресу http://htmlbook.ru/download/?id=4, объем файла 519 кБ.
Валидация документов
Валидацией будем называть проверку документа на соответствие веб-стандартам и выявление существующих ошибок. Соответственно, валидным является такой веб-документ, который прошел подобную процедуру и не имеет замечаний по синтаксису. Код веб-страницы должен подчиняться определенным правилам, которые называются спецификацией, ее разрабатывает W3 Консорциум (www.w3c.org) при поддержке разработчиков браузеров.
На первый взгляд, кажется, что валидация необходима, ведь речь идет о сокращении количества ляпов разработчиков и написании «правильного» кода. На деле все обстоит гораздо сложнее и вокруг валидации до сих пор ведутся горячие споры об ее актуальности. Чтобы объективно раскрыть этот вопрос далее рассмотрим плюсы и минусы такой проверки.
Плюсы валидации
Хотя HTML-код имеет достаточно простую иерархическую структуру, при разрастании объема документа в коде легко запутаться, следовательно, просто и совершить ошибку. Браузеры, несмотря на явно неверный код, в любом случае постараются отобразить веб-страницу. Но поскольку единого регламента не существует о том, как же должен быть показан «кривой» документ, каждый браузер пытается сделать это по-своему. А это в свою очередь приводит к тому, что один и тот же документ может выглядеть по-разному
в популярных браузерах. Исправление явных промахов и систематизация кода приводит, как правило, к стабильному результату.
Тенденции
Времена, когда производители браузеров добавляли уникальные возможности в свой продукт вопреки всем стандартам, начинают уходить в прошлое. Каждая новая версия браузера все больше поддерживает спецификации и отображает документы с минимальными ошибками или вообще без них. Разработчики сайтов, также придерживающихся канонов веб-стандартов, таким образом соответствуют современным тенденциям развития веб-технологий.
Не стоит забывать и об XML (eXtensible Markup Language, расширяемый язык разметки). Этот язык становится стандартом де-факто для хранения данных и обмена информацией между разными приложениями. Синтаксис XML более жесткий, чем HTML и не прощает малейших ошибок. В каком-то смысле XML похож на языки программирования, в которых программа не будет скомпилирована, пока код не отлажен. HTML является первой ступенькой к изучению XML, поэтому приучая себя писать код по всем правилам, будет легче перейти к следующему
этапу развития HTML.
Мода на валидацию
Как это не удивительно, но среди веб-разработчиков тоже существует своя мода. Текущая мода — создавать валидные документы и вывешивать специальный значок в виде картинки, что сайт соответствует спецификации HTML. Подобная тенденция затронула даже заказчиков сайтов и при написании технического задания на разработку сайта некоторые из них специально оговаривают, чтобы сайт был выполнен по веб-стандартам. Естественно, это приводит к удорожанию создания сайтов, поэтому разработчики в подобных
случаях заинтересованы в том, чтобы мода на валидацию развивалась.
Косвенные преимущества
Следование стандартам во многом дает множество выгод, которые проявляются в мелочах и становятся заметными при достижении определенной критической массы. В частности, объем кода становится меньше, компактнее и читабельнее. Соответственно, для пользователей повышается скорость загрузки сайта в целом.
Минусы валидации
Сайты, конечно же, делают для того, чтобы их посещали люди. Именно посетители выступают мерилом работы сайта, а их интересует информация и способ ее получения. Пользователь желает, чтобы сайт корректно отображался в его любимом браузере, быстро загружался и содержал те материалы, которые ему нужны. Заметьте, в этом списке нет ничего про код документа и его валидность, посетителей это просто не интересует. Поэтому совершенно невалидный сайт, но выполненный с душой, наполненный интересными материалами
привлечет к себе больше посетителей, чем пустой ресурс, но сделанный по всем «правилам».
Браузеры
Разработчики браузеров не всегда следуют спецификации и в некоторых случаях трактуют код не по заданным правилам, а по-своему. В конечном итоге это приводит к тому, что веб-страница, которая правильно (т.е. так, как и задумывали разработчики) отображается в одном браузере, выводится с ошибками в другом. Следование спецификации в подобных случаях, скорее всего, отпугнет пользователей некоторых браузеров. К примеру, Internet Explorer (IE) в настоящее время занимает лидирующее положение среди браузеров,
но при этом поддерживает спецификацию HTML и CSS хуже, чем Firefox и Opera. Очевидно, что пользователи IE при посещении сайта выполненного по всем стандартам, но не учитывающего специфику этого браузера, увидят неприглядную картину.
Заказчикам сайта, а также их разработчикам подобная ситуация не по нраву, поэтому стоя перед выбором: стандарты или браузер, они в большинстве своем выбирают браузер.
Получается неутешительная картина — тратить время на отладку кода для соответствия спецификации нет особой нужды. Это время лучше посвятить тому, чтобы документ без проблем работал в разных браузерах — так в основном размышляют веб-разработчики.
Резюме
Так стоит ли проводить валидацию документов и заниматься этим этапом при написании веб-страниц? Доводы существуют как за, так и против, и здесь уже каждый решает, что для него важнее. Однако при обучении HTML и создании сайтов валидация необходима, поскольку она помогает избавиться от лишних ошибок и впоследствии избегать их.
Рецепты CSS
Как зафиксировать слой, чтобы он оставался на одном месте при прокрутке страницы?
«Замораживание» слоя в определенном месте веб-страницы происходит с помощью стилевого атрибута position со значением fixed. При этом положение слоя не меняется даже при прокрутке страницы с помощью скроллинга. Сами координаты слоя задаются через параметры left, right, top и bottom, которые соответственно определяют положение
от левого, правого, верхнего и нижнего края окна браузера.
Пример
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Фиксированный фон</title>
<style type="text/css">
#fixed {
position: fixed; /* Фиксированное положение */
right: 10px; /* Расстояние от правого края окна браузера */
top: 20%; /* Расстояние сверху */
padding: 10px; /* Поля вокруг текста */
background: #ffe; /* Цвет фона */
border: 1px solid #333; /* Параметры рамки */
}
</style>
</head>
<body>
<div id="fixed">Меню</div>
</body>
</html>
Следует помнить, что значение fixed параметра position не работает в браузере Internet Explorer до седьмой версии.
Copyright 2007 Влад Мержевич. По всем вопросам пишите по адресу vlad@htmlbook.ru