Отличия HTML5 от предыдущих версий. Отличия html5 от html4.01 и xhtml1.0 Разница между html и html5
HTML5 имеет несколько целей, которые отличает его от HTML4.
Согласованность в обработке неверных документов
Первичный - это согласованная, определенная обработка ошибок. Как вы знаете, HTML преднамеренно поддерживает "суп-тег" или способность писать неверный код и исправить его в действительный документ. Проблема в том, что правила для этого не записываются нигде. Когда новый поставщик браузеров хочет выйти на рынок, им просто нужно проверять неверные документы в разных браузерах (особенно IE) и реконструировать обработку ошибок. Если они этого не сделают, то многие страницы будут отображаться некорректно (оценки размещают примерно 90% страниц в сети как по крайней мере несколько искаженные).
Итак, HTML5 пытается обнаружить и кодифицировать эту обработку ошибок, чтобы разработчики браузеров могли стандартизировать и значительно сократить время и деньги, необходимые для постоянного отображения информации. Кроме того, долгое время после того, как HTML умер в формате документа, историки могут по-прежнему хотеть читать наши документы, и наличие полностью определенного алгоритма синтаксического анализа поможет в этом.
Улучшенные функции веб-приложений
Вторичной целью HTML5 является разработка способности браузера быть платформой приложений через HTML, CSS и Javascript. Многие элементы были добавлены непосредственно на язык, который в настоящее время (в HTML4) Flash или JS-хаки, такие как
Улучшенная семантика элементов
В HTML5 существует много других меньших усилий, таких как улучшенные семантические роли для существующих элементов ( и теперь фактически означает что-то другое, и даже и имеют неопределенную семантику это должно хорошо работать при анализе устаревших документов) и добавление новых элементов с полезной семантикой -
В статье кратко рассмотрены различия html5 и html 4.
Синтаксис, кодировка символов, новые элементы, новые атрибуты, API. Также будуn рассмотрены отменённые атрибуты и ряд значительных изменений.
HTML 5 еще в разработке, но про него уже известно много интересного. Нововведения на первый взгляд кажутся противоречивыми, как будет обстоять дело в реальности - покажет время.
Синтаксис
HTML 5 будет иметь два синтаксиса - "custom" HTML и XML. HTML синтаксис определяет детализированные правила синтаксического анализа (включая "обработку ошибок"). Пользовательские агенты будут следовать этим правилам для документов, имеющих MIME тип text/html. Вот пример синтаксиса HTML: XML синтаксис совместим с документами XHTML1 и его реализациями. Чтобы использовать этот синтаксис нужно объявить MIME тип XML, а элементы должны быть выстроены согласно спецификации XML. Ниже приведен пример, который соответствует синтаксису XML:
01 xml version = "1.0" encoding = "UTF-8" ?>
03 < head >
04 < title >Example document title >
05 head >
06 < body >
07 < p >Example paragraph p >
08 body >
09 html >
Кодировка символов
Для синтаксиса HTML разработчики могут использовать три способа установки кодировки: - на транспортном уровне. При использовании Content-Type HTTP заголовка, например. - используя символ Unicode Byte Order Mark (BOM) в начале файла. Этот символ обеспечивает сигнатуру используемого кодирования. - используя мета тег с атрибутом charset, который должен быть определен как первый дочерний элемент head. Обратите внимание, что для определения кодировки используется
Для синтаксиса XML разработчики должны руководствоваться правилами спецификаций XML.
Новые элементы
- section представляет часть документа или раздел
- article представляет независимую часть содержания для включения в документ статей
- aside представляет часть содержания, которая только частично связана с остальной страницей
- header представляет заголовок section
- footer - нижний колонтитул, может содержать информацию об авторе, авторском праве и так далее
- nav представляет раздел документа, предназначенный для навигации
- dialog может использоваться для выделения диалогов:
- 01 < dialog >
- figure может использоваться для связи заголовка с медиа контентом:
- audio и video для мультимедиа. Оба обеспечивают соответствующий API. Таким образом разработчики могут писать скрипты собственного пользовательского интерфейса, но также предусмотрен способ вызова стандартного API пользовательского агента. Вместе с этими элементами может быть использован source , если есть возможность организовать параллельные потоки.
- embed используется для контента plugin"ов.
- meter - для представления единиц измерений.
- time - дата и/или время.
- canvas используется для динамической отрисовки графики.
- command представляет команду, которую может вызвать пользователь.
- datagrid - интерактивное представление списка типа "дерево" или табличных данных.
- details представляет дополнительную информацию, которую пользователь может получить по требованию.
- datalist
вместе с новым атрибутом list
используется чтобы сделать combobox:
1 < input list = browsers >
2 < datalist id = browsers >
3 < option value = "Safari" >
4 < option value = "Internet Explorer" >
5 < option value = "Opera" >
6 < option value = "Firefox" >
7 datalist >
- datatemplate , rule , и nest обеспечивают механизм шаблонов (templating mechanism) для HTML.
- event-source используется для перехвата событий, посланных сервером.
- output представляет определенный тип вывода, например, от вычислений, сделанных через скрипт.
- progress представляет ход выполнения задачи, например, загрузки.
- Атрибут type
элемента input
теперь имеет следующие новые значения:
- datetime
- datetime-local
- date
- month
- week
- time
- number
- range
02 < dt > Costello
03 < dd > Look, you gotta first baseman?
04 < dt > Abbott
05 < dd > Certainly.
06 < dt > Costello
07 < dd > Who"s playing first?
08 < dt > Abbott
09 < dd > That"s right.
10 < dt > Costello
11 < dd > When you pay off the first baseman every month, who gets the money?
12 < dt > Abbott
13 < dd > Every dollar of it.
14 dialog >
Новые атрибуты
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 приложений
Появились также несколько новых глобальных атрибутов:
- атрибут contenteditable указывает, что элемент доступен для редактирования
- contextmenu может использоваться для указания на контекстное меню, созданное автором
- draggable может использоваться вместе с новым drag&drop API
- irrelevant указывает, что элемент еще или больше не актуален
- repeat
- repeat-start
- repeat-min
- repeat-max
Отмененные элементы
Следующие элементы не включены в HTML 5, потому что их эффект достигается использованием CSS:- basefont
- center
- strike
- frame
- frameset
- noframes
- acronym
- applet замещен object
- isindex
- dir замещен ul
Отмененные атрибуты
- 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
- 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() для манипуляции классами элемента
Многие из вас наверное уже немного знакомы с этими стандартами языка гипертекста или хотя бы слышали о них. Из старых версий самой удачной, я считаю, является HTML4.01. Почему нет упоминания о XHTML 1.0? - спросите вы. Потому что синтаксис написания кода XHTML 1.0 очень схож с предыдущей версией HTML4.01 . Добавились лишь определенные правила, которые следует соблюдать.
Что же нового появилось в новом стандарте HTML5 ? Очень много! Во-первых: появились новые структурные элементы (около 28 штук), благодаря которым улучшилась семантика написания кода; во-вторых: появилась поддержка аудио и видео файлов (в предыдущих версиях такого не наблюдалось!); ну, и наконец, в-третьих: появилась возможность рисования в новой среде canvas с помощью JavaScript. По последнему пункту в интернете ходит много всяких споров, насчёт: «Заменит ли HTML5 всеми любимый FLASH?» Пока что - нет, не заменит! А дальше поживем увидим.
Так какое же главное отличие HTML5 от своих предшественников? В этом вопросе можно разобраться взглянув на два разных кода, которые должны одинаково отображаться в окне браузера.
Код HTML4.01:
Шапка сайта
Пост №1
Текст первого поста.
Пост №2
Текст второго поста.
Код HTML5:
Шапка сайта
Пост №1
Текст первого поста.
Пост №2
Текст второго поста.
Как видите код HTML5 проще. Если в первом случае мы использовали div, который сообщал браузеру что перед нами находится простой блок, то во-втором случае, благодаря новым тегам мы сообщаем браузеру, что перед нами находятся блок навигации (тег nav), блок поста (тег article), блок шапки (тег header) и подвал (тег footer).
Вообще говоря про новые теги, могу сказать большее:
Веб-разработчики HTML5 проводили исследования, которые позволили выявить самые популярные названия классов и идентификаторов применяемых к тегам, отсюда и появились названия для новых тегов.
В отличие от предыдущих версий синтаксис написания кода стал семантическим. Осталось дождаться когда все браузеры будут полностью поддерживать HTML5.
P/s: скажу немного новичкам: «Если вы затрудняетесь с ответом: с какого языка начать учить, то начните учить с азов (HTML4.01). Я думаю, вы его быстро освоите!»
Люди, плохо знакомые со сферой веб-дизайна, часто слышат слово “разметка” и задаются вопросом, что оно означает и как отличается от более широко известного термина “код”. В основном язык разметки предназначен для обработки, определения и представления информации о тексте; теги стилей и текстовые аннотации записываются в файлах стилей, чтобы упростить работу с текстом для компьютера. Исторически сложилось, что термин “разметка” произошел от английского marking-up , а сам процесс от manuscript marking-up – процесса разметки рукописи перед отдачей ее в печать. Здесь речь пойдет о наиболее часто используемом языке разметки – HTML. Несколько лет назад для этого языка было выпущено обновление под названием HTML5. В этом руководстве мы расскажем, что такое HTML5 и поведаем о различиях между HTML и HTML5.
Что такое HTML?
HTML можно назвать основным языком Всемирной паутины. Большинство веб-страниц, размещенных в Интернете, написаны в какой-либо из вариаций HTML. С помощью него разработчики определяют то, как мультимедиа, текст или гиперссылки будут отображаться среди другого контента в браузере. Начиная от элементов, которые устанавливают связи с вашим документом (гипертекстом), до элементов которые делают эти документы интерактивными (например формы) – все это является составными частями HTML.
Стандарт HTML был разработан W3C или Консорциумом Всемирной Паутины в 1997 году. В HTML для определения структуры текста используются теги; теги и элементы выделяются с использованием символов < и >. Вот лишь некоторые из примеров для ранее упомянутых тегов – это заголовки, таблицы, абзацы и т. д. В свою очередь, браузеры отвечают за визуализацию содержимого страницы с помощью этих тегов. HTML не был единственным стандартом веб-разработки. В первые дни развития Интернета все теги контента и стили присутствовали на одном гигантском, громоздком (и довольно сложном) языке. Со временем W3C пришла к решению о необходимости разделения контента и стиля страницы; Это привело к созданию таблиц стилей или CSS. В настоящее время теги, которые используются для определения стиля текста (например FONT), нежелательны и почти не используются, на их место пришли таблицы стилей и только теги определения содержимого (например H1) по-прежнему составляют ядро HTML.
С течением времени в HTML было много обновлений, и в настоящее время его новейшей версией является HTML5. HTML5, конечно прежде всего является языком разметки, но он приобрел множество функций в отличии от HTML и устранил некоторые из строгостей, присутствовавших в XHTML. Хотя HTML5 обновляется практически каждый день, однако новых выпущенных пронумерованных выпусков нет. Основным различием между HTML и HTML5 может стать то, что ни аудио, ни видео не являются составной частью HTML, тогда как они оба могут рассматриваться как неотъемлемые части HTML5.
Чтобы полностью ответить на вопрос что такое HTML, нужно затронуть и этапы его развития. Так как с течением времени он неоднократно изменялся.
Единственной постоянной вещью в области информационных технологий является то, что периодические обновления и изменения неизбежны. Ни один язык не может избежать обновлений или новых выпусков. HTML не является исключением. HTML5 был выпущен с целью улучшения работы Всемирной паутины как для разработчиков, так и для обычных пользователей. Как уже упоминалось, самым большим преимуществом, которое имеет HTML5 над своим ненумерованным предшественником, является то, что у него есть поддержка аудио и видео высокого уровня, которая не была частью спецификации в предыдущих HTML. Другие различия между HTML и HTML5:
- SVG, canvas и другая виртуальная векторная графика поддерживаются в HTML5, тогда как в HTML использование векторной графики стало возможным только при использовании его в сочетании с различными технологиями, такими как Flash, VML, Silver-light и т.д.
- HTML5 использует базы данных SQL и кеш приложений для временного хранения данных, тогда как в HTML для этого используется только кэш браузера.
- Еще одно отличие между HTML и HTML5, о котором стоит упомянуть: первый не позволяет запуск JavaScript в коде (вместо этого он работает в потоке интерфейса браузера), тогда как последний обеспечивает полную поддержку JavaScript для запуска в фоновом режиме.
- HTML5 не основан на SGML, и это позволяет ему иметь улучшенные правила синтаксического анализа, которые обеспечивают улучшенную совместимость.
- В HTML5, в тексте могут использоваться встроенные MathML и SVG, тогда как это невозможно в HTML.
- Некоторые из устаревших элементов были полностью удалены: isindex, noframes, acronym, applet, basefont, dir, font, frame, frameset, big, center, strike, tt.
- HTML5 поддерживает новые виды элементов управления, к примеру, dates and times, email, number, range, tel, url, search и т.д.
- В HTML появилось много новых элементов. Вот некоторые из самых важных: summary, time, aside, audio, command, data, datalist, details, embed, wbr, figcaption, figure, footer, header, article, hgroup, bdi, canvas, keygen, mark, meter, nav, output, progress, rp, rt, ruby, section, source, track, video.
Основные преимущества HTML5 для разработчиков
HTML5 предоставляет для разработчиков больше гибкости при разработке дизайна сайтов, и в этой сфере есть значительные улучшения, о которых стоит упомянуть:
- Постоянная обработка ошибок:
Большинство браузеров поддерживают парсинг структурно или синтаксически неправильного HTML кода, но до недавнего времени для этого не было стандартного процесса. Это означает, что разработчикам новых браузеров необходимо производить тесты неверных HTML документов для создания более улучшенного процесса обработки ошибок. Постоянная обработка ошибок в HTML5 сыграла в этом процессе огромное значение.
Улучшенные алгоритмы парсинга, которые используются в HTML5 имеют неоценимые преимущества. Исследования показывают, что около 90% сайтов могут содержать некорректно написанный код, поэтому очень важно обрабатывать эти ошибки. Кроме того, присущая HTML5 обработка ошибок сохраняет разработчикам много денег и массу времени.
- Улучшенная семантика для элементов:
Для упрощения и улучшения понимания кода были внесены улучшения в семантические роли различных существующих элементов. Section, article, nav и header – это новые элементы, которые заменили большинство из ныне устаревших div элементов. Это сделало процесс обработки ошибок менее сложным.
- Расширенная поддержка функций веб-приложений:
Одной из главных целей HTML5 было создание возможности функционирования браузеров в качестве платформы для приложений. Веб-сайты в прошлом были намного менее сложными, но со временем громоздкость возрастала. HTML5 предоставляет разработчикам расширенный контроль над производительностью своих сайтов. Раньше разработчикам приходилось использовать обходные пути, поскольку многие серверные технологии и браузерные расширения отсутствовали. Теперь, при использовании HTML5 нет смысла использовать какие-либо JS или Flash расширения (как это было в HTML4), поскольку в HTML5 присутствуют элементы, которые обеспечивают все эти функции.
- Создание мобильных сайтов стало проще:
Даже сегодня, создание мобильной версии сайта, это головная боль для разработчика. Увеличение популярности смартфонов в последние десятилетия создало необходимость в улучшении стандартов HTML. Сегодня пользователи хотят иметь доступ к веб-ресурсам в любое время и с помощью любого устройства, что накладывает определенные обязательства на разработчиков. HTML5 сделал в этом плане значительные улучшения, благодаря тому, что код HTML5 теперь лучше поддерживается маломощными электронными устройствами, такими как смартфоны и планшеты.
- Элемент canvas:
Одной из самых обсуждаемых особенностей HTML5 является элемент
Используя элемент canvas разработчики могут рисовать с помощью скриптов (например JavaScript) графические изображения с применением различных цветов. Стоит упомянуть, что canvas это обычный графический контейнер и для показа изображения необходимо выполнение скрипта. Вот пример использования JavaScript в сочетании с canvas:
var c = document.getElementById(“TestCanvas”); var context = c.getContext(“2d”); context.fillStyle = “#FF0000”; context.fillRect(0,0,140,75);
- Элемент m enu :
Недавно добавленные элементы