Что значит doctype html. Почему важен DOCTYPE и как его правильно использовать
Ухитрился я таки перевернуть всё с ног наголову.. вообще то о заголовке нужно было говорить в самом начале данного учебника.. Ну до ничего ещё есть шанс всё исправить..
Но прежде чем продолжить обучение немного отвлечёмся.. ответе на вопрос:
Какие из этих слов, согласно правилам грамматики, написаны с ошибкой?: Шiопотъ, Шепотъ, Шёпот, Шепот, Шопот. Уверенны?
Но, подождите, я ведь не сказал, каких именно правил нужно придерживаться!
Так на старославянском было единственно верным писать "Шiопотъ" потом, следуя логики, что одному звуку - одна буква, сочетание "iо" решили заменить буквой "е" получился "Шепотъ". Потом родилась буква "ё" потому что народ не знал, как правильно написать слово "ёлка", далее с развитием телеграфа и типографии в целях экономии времени, бумаги, чернил и т.д., пропал твёрдый знак в окончаниях слов заканчивающихся на согласную букву. В настоящее время продвигают правило "Как слышим, так и пишем!" так что слово "Шопот" по нынешним меркам, уже, наверное, тоже правильно написано. Так же допускается писать букву "е" вместо "ё" если это не мешает верному пониманию слова, например "узнаем" вместо слова "узнаём".
Теперь представьте, что Вы пишите диктант и его будет проверять лингвист - старовер, учитель Марья Ивановна советской закалки, и тинэйджер, который привык общаться на сленге. Каким правилам грамматики Вы будите подчинятся чтобы всем угодить? Думаю единственно верным решением будет указать в начале диктанта, что то типа: "При написании диктанта придерживаюсь правил русского языка утверждённых приказом министра образования от такого то числа", тогда все проверяющие будут оценивать Ваш диктант не так как им больше нравится, а согласно правил, на которые Вы сослались.
К чему я это всё?
Язык разметки гипертекстовых документов, точно также как и русский язык живёт во времени и тоже меняется.. появляются новые слова - теги например ,
Так вот чтобы различные браузеры например: "старовер" - Internet Explorer 6.0 , "учительница советской закалки" - Opera 8.0 , "тинэйджер" - Chrome 5.0 ... не разругались на Ваш документ - отобразили его правильно, не запутались в чтении Вашей страницы, необходимо указать в соответствии с какими стандартами он был написан.
Теперь немного о самих стандартах.
Разработкой стандартов HTML языка (и не только HTML), иначе спецификаций, занимается организация World Wide Web Consortium , W3C - Консорциум Всемирной паутины, официальный сайт: www.w3.org . С историй возникновения данной организации её целями и задачами, Вы можете ознакомиться , моя же задача доложить Вам о том, что эта организация разработала несколько спецификаций HTML, по которым, собственно, мы и учимся.
Вот официальные спецификации:
- HTML 3.2 - 14 января 1997 года; www.w3.org/TR/REC-html32
- HTML 4.0 - 18 декабря 1997 года; www.w3.org/TR/REC-html40-971218
- HTML 4.01 - 24 декабря 1999 года; www.w3.org/TR/html401
- HTML 5 - в разработке. (официально ещё не объявлена, но уже используется) www.w3.org/TR/html5
Именно этими документами должны руководствоваться как веб-мастера при создании сайтов, так и разработчики браузеров. Эти стандарты созданы для того чтобы не вышло как в Библейской истории про Вавилонскую башню, где все вдруг начали говорить на разных языках и окончательно перестали понимать друг друга.. а такой момент назревал в своё время, да сейчас не всё так уж гладко, впрочем это уже совсем другая история.. вернемся к .
Итак, заголовок указывает на тип документа - DTD (document type definition - описание типа документа) для правильной его интерпретации браузерами, другими словами указывал браузерам, согласно каким стандартам следует обрабатывать ту или иную страницу.
Ниже перечислены основные варианты
Строгий DTD. Используя такой заголовок, веб-страница должна в точности следовать спецификации HTML 4.01 не использовать теги и атрибуты, обозначенные спецификацией как "нежелательные", а также не должна использовать фреймы.
Переходный синтаксис HTML. При таком заголовке допускаются "вольности" при составлении документа, страница может содержать теги и атрибуты, помеченные спецификацией HTML 4.01 как "нежелательные".
Указывает, что в HTML-документе используются фреймы.
А такой заголовок обозначает, что используется спецификация HTML 5.
Существуют и другие варианты заголовков , например для XHTML, выше перечислены основные для HTML.
Заголовок принято располагать в самом начале документа перед тегом
Как показано на примере:
Данный документ содержит теги и атрибуты осуждаемые спецификацией HTML 4.01
Для того чтобы этот документ прошёл проверку на валидность следует указывать переходный заголовок
Всегда используйте заголовок для всех Ваших страничек.
Использование неправильного - несоответствующего HTML документу может привести к плачевным результатам, будьте внимательны и осторожны при выборе нужного заголовка. В большинстве случаев для страниц, не использующих фреймы лучше указывать переходный
Каждый, кто имеет дело с кодом, верстает или пока еще только учится верстать сайты, просто обязан знать о том, что в начале каждой HTML страницы перед тегом HTML должен стоять DOCTYPE.
Строчка с DOCTYPE (Document Type Definition) в начале HTML страницы указывает на тип документа, который вы будете использовать при написании HTML кода для вашего сайта. Это непарный тег, то есть у него нет закрывающего тега.
Нужно понимать, что строчка, в которой прописывается DOCTYPE - это не просто очередной HTML тег. Это важная инструкция, с помощью которой мы говорим браузеру, какая версия HTML использовалась при написании страницы.
Главным преимуществом использования DOCTYPE является то, что ваш сайт будет правильно работать и одинаково ровно и красиво смотреться во всех браузерах.
Какие существуют виды DOCTYPE?
Cуществует несколько видов DOCTYPE. Есть строгие виды (strict ), которые работают на основе только определенных тегов, есть переходные (transitional ), которые допускают возможность включения дополнительных тегов, есть такие, которые работают с фреймами (frameset ).
Подробно в этой статье я не буду рассматривать каждый из них, так как это не является моей целью, просто перечислю:
Подробную информацию по каждому виду DOCTYPE вы можете найти в интернете, просто введя в поиск нужную фразу, поэтому останавливаться на этом мы не будем.
Что касается использования разных видов DOCTYPE, следует иметь ввиду, что если вы изначально писали свой сайт в одном DOCTYPE, то не рекомендуется его менять в будущем на какой-то другой, потому что могут возникнуть проблемы с правильным отображением сайта из-за того, что вместе со сменой DOCTYPE вы автоматически поменяете правила обработки тегов браузерами.
Когда вы выбираете тот или иной DOCTYPE, вы автоматически выбираете определенные правила, по которым должен анализироваться код в браузерах.
Поэтому DOCTYPE нужно выбирать для сайта, изначально хорошенько подумав, в соответствии с тем, какой вам будет нужен вид обработки HTML кода браузерами, и впоследствии уже его не менять.
Только представьте, сколько проблем раньше (почему раньше, объясню ниже в статье) несло верстальщику наличие нескольких видов DOCTYPE, между которыми приходилось постоянно выбирать, какой лучше использовать, и думать, не ошибся ли ты в своем выборе.
Можно ли вообще обойтись без DOCTYPE?
У тех, кто не любит заострять свое внимание на разных мелочах, может возникнуть вполне естественный вопрос: "А зачем мне все это нужно? Может, мне вообще не использовать DOCTYPE?"
Конечно, теоретически можно его и не указывать, но тогда вы сидите на пороховой бочке замедленного действия, не зная точно когда она рванет (а рванет она 100%).
Короче говоря, если вы не используете DOCTYPE совсем, то рискуете лицезреть созданный вами сайт не в самом приглядном виде в браузере, причем, в каждом браузере будут возникать разные проблемы с правильностью отображения, а решить все их вам будет, мягко говоря, сложновато.
Так что же делать, если не хочется во все это вникать в подробностях?
Преимущества использования DOCTYPE HTML5.
Хорошая новость состоит в том, что с выходом последней версии HTML5 (которая, кстати, все еще находится в процессе разработки, по некоторым данным окончательный стандартный вариант обещают предоставить в 2014 году) стало намного удобней выбирать DOCTYPE для своих сайтов.
Дело в том, что правила DOCTYPE HTML5 являются универсальными, включают в себя правила предыдущей версии, а также возможность работы с HTML 4 тегами и в какой-то степени с XHTML, и, насколько я понимаю, объединяют в себе возможности всех своих предшественников, адаптируя их для работы в новых браузерах.
Поэтому сейчас, когда я верстаю, то уже не задумываюсь, какой тип DOCTYPE мне выбрать, а ставлю на первой строчке
.
Это все, что нужно написать, чтобы указать что это DOCTYPE HTML5. По сравнению с прежними своими собратьями, DOCTYPE HTML5 не основан на SGML (стандартном обобщённом языке разметки) , поэтому там нет тех данных, которые указывались до этого, а следовательно - в нем присутствует только короткая команда. И дальше уже идет сам документ:
Согласитесь, что намного проще запомнить такую короткую строчку, чем каждый раз напрягаться , пытаясь вспомнить или найти где-то длинный код, который должен быть написан при использовании других версий.
Что касается браузеров: как старые браузеры относятся к DOCTYPE HTML5? Не возникнут ли проблемы с этим?
По этому поводу хочу сказать, что:
- Во-первых, мы должны равняться на прогресс и на будущее, а будущее - за новыми браузерами, и сейчас становится все-таки меньше и меньше людей, использующих старые браузеры.
- А во-вторых, Doctype HTML5 так устроен, что даже браузеры, которые в принципе не были созданы для того, чтобы поддерживать его (IE (начиная с IE8), старые версии FireFox, Opera, Safari), увидев команду, сразу же переключают содержимое в стандартный режим.
Это значит, что если вы сегодня начнете создавать свои страницы на основе DOCTYPE HTML5, то можете быть уверены в том, что им обеспечена долгая жизнь.
Выводы.
Какой из всего вышесказанного мы можем сделать вывод?
Использовать DOCTYPE необходимо, если не хотите впоследствии решать всяческие проблемы, связанные с его отсутствием (нужны они вам? ).
И использовать лучше всего последнюю версию DOCTYPE HTML5.
Очевидно, что многое изменилось и продолжает меняться к лучшему в этом направлении. Все это делается для того, чтобы облегчить нам с вами жизнь и сделать нашу работу максимально удобной, что рисует довольно яркие картины в перспективе!
А потому желаю вам успехов!
DOCTYPE это декларация, которая определяет тип документа. Декларация не является тегом HTML это только инструкция для веб-браузера о том, какая версия HTML используется в документе. Декларация !DOCTYPE помогает браузеру отобразить веб-страницу правильно, для этого браузер должен знать, как тип, так и версию документа.
Декларация сообщает, что в этом документе используется пятая версия языка гипертекстовой разметки - HTML 5 .
Обращаю Ваше внимание на то, что декларация должна указываться самой первой в вашем HTML документе, перед тегом . Декларация не чувствительна к регистру.Хронология версий HTML:
Версия | HTML | HTML 2.0 | HTML 3.2 | HTML 4.01 | XHTML | HTML 5 |
---|---|---|---|---|---|---|
Год | 1991 | 1995 | 1997 | 1999 | 2000 | 2014 |
Поддержка браузерами
Декларация | Opera | IExplorer | Edge |
|||
---|---|---|---|---|---|---|
!DOCTYPE | Да | Да | Да | Да | Да | Да |
Пример использования
Пример использования декларации !DOCTYPE для HTML5 документа:
Это заголовок
Это параграф.
Отличия HTML 4.01 от HTML 5
DOCTYPE для HTML 4.01
Используется три варианта !DOCTYPE :
1. Строгий (Strict) : не содержит элементов, помеченных как «устаревшие» и «не одобряемые» (deprecated). PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 2. Переходный (Transitional) : содержит устаревшие теги (для совместимости и перехода с более старых версий HTML). PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 3. С фреймами (Frameset) : аналогичен переходному, но также включены теги для создания фреймов. PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">(от англ. document type - тип документа) предназначен для указания типа текущего документа - DTD (document type definition, описание типа документа). Это необходимо, чтобы браузер понимал, как следует интерпретировать текущую веб-страницу, поскольку HTML существует в нескольких версиях, кроме того, имеется XHTML (EXtensible HyperText Markup Language, расширенный язык разметки гипертекста), похожий на HTML, но различающийся с ним по синтаксису. Чтобы браузер «не путался» и понимал, согласно какому стандарту отображать веб-страницу и необходимо в первой строке кода задавать .
Существует несколько видов , они различаются в зависимости от версии языка, на которого ориентированы. В табл. 1. приведены основные типы документов с их описанием.
DOCTYPE | Описание |
---|---|
HTML 4.01 | |
Строгий синтаксис HTML. | |
Переходный синтаксис HTML. | |
В HTML-документе применяются фреймы. | |
HTML 5 | |
Для всех документов. | |
XHTML 1.0 | |
Строгий синтаксис XHTML. | |
Переходный синтаксис XHTML. | |
Документ написан на XHTML и содержит фреймы. | |
XHTML 1.1 | |
Разработчики XHTML 1.1 предполагали, что он постепенно вытеснит HTML. Никакого деления на виды это определение не имеет, синтаксис один и подчиняется чётким правилам. |
Синтаксис
Закрывающий тег
Не требуется.
Атрибуты
Элемент верхнего уровня - указывает элемент верхнего уровня в документе, для HTML это тег .
Публичность - объект является публичным (значение PUBLIC ) или системным ресурсом (значение SYSTEM ), например, таким как локальный файл. Для HTML/XHTML указывается значение PUBLIC .
Регистрация - сообщает, что разработчик DTD зарегистрирован в международной организации по стандартизации (International Organization for Standardization, ISO). Принимает одно из двух значений: плюс (+) - разработчик зарегистрирован в ISO и - (минус) - разработчик не зарегистрирован. Для W3C значение ставится «-».
Организация - уникальное название организации, разработавшей DTD. Официально HTML/XHTML публикует W3C , это название и пишется в .
Тип - тип описываемого документа. Для HTML/XHTML значение указывается DTD .
Имя - уникальное имя документа для описания DTD.
Язык - язык, на котором написан текст для описания объекта. Содержит две буквы, пишется в верхнем регистре. Для документа HTML/XHTML указывается английский язык (EN ).
URL - адрес документа с DTD.
Пример
Разум - это Будда, а прекращение умозрительного мышления - это путь. Перестав мыслить понятиями и размышлять о путях существования и небытия, о душе и плоти, о пассивном и активном и о других подобных вещах, начинаешь осознавать, что разум - это Будда, что Будда - это сущность разума, и что разум подобен бесконечности.
Примечание
Internet Explorer до версии 6.0 требует, чтобы стоял обязательно в первой строке кода. В противном случае браузер переходит в режим совместимости (quirk mode).
Хотя значение URL является не обязательным, некоторые браузеры при его отсутствии могут перейти в режим совместимости, поэтому для HTML4 указывайте полный путь к DTD-файлу, как показано в табл. 1.
Спецификация
Каждая спецификация проходит несколько стадий одобрения.
- Recommendation (Рекомендация ) - спецификация одобрена W3C и рекомендована как стандарт.
- Candidate Recommendation (Возможная рекомендация ) - группа, отвечающая за стандарт, удовлетворена, как он соответствует своим целям, но требуется помощь сообщества разработчиков по реализации стандарта.
- Proposed Recommendation (Предлагаемая рекомендация ) - на этом этапе документ представлен на рассмотрение Консультативного совета W3C для окончательного утверждения.
- Working Draft (Рабочий проект ) - более зрелая версия черновика после обсуждения и внесения поправок для рассмотрения сообществом.
- Editor"s draft (Редакторский черновик ) - черновая версия стандарта после внесения правок редакторами проекта.
- Draft (Черновик спецификации ) - первая черновая версия стандарта.
Особняком стоит живой стандарт HTML (Living ) - он не придерживается традиционной нумерации версий, поскольку находится в постоянной разработке и обновляется регулярно.
Сегодня, уважаемый читатель, мы поговорим о такой загадочной вещи, как объявление стандарта, в соответствии с которым написан HTML-документ. Выполнять поставленную задачу призвана первая HTML-директива в коде веб-страницы, под названием !DOCTYPE .
Вот пример этой строки:
Если вы не знаете, зачем нужна такая абракадабра и какой DOCTYPE выбрать в вашем случае, то в данной статье вы найдете ответы на эти вопросы, я, по крайней мере, постарался осветить проблему подробно 🙂
Первое, что может сделать добросовестный начинающий веб-мастер, пытающийся разобраться в назначении директивы DOCTYPE, это сходить на сайт htmlbook.ru и прочитать , из которой станет ясно, что доктайпов существует несколько (строгие и не очень, для HTML и XHTML). Ясно, что данная директива необходима для уведомления браузера о том, в соответствии каким стандартам сверстан HTML-документ, а вот какой стандарт выбрать и на что это влияет – большой вопрос.
Для того, чтобы большой вопрос превратился в подробный ответ, давайте познакомимся с интереснейшей историей появления всех этих стандартов (не пугайтесь, я кратенько).
История стандартов HTML
Давным-давно, когда интернет только зарождался, обозначилась проблема каким образом превращать набор букв, передаваемый по сети, в заголовки, абзацы, ссылки . Ответ нашел физик Тим Бернерс-Ли придумав язык гипертекстовой разметки HTML (обратите внимания, товарищи блондинки, HTML – это не язык программирования). Документацию к языку HTML опубликовали в 1991 году.
HTML прижился на столько, что стал стандартом разметки документов в интернете, и был одобрен международной организацией по стандартам W3C , которая была основана и возглавляется, как не странно, все тем же создателем HTML сером Тимом Бернерсом-Ли.
В своей первой редакции HTML представлял язык разметки содержимого web-страницы, сообщающий браузеру – где заголовок, где абзац, где ссылка при помощи наших добрых знакомых, HTML-тегов. Браузеры, при этом, самостоятельно должны были решать, каким образом им визуально представлять все элементы содержимого, структурированные тегами. Иными словами, первая редакция HTML не имела никакой власти над визуальным представлением гипертекста на стороне клиента, эта функция полностью ложилась на плечи браузера.
Прошло немного времени буйного развития интернет-технологий, как в интернет хлынул бизнес. Бизнес-сайтам совсем не хотелось быть похожим один на другой, им нужна была яркость, запоминаемость.
Популярные в то время браузеры (конечно IE и, тогда еще живой, Netscape) начали придумывать свои собственные теги, которые позволяли задавать индивидуальные свойства дизайна веб-документу. Да, уважаемый читатель, никакой кроссбраузерности в то время не было. Я еще помню те времена, когда по сайтам можно было лазить только с помощью IE, все остальные браузеры показывали страшные вещи. Но сейчас не об этом.
W3C принимает новый стандарт HTML, в который уже входят средства визуального представления.
Семимильными шагами начинает развиваться технология CSS, призванная восстановить порядок и отделить представление (выравнивание, цвета, шрифты, которые теперь будут задаваться CSS-стилями) от структуры (заголовки, абзацы, ссылки, которые идеологически задаются в HTML).
Начинающий веб-мастер спросит зачем отделять визуальную часть от структуры , и мы ему ответим:
- В простеньком сайте необходимость этого не очевидна, но если проект крупный, то разделением удастся избежать путаницы и каши в HTML-коде.
- Не нужно повторять один и тот же код на разных страницах, если визуальное представление блоков одинаково. Достаточно воспользоваться CSS-файлом, где один раз указать стиль отображения для данного семейства блоков.
- Отделив инструкции, касающиеся внешнего вида, в кешируемый файл, можно избежать бессмысленных нагрузок на мировую паутину (хе-хе, какое нам дело до мировой паутины, свой сервак не перегружать бы; CSS спасает сервера высоконагрузочных проектов).
- Теперь уже мощность CSS неоспоримо больше, в плане работы с логикой представления, чем у искусственно впертвых в HTML инструментов изменения внешнего вида страницы.
Так, о CSS достаточно, вернемся к HTML.
Актуальный, на данный момент, стандарт HTML 4.01 запрещает использовать HTML для манипуляций с отображением элементов. Попрощайтесь с HTML-директивами align, font ; внешний вид нужно задавать при помощи CSS-стилей. Все возвращается на круги своя.
Но, интернет продолжает свое развитие и вместе с ним развиваются и перерождаются стандарты.
Организация W3C решила, что наиболее удовлетворяющим современным веяниям будет новый расширяемый стандарт XHTML . Данная штуковина – это некий симбиоз HTML с принципами XML.
XML – это способ хранения структурированных данных в текстовом файле. Придуманные теги, определенным образом, в соответствии стандартам XML, формируют структуру данных:
При помощи простенькой программы, легко можно разделить данные, структурированные средствами XML. При этом данные могут быть проанализированы в любой операционной системе, на любом устройстве (ведь это всего-на-всего текстовый файл, структурированный соответствующими разделителями-тегами, согласно известному стандарту).
Организация W3C посчитала вышеописанную особенность очень крутой и раздумья о тупике в развитии HTML, привели к рождению XHTML. Это будет такой язык разметки, который безболезненно должен расширяться новыми тегами и сможет обрабатываться любым устройством (мобильник, компьютер, телевизор), ведь в основе лежит XML, который это пропагандирует (думали наивные сотрудники организации W3C).
Сказано, сделано – в мае 2001 года появился новый стандарт расширяемой гипертекстовой разметки XHTML 1.0 . Он впитал в себя строгости XML, теперь HTML-код должен соответствовать следующим требованиям:
- Все теги, должны быть закрыты. Если тег одиночный, например , то он должен выглядеть вот таким образом: .
- Должна строго выполняться иерархия. Вот так нельзя: …. Можно только так:…. Нельзя забывать про теги , – все должно быть аккуратно.
- Атрибуты тегов нужно обязательно заключать в кавычки. Так нельзя: . Можно только так: .
- Теги и CSS-свойства можно писать только маленькими буквами.
- В случае присутствия ссылки, содержащей знак & , его нужно преобразовать в &.
- У изображений, формируемых тегом , обязательно нужно указать свойство alt .
И, также как в HTML 4.01, никаких воспоминаний о внешнем виде в XHTML-коде быть не должно.
Конечно, это не полная спецификация языка XHTML, в нем есть ряд ограничения, связанный со скриптами и еще Бог знает с чем. С полной спецификацией можно ознакомится в соответствующем разделе сайта W3C (хоть там все и на английском, но с красочными примерами правильного и ошибочного синтаксиса, так что желающий понять – поймет).
Как я говорил ранее XHTML – это расширяемый язык гипертекстовой разметки. Однако, вся эта расширяемость плохо воспринимается поисковиками, некорректно работает в IE6 и IE7, возникает необходимость настраивать заголовки, передаваемые сервером и выполнять строгие правила формата XML, чтобы все достоинства XTML работали в полную силу.
Достоинства языка XHTML – это вовсе не строгость синтаксиса, а возможность использовать хитрые теги разметки, например, принадлежащие пространству имен MathML (пример , который нужно запускать только в нормальных браузерах; IE6, вместо интерпретации XHTML кода, поднимет диалог сохранения файла) или придумывать теги самостоятельно в своем собственном пространстве имен (этот процесс детально описан на сайте W3C , анг. язык).
Дальнейшее развитие революционной ветки XHTML – это выход стандарта XTML 2.0 , значительно отличающегося от привычного HTML и несовместимого с XHTML 1.0. Окончание работ над XHTML 2.0 планировалось на 2009 год.
Стандарт XHTML 2.0 был заброшен и организация W3C переключил на разработку HTML 5.
Утвердить стандарт HTML 5 планируется не ранее 2020 года.
Какой DOCTYPE выбрать
Теперь, вооружившись знаниями истории стандартов, снова вернемся к статье на htmlbook.ru про DOCTYPE .
Мы знаем, что такое HTML 4.01 и XHTML 1.0. Остаются открытыми три вопроса:
- Что такое строгий и переходный синтаксис?
- Какой стандарт выбрать?
- Как научится верстать в соответствии с выбранным стандартом?
Теперь я последовательно отвечу на все поставленные вопросы.
Что такое строгий и переходный синтаксис
Оказывается, чтобы ломка при переходе на новый стандарт не была такой уж болезненной, придуманы переходные синтаксисы .
Вы же помните, что в стандарте HTML 4.01 запрещены HTML-инструкции, касающиеся внешнего вида? Да, помните конечно, я просто хотел в этом убедиться.
Теперь поэкспериментируем.
Сначала я выберу строгий синтаксис формата HTML 4.01 и укажу соответствующую директиву DOCTYPE:
Эта абракадабра означает, что HTML-код, идущий ниже, соответствует стандарту 4.01, принятому организацией W3C (вот этот кусок абракадабры "-//W3C//DTD HTML 4.01//EN" ). Инструкции, написанные организацией W3C, касательно данного стандарта, находятся вот там: "http://www.w3.org/TR/html4/strict.dtd" и браузер может прогуляться по этому адресу для уточнения.
Экспериментировать будем с вот таким HTML-кодом:
Немного текста
Основное внимание нужно обратить на присутствие в коде запрещенных элементов: align="center" и тега .
Теперь проверим этот код на соответствие стандартам. Как я неоднократно говорил ранее, есть замечательное расширение для FireFox под названием . Програмулина показывает две ошибки в HTML-коде:
Все оказалось предсказуемо. Валидатор ругается на атрибут align и тег , такие вещи запрещены в стандарте HTML 4.01, который мы декларируем первой строчкой HTML-кода.
Заменим первую строчку на доктайп стандарта HTML 4.01 переходного синтаксиса :
Теперь абракадабра сообщает браузеру, что HTML документ написан в соответствии с переходным синтаксисом стандрата HTML 4.01, потому что автору документа, периодически, непреодолимо хочется использовать запрещенные стандартом директивы. Поставив этот DOCTYPE в код, приведенный выше, повторим валидацию.
Вуаля, уважаемый читатель, тех двух ошибок как не бывало:
Я думаю, что теперь должны быть ясны все отличия строгого и переходного синтаксиса.
Переходный доктайп стандарта XHTML 1.0 позволит использовать HTML-директивы для задания внешнего вида, но за соответствием идеологии XML будет следить пристально и реагировать ошибкой валидации на каждый незакрытый одиночный тег или отсутствие alt-свойства у картинки.
Какой стандарт выбрать
Я считаю, что нужно верстать валидно в соответствии со строгим синтаксисом стандарта. Это заставит использовать HTML по его прямому назначению и не мешать котлеты с мухами в одной тарелке. Кроме того, если сайт сверстан валидно и неправильно отображается в каком-либо браузере – то это проблема браузера, новые версии которого все лучше и лучше соответствуют стандартам организации W3C и исправляют ошибки интерпретации валидного кода. А вот если вы реализовали какую-то сложную структуру извращенным, невалидным способом, то где гарантии того, что новые версии браузеров не порвут вашу верстку в клочки?
Так что, никаких переходных синтаксисов, только строгое соответствие стандартам .
За строгое соответствие стандартам выступает еще один довод. Ноги этого довода растут из нашего спора с Takobus, разгоревшегося в комментариях к статье о . Оказывается, IE8, все-таки, прекрасно понимает назначение CSS-свойства display: table-cell , правда в случае, если объявлен строгий синтаксис стандарта HTML 4.01. В переходном синтаксисе IE8 отказывается работать с данным CSS-свойством.
Теперь определимся с выбором между актуальными стандартами: HTML 4.01 и XHTML 1.0.
Вы собираетесь расширять язык HTML? Если нет, то и не нужно использовать гнилую ветку XHTML, которая так и не переродилась в версию 2.0.
Если вы хотите защитить свой продукт на будущее, чтобы в дальнейшем не возникло проблем при расширении функционала, из-за несоответствия HTML-кода стандартам XML, то помучайте себя слешами в одиночных тегах и обязательными alt-параметрами картинок. Но не делайте это напрасно, просто так использовать XHTML-стандарт не вижу никакой необходимости.
Есть еще DOCTYPE директивы, предназначенные для HTML-документов, использующих фреймы. Что-то я сомневаюсь, чтобы вы использовали древнюю технологию фреймирования 🙂
Для тех, кто не в теме:
Фреймы – это независимые браузерные окна, отображаемые на одной Web-странице. Каждое окно связано с независимым файлом HTML.
Теперь ясно, какой!DOCTYPE оказывается максимально подходящим:
Строгий синтаксис формата HTML 4.01
Как научится верстать в соответствии с выбранным стандартом
Оказывается, очень просто. Нужно установиться рекомендованное мной расширение для FireFox , которое популярным образом, с примерами, объяснит причину ошибки в HTML и покажет как ее устранить. Вот вам и валидный код.
Веселое видео в тему
P.S. Продолжается бессрочная акция по обмену постовыми. Я с радостью обменяюсь ссылками с тематическими блогами и сайтами. Если у вас есть желание, пишите в .
В продолжении к вышесказанному размещаю постовой.
Интересуешься веб-дизайном? Создаешь сайты? Тогда на Web 2.0 Portal ты найдешь много интересного.