Что такое HTML5 – Различия Между HTML и HTML5. Предварительный обзор HTML5 Разница между html4 и html5
В последний год, а может и два, значительно возрос интерес к разрабатываемой в настоящее время спецификации HTML 5. Это касается и производителей браузеров, и создателей сайтов. Однако, целостного взгляда на отличия новой спецификации от старой я ещё не находил, поэтому решил изложить суть официального документа рабочей группы HTML5 о различиях этой спецификации с её предыдущей версией.
Эта статья не закончена, здесь описаны лишь первые два из четырёх основных разделов документа о различиях HTML4 и HTML5. Она будет дополнена и завершена в ближайшее время, также возможны обновления по мере изменения исходного документа W3C.
1. Введение
HTML непрерывно эволюционировал, так как был внедрен в Интернет в начале 90-х годов прошлого века. Некоторые функции были внесены в спецификации и использованы в различных версиях программного обеспечения. В каком-то смысле, реализации и методики авторов соответствовали друг другу и спецификациям, но с другой стороны, они продолжали отдаляться.
HTML4 стал Рекомендацией W3C в 1997. В то время как он продолжал для многих быть грубым руководством к основным функциям HTML, он также не обеспечивал достаточной информации для построения реализаций, которые взаимодействуют с другими реализациями, и что важнее с критическим объёмом созданного HTML-содержимого. Это относилось и к XHTML1 и DOM Level 2 HTML. HTML5 заменит эти документы.
Рабочий проект HTML5 начал разрабатываться в 2004 году с попытки изучения современных реализаций HTML и созданных с помощью них HTML-документов. Рабочий проект:
- Описывает отдельный язык, названный HTML5, который может использовать синтаксис HTML или XML.
- Определяет подробные модели обработки для развития способных к взаимодействию реализаций.
- Совершенствует разметку для HTML-документов.
- Внедряет разметку и API для зарождения идиом, таких как Web applications.
1.1. Нерешенные проблемы
HTML5 — пока еще незаконченная спецификация. Содержание HTML5, также как и содержание этого документа («HTML5 differences from HTML4»), напрямую зависящего от HTML5, всё ещё обсуждается в Рабочей группе HTML и WHATWG. Нерешенные проблемы включают в себя (список не исчерпывающий):
- Семантическое определение некоторых элементов, ранее предназначенных лишь для оформления.
- Сведения о доступности, возможностях замены и сопровождения альтернативным содержимым медиа-данных, таких как атрибуты alt и summary .
1.2. Обратная совместимость
HTML5 определен таким образом, что он обратно совместим с тем, как агенты пользователей обрабатывают связанное содержимое. Для сохранения относительной простоты языка для авторов некоторые элементы и атрибуты не включены в другие разделы этого документа, например, элементы оформления, которые лучше описаны в спецификации CSS.
Агенты пользователей, однако, всегда должны будут поддерживать устаревшие элементы и атрибуты, и именно поэтому спецификация полностью отделяет требования к авторам и агентам пользователей. Это означает, что авторы не могут использовать элементы isindex или plaintext , но агентам пользователей необходимо их поддерживать для совместимости с созданным HTML-содержимым.
1.3. Разрабатываемая модель
Спецификация HTML5 не будет рассматриваться завершённой до тех пор, пока не существуют, по крайней мере, две завершённые реализации этой спецификации. Этот подход отличается от предыдущих версий HTML. Его цель - гарантировать полную пригодность спецификации для дизайнеров и разработчиков.
1.4. Влияние на веб-архитектуру
Предполагается, что на веб-архитектуру окажут влияние следующие области/возможности, определенные в HTML5:
- Использование DOM в качестве основы для описания языка.
- Концепция окружения браузера.
- Разделение требований к агентам пользователей и авторам HTML-документов.
- Использование обязательных определений вместо абстрактных определений с требованием эквивалента «чёрного ящика» при реализации.
- Новая концепция модели содержимого (взамен концепции строчных и блочных элементов в HTML4).
- Рассмотрение доступности как неотъемлемой концепции для создания новых возможностей (таких как атрибут hidden , элемент progress и т.п.) вместо каких-либо расширений (к примеру, атрибута alt).
- Подробное определение семантики (например, алгоритма outline, взамен его нечёткой семантики в HTML4).
- Элементы menu и command .
- Основополагающие идеи.
- Оффлайн-кеш веб-приложений.
- Определение алгоритма контекстной навигации в браузере (browsing context "navigation" algorithm) и связанных с ним алгоритмов просмотра истории сессий (session history traversal algorithms).
- Контроль типов содержимого и кодировок.
- Очень строгое и недвусмысленное описание парсера.
- Возможности contentEditable и UndoManager.
- Архитектура Drag&Drop и Copy&Past.
- Новые возможности «sandbox» («песочницы», учебно-эксперементальных сред) для iframe .
2. Синтаксис
HTML5 использует синтаксис HTML, который совместим с HTML4- и XHTML1-документами, опубликованными в Интернете, но несовместим с нечёткими функциями SGML языка HTML4, такими как команды обработки (processing instructions) и сокращенная разметка (shorthand markup). Документы, использующие синтаксис HTML почти всегда имеют медиа-тип text/html .
HTML5 также описывает подробные правила синтаксического анализа (включая обработку ошибок), которые в значительной степени совместимы с уже существующими популярными реализациями парсеров. Агенты пользователей должны использовать эти правила для документов, которые имеют медиа-тип text/html . Ниже приведен пример документа, который соответствует HTML-синтаксису языка HTML5:
Example paragraph
HTML5 также определяет медиа-тип text/html-sandboxed для документов, использующих HTML-синтаксис и содержащих непроверенное (разрабатываемое) содержимое.
Другим синтаксисом, который можно использовать для HTML5, является XML. Этот синтаксис совместим с реализациями и документами XHTML1. Документы, использующие такой синтаксис, должны иметь медиа-тип XML, а элементы должны быть помещены в пространство имён http://www.w3.org/1999/xhtml по правилам, в дальнейшем устанавливаемым спецификациями XML.
Ниже представлен пример документа, который соответствует XML-синтаксису языка HTML5. Обратите внимание на то, что документы XML должны иметь медиа-тип XML, например, application/xhtml+xml или application/xml .
Example paragraph
2.1. Кодировка символов
- На транспортном уровне можно использовать заголовок HTTP Content-Type .
- Использовать символ маркера порядка байтов Unicode (BOM) в начале файла. Этот символ обеспечивает сигнатуру для использования необходимой кодировки.
- Используя элемент meta с атрибутом charset . Например, может использоваться для установки кодировки UTF-8. Эта запись заменяет более длинную , которая также допустима в HTML-синтаксисе.
Для установки кодировки в случае XML-синтаксиса авторы должны использовать правила, которые установлены в спецификациях XML.
2.2. doctype
HTML-синтаксис HTML5 требует наличия DOCTYPE для гарантирования того, что браузер отобразит страницу в режиме поддержки стандартов. У DOCTYPE нет иного предназначения и поэтому он необязателен для XML. Документы с медиа-типом XML всегда отображаются в режиме поддержки стандартов. Объявление DOCTYPE должно быть следующим: , оно регистронезависимо в HTML-синтаксисе. DOCTYPE в ранних версиях HTML был длиннее, потому что язык HTML был основан на SGML, и поэтому требовал ссылки на DTD . В HTML5 такой ссылки не требуется, и DOCTYPE нужен лишь для включения режима поддержки стандартов для документов с HTML-синтаксисом. Браузеры уже выполняют переключение в режим стандартов при использовании объявления .
2.3. MathML и SVG
HTML-синтаксис языка HTML5 допускает использование элементов MathML и SVG непосредственно внутри документа. Ниже представлен пример использования такой возможности:
Зелёный круг:
Более сложные сочетания также допустимы. Например, с помощью SVG-элемента foreignObject вы можете внедрять MathML, HTML внутрь фрагмента SVG, который сам находится внутри HTML.
2.4. Прочее
Существует несколько других синтаксических изменений, о которых следует упомянуть:
- HTML теперь имеет встроенную поддержку идентификаторов IRI , хотя они могут использоваться в полной мере, только если документ имеет кодировку UTF-8 или UTF-16.
- Атрибут lang может иметь значение пустой строки или верного идентификатора языка, также как и атрибут xml:lang в XML.
HTML5 имеет несколько целей, которые отличает его от HTML4.
Согласованность в обработке неверных документов
Первичный - это согласованная, определенная обработка ошибок. Как вы знаете, HTML преднамеренно поддерживает "суп-тег" или способность писать неверный код и исправить его в действительный документ. Проблема в том, что правила для этого не записываются нигде. Когда новый поставщик браузеров хочет выйти на рынок, им просто нужно проверять неверные документы в разных браузерах (особенно IE) и реконструировать обработку ошибок. Если они этого не сделают, то многие страницы будут отображаться некорректно (оценки размещают примерно 90% страниц в сети как по крайней мере несколько искаженные).
Итак, HTML5 пытается обнаружить и кодифицировать эту обработку ошибок, чтобы разработчики браузеров могли стандартизировать и значительно сократить время и деньги, необходимые для постоянного отображения информации. Кроме того, долгое время после того, как HTML умер в формате документа, историки могут по-прежнему хотеть читать наши документы, и наличие полностью определенного алгоритма синтаксического анализа поможет в этом.
Улучшенные функции веб-приложений
Вторичной целью HTML5 является разработка способности браузера быть платформой приложений через HTML, CSS и Javascript. Многие элементы были добавлены непосредственно на язык, который в настоящее время (в HTML4) Flash или JS-хаки, такие как
Улучшенная семантика элементов
В HTML5 существует много других меньших усилий, таких как улучшенные семантические роли для существующих элементов ( и теперь фактически означает что-то другое, и даже и имеют неопределенную семантику это должно хорошо работать при анализе устаревших документов) и добавление новых элементов с полезной семантикой -
HTML 5 еще в разработке, но про него уже известно много интересного. Нововведения на первый взгляд кажутся противоречивыми, как будет обстоять дело в реальности – покажет время.
Синтаксис
HTML 5 будет иметь два синтаксиса – “custom” HTML и XML. HTML синтаксис определяет детализированные правила синтаксического анализа (включая “обработку ошибок”). Пользовательские агенты будут следовать этим правилам для документов, имеющих MIME тип text/html. Вот пример синтаксиса HTML:
Example paragraph
XML синтаксис совместим с документами XHTML1 и его реализациями. Чтобы использовать этот синтаксис нужно объявить MIME тип XML, а элементы должны быть выстроены согласно спецификации XML. Ниже приведен пример, который соответствует синтаксису XML:
Example paragraph
Кодировка символов
Для синтаксиса HTML разработчики могут использовать три способа установки кодировки: – на транспортном уровне. При использовании Content-Type HTTP заголовка, например. – используя символ Unicode Byte Order Mark (BOM) в начале файла. Этот символ обеспечивает сигнатуру используемого кодирования. – используя мета тег с атрибутом charset, который должен быть определен как первый дочерний элемент head. Обратите внимание, что для определения кодировки используется
Для синтаксиса XML разработчики должны руководствоваться правилами спецификаций XML.
Новые элементы
- section представляет часть документа или раздел
- article представляет независимую часть содержания для включения в документ статей
- aside представляет часть содержания, которая только частично связана с остальной страницей
- header представляет заголовок section
- footer – нижний колонтитул, может содержать информацию об авторе, авторском праве и так далее
- nav представляет раздел документа, предназначенный для навигации
- dialog может использоваться для выделения диалогов:
- figure может использоваться для связи заголовка с медиа контентом:
- audio и video для мультимедиа. Оба обеспечивают соответствующий API. Таким образом разработчики могут писать скрипты собственного пользовательского интерфейса, но также предусмотрен способ вызова стандартного API пользовательского агента. Вместе с этими элементами может быть использован source , если есть возможность организовать параллельные потоки.
- embed используется для контента plugin’ов.
- meter – для представления единиц измерений.
- time – дата и/или время.
- canvas используется для динамической отрисовки графики.
- command представляет команду, которую может вызвать пользователь.
- datagrid – интерактивное представление списка типа “дерево” или табличных данных.
- details представляет дополнительную информацию, которую пользователь может получить по требованию.
- datalist вместе с новым атрибутом list используется чтобы сделать combobox:
- datatemplate , rule , и nest обеспечивают механизм шаблонов (templating mechanism) для HTML.
- event-source используется для перехвата событий, посланных сервером.
- output представляет определенный тип вывода, например, от вычислений, сделанных через скрипт.
- progress представляет ход выполнения задачи, например, загрузки.
- Атрибут type элемента input теперь имеет следующие новые значения:
- datetime
- datetime-local
- date
- month
- week
- time
- number
- range
Идея относительно этих новых типов состоит в том, что пользовательский агент может обеспечить интерфейс для таких объектов как календарь (выбор даты), интеграции с адресной книгой и предоставить серверу данные в определенном формате. Это дает определенные преимущества как пользователям, так и разработчикам, поскольку пользовательский ввод проверяется перед посылкой на сервер браузером. Это означает, что разработчикам нет необходимости расходовать ресурсы на проверку введенных данных, что, в свою очередь, приводит к сокращению времени ожидания ответа.
Новые атрибуты
HTML 5 вводит несколько новых атрибутов для элементов, которые уже входили в HTML 4:
- элементы a и area получили новый признак ping, который определяет список URI адресов, которые должны пропинговаться при переходе по гиперссылке. Принцип функционирования пока до конца не ясен.
- элемент area теперь имеет атрибуты hreflang и rel
- base получил атрибут target
- атрибут value для li и атрибут start для элемента ol больше не deprecated
- meta получил атрибут charset
- новый атрибут autofocus может быть определен у input (кроме тех случаев, когда type атрибут – hidden ), select , textarea и button . Это обеспечивает способ передачи управления форме во время загрузки страницы
- атрибут form для input , output , select , textarea , button и fieldset позволяет связать элемент с более чем одной формой
- input , button и form получили атрибут replace , который определяет, что будет с элементом после отправки формы
- form , select и datalist имеют атрибут data , который учитывает автоматическое предзаполнение, в случае заполнения данными с сервера
- новый атрибут required применяется к input (кроме тех случаев, когда type атрибут – hidden , image или кнопка) и textarea . Он указывает обязательные для заполнения поля
- input и textarea имеют новый атрибут inputmode , который дает подсказку пользовательскому интерфейсу относительно того, какие данные ожидаются для ввода
- теперь можно disable (отключить) сразу целый fieldset , что не было возможно прежде
- элемент input имеет несколько новых атрибутов для определения ограничений: autocomplete , min , max , pattern и step , а также list , который может использоваться вместе с элементами select и datalist
- input и button также получили новый атрибут template , который может использоваться для шаблонов повторения
- элемент menu имеет три новых атрибута: type , label и autosubmit
- script имеет новый атрибут async , который влияет на загрузку и выполнение сценария
- элемент html имеет новый атрибут manifest , который указывает на кэш приложений, используемый вместе с API для автономных Web приложений
Несколько атрибутов из HTML 4 применяют ко всем элементам, поэтому их называют глобальными атрибутами: class , dir , id , lang , tabindex и title .
Появились также несколько новых глобальных атрибутов:
- атрибут contenteditable указывает, что элемент доступен для редактирования
- contextmenu может использоваться для указания на контекстное меню, созданное автором
- draggable может использоваться вместе с новым drag&drop API
- irrelevant указывает, что элемент еще или больше не актуален
Атрибуты для модели повторения (repetition model):
- repeat
- repeat-start
- repeat-min
- repeat-max
Отмененные элементы
Следующие элементы не включены в HTML 5, потому что их эффект достигается использованием CSS:
- basefont
- center
- strike
Следующие элементы не включенв в HTML 5, потому что их использование негативно сказывалось на удобстве и доступности:
- frame
- frameset
- noframes
Следующие элементы не включены, потому что использовались редко или они могут быть заменены другими элементами:
- acronym
- applet замещен object
- isindex
- dir замещен ul
Наконец noscript остался только в синтаксисе HTML, поскольку его использование предполагает разбор с помощью HTML парсера.
Отмененные атрибуты
- accesskey для a , area , button , input , label , legend и textarea
- rev и charset для link и a
- shape и coords для a
- longdesc для img и iframe
- target для link
- nohref для area
- profile для head
- version для map , img , object , form , iframe , a
- scheme для meta
- archive , classid , codebase , codetype , declare и standby для object
- valuetype и type для param
- charset и language для script
- summary для table
- headers , axis и abbr для td и th
- scope для td
Кроме того, HTML 5 не имеет следующих атрибутов, поскольку они лучше обрабатываются CSS:
- align для caption , iframe , img , input , object , legend , table , hr , div , h1-h6 , p , col , colgroup , tbody , td , tfoot , th , thead , tr и body
- alink , link , text и vlink для body
- background для body
- bgcolor для table , tr , td , th и body
- border для table , img и object
- cellpadding и cellspacing для table
- char и charoff для col , colgroup , tbody , td , tfoot , th , thead и tr
- clear для br
- compact для menu , ol и ul
- frame на table
- frameborder приписывают на iframe
- height для iframe , td и th
- hspace и vspace для img и object
- marginheight , marginwidth и scrolling для iframe
- noshade для hr
- nowrap для td и th
- rules для table
- size для hr , input и select
- style для всех элементов
- type для li , ol и ul
- valign для col , colgroup , tbody , td , tfoot , th , thead и tr
- width для hr , table , td , th , col , colgroup , iframe и pre
API
HTML 5 вводит множество API, которые должны помочь в создании Web приложений. Они могут использоваться вместе с новыми элементами.
- 2D drawing API , который может использоваться с новым элементом canvas
- API для проигрывания видео и аудио, который может использоваться с новыми элементами video и audio
- выделенная область памяти (Persistent storage) с поддержкой данных в виде ключ / значение и SQL данных
- API, который допускает автономную работу web приложений
- API, который позволяет web приложений регистрировать себя для определенных протоколов или типов MIME
- Editing API в сочетании с новым глобальным атрибутом contenteditable
- Drag&drop API в сочетании с атрибутом draggable
- Network API
- API, который выстраивает историю посещения, чтобы предотвратить нарушение функционирования back кнопки (Этот API имеет необходимые ограничения безопасности)
- Cross-document messaging (Передача сообщений между документами)
- события сервера (Server-sent events) в сочетании с новым элементом event-source
Расширение HTMLDocument
HTML 5 расширил интерфейс HTMLDocument. Интерфейс теперь реализован на всех объектах интерфейса Document. Его новые методы:
- getElementsByClassName()
- activeElement и hasFocus
- getSelection()
- designMode и execCommand() , которые используются главным образом для редактирования документов
Расширение к HTMLElement
Интерфейс HTMLElement также получил несколько расширений:
- getElementsByClassName()
- innerHTML
- classList введен для удобства доступа к className . Возвращаемый объект имеет методы has() , add() , remove() и toggle() для манипуляции классами элемента
В таблице 2.1 представлен список отличий.
Таблица 2.1 – Отличия HTML5 от HTML4.01 и XHTML1.0
|
HTML4.01 и XHTML1.0 |
|
|
Изменён синтаксис Встраивание SVG и MathML в text/html Новые
элементы: |
Новые компоненты ввода: date/time, email, url, search, number, range, tel, color Новые атрибуты: charset (в ), async (в script) Глобальные атрибуты, которые могут быть применены ко всем элементам: id, tabindex, hidden, data-* (пользовательские атрибуты данных) Элементы, которые будут исключены: , |
Полный список изменений в HTML5 представлен в обновляющемся рабочем проекте W3C «Отличия HTML5 от HTML4» (последняя версия от 9 декабря 2014 года.
Bootstrap 3
Bootstrap – свободный набор инструментов для создания сайтов и веб-приложений. Включает в себя HTML и CSS шаблоны оформления элементов веб-интерфейсов, включая JavaaScript расширения. Разработан компанией Twitter Inc.
Можно выделить следующие основные преимущества Bootstrap:
Выделяются следующие основные инструменты Bootstrap:
Сетки – заранее заданные колонки определенного размера, которые сразу можно использовать. Так же активно используется при написании адаптивного сайта.
Шаблоны – Фиксированный или резиновый шаблон документа.
Типографика – Описания шрифтов, определение классов для шрифтов, таких как коды, цитаты и т.п.
Меди – Управления изоражениями и видео.
Таблицы – Средства оформления таблиц, вплоть до добавления функциональности сортировки.
Формы – Классы для оформления форм и некоторых событий, происходящих с ними.
Навигация – Классы для оформления вкладок, меню, тулбара и т.д.
Алерты – Оформление диалоговых оконо, подсказок и всплывающих окон .
HTML5 привлёк к себе огромное внимание веб-разработчиков. И так отличия HTML5 от его предшественников.
Новые возможности этого стандарта предназначены для создания интерактивных веб-приложений с максимальным использованием мультимедийного контента, работы с программными интерфейсами и структурирования документов. язык интерактивный веб приложение
Структурные возможности HTML5 создают структуру веб-документа более простой и понятной, а код намного «чище». Вместо контейнеров div, использующихся в HTML 4.01 можно использовать такие теги как header «заголовок», nav «навигация», section «раздел документа», article «содержимое сайта», aside «содержимое сайта» и footer «подвал сайта».
Новые элементы позволяют лучше описывать верхний и нижние колонтитулы, блоки сайта, текста и другие части веб-сайта. Эти нововведения используются для генерации оглавления и организации более эффективной и простой навигации по веб-странице, не засоряя при этом код другими второстепенными тегами. Приведём примеры:
Пример 1. Вместо громоздкой записи HTML4.01:
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">,
в HTML5 это будет выглядеть гораздо короче:
.Пример 2. В HTML4 для создания заголовка необходим код:
<h1>Мой заголовок</h1>
текст
В HTML5 используется элемент <h1>Заголовок</h1> Свой текст Как видим, код становится проще и понятнее. Мультимедийные возможности в HTML5 исключают использование Adobe Flash и других сторонних программ. Для добавления музыкальных и видео файлов можно воспользоваться любым браузером, поддерживающим HTML5, когда в HTML 4.0 и HTML 4.01 необходимо наличие дополнительных программ. Ввод данных в формах HTML5 стал намного безопасней, правильность данных контролируется непосредственно во время ввода, тогда, как в HTML 4 проверка правильности введённых данных осуществляется уже после отправки документа, что не создаёт определённые неудобства пользователям. Текст и изображение в HTML5 становятся единым целым, что заметно увеличивает количество возможностей и позволяет создавать весьма впечатляющие, красочные веб-сайты без сторонних скриптов. Анимации и графика. Здесь разработчики могут воспользоваться функцией Canvas, которая способна заменить Adobe Flash и подобные ему дополнительные программы. Появляется возможность разместить на своём сайте анимацию, графические элементы и даже небольшие игры, непосредственно на веб-сайте. Преимущества для конечного пользователя. Здесь произошёл ряд полезных изменений: Не требуется установка многочисленных сторонних программ. Совместимость HTML5 в отличие от своих предшественников, доработана. Он совместим не только на персональных компьютерах и ноутбуках, но ещё и с планшетами, смартфонами, современными моделями DVD плееров, телевизоров, консолей, которые обеспечивают доступ к интернет ресурсам. В HTML5 единый стандарт отображения контента, независимо от типа браузера.


