Варианты HTML разрабатывались длительное время, вторая версия вышла в 1995 году, третья в 1996, 4.0 - в 1997, а 4.01, распространенная ныне, - в 1999.) Вероятно, полезно будет, что нового в этой версии.
HTML в четвертой редакции (да и в предыдущих тоже) предоставляет широкие возможности для написания некорректного кода. Это значит, что, несмотря на наличие определенных правил формирования веб-страницы посредством тэгов, все браузеры очень лояльно относятся к ошибкам кода. Допустим, все открытые тэги следует закрывать, но очень часто встречается:
Текст абзаца
вместо корректного
Текст абзаца
,
поскольку браузеры автоматически «закрывают» (на уровне механизма интерпретации разметки, не исправляя код) подобные тэги (
, , и другие). Пропускаются даже достаточно важные закрывающие тэги (например, ), но браузеры и на это смотрят сквозь пальцы. Значения параметров должны быть заключены в кавычки, но это тоже не всегда соблюдается. В самом деле, зачем делать лишнюю работу, если она будет сделана за тебя?
Вот пример корректного кода на HTML 5:
HTML5 page
Paragraph
line2
Различий с HTML 4 в этом примере совсем немного: сокращенный DTD, возможность указания кодировки напрямую через тэг , отсутствие необходимости указывать типы данных включаемых файлов и язык активных сценариев. Различия с XHTML - отсутствие необходимости закрывать все тэги подряд.
В HTML 5 вводится большое количество новых элементов, например, (заметка в блоге, статья в газете), (примечание сбоку страницы), (диалог), (для объединения включаемого медиа-содержимого, например, видеоролика, с подписью), и (блоки «шапки» и «подвала» страницы или иного блока), и (для собственно вставки медиа-содержимого), (помеченное), (для обозначения времени и даты), (для динамически генерируемых изображений - буквально «холст»), (комбо-бокс, или выпадающее меню, совмещенное с текстовым полем для ввода, когда вместо уже заготовленных значений, оформленных в виде выпадающих меню, пользователь может ввести свое) и некоторые другие. К примеру, диалог теперь можно будет оформлять так:
Первый
Превед! Кагдила?
Второй
Ничо так.
У некоторых уже существующих тэгов появятся новые параметры: у тэга - параметр charset (кодировка), для и - параметры autofocus (фокус - или курсор - устанавливается на элемент, отмеченный этим параметром), replace (что будет с документом, когда данные формы будут отправлены по нажатию кнопки) и required («предназначено для обязательного заполнения») и еще несколько. Например, с помощью новых параметров элементы можно соотносить не с одной, а несколькими формами. Параметры class, dir, id, lang и title могут относиться к любому элементу.
Часть атрибутов сможет быть реализована с переработкой механизмов отрисовки веб-страниц браузерами. Так, вместо длинных сценариев для того, чтобы элемент можно было перемещать по веб-странице, достаточно будет присвоить элементу параметр draggable.
Наконец, поддержка некоторых элементов останется только для обратной совместимости. HTML 5 не будет включать следующие элементы: ,