Ниже приводится выдержка из нашей книги « HTML5 и CSS3 для реального мира», 2-е издание , написанной Алексисом Гольдштейном, Луи Лазарисом и Эстель Вейль. Копии продаются в магазинах по всему миру, или вы можете купить их в электронном виде здесь .
То, что мы понимаем сегодня как HTML5, имеет относительно бурную историю. Вы, наверное, уже знаете, что HTML является преобладающим языком разметки, используемым для описания контента или данных в World Wide Web (другой менее используемый язык разметки — XML). HTML5 — это последняя итерация языка HTML5, включающая новые функции, улучшения существующих функций и API-интерфейсы JavaScript.
Тем не менее, HTML5 не является переформулировкой предыдущих версий языка — он включает в себя все допустимые элементы из HTML4 и XHTML 1.0. Кроме того, он был разработан с учетом некоторых принципов, чтобы гарантировать, что он работает практически на любой платформе, совместим со старыми браузерами и изящно обрабатывает ошибки. Краткое изложение принципов проектирования, которыми руководствовалось создание HTML5, можно найти на странице «Принципы проектирования HTML» W3C.
Прежде всего, HTML5 включает переопределения существующих элементов разметки в дополнение к новым элементам, которые позволяют веб-дизайнерам более выразительно описывать содержание своих страниц. Зачем засорять вашу страницу элементами div
article
section
header
footer
Термин «HTML5» также используется для обозначения ряда других новых технологий и API. Некоторые из них включают в себя рисование с использованием элемента canvas
video
audio
В этой книге мы рассмотрим ряд этих технологий и многое другое.
Примечание: интерфейс прикладного программирования
API означает интерфейс прикладного программирования. Думайте об API так же, как вы думаете о графическом пользовательском интерфейсе или графическом интерфейсе, за исключением того, что вместо того, чтобы быть интерфейсом для людей, это интерфейс для вашего кода. API предоставляет вашему коду набор «кнопок» (предопределенных методов), которые он может нажимать для вызова желаемого поведения в системе, библиотеке программного обеспечения или браузере.
Команды на основе API — это способ абстрагироваться от более сложной работы, выполняемой в фоновом режиме (или иногда сторонним программным обеспечением). Некоторые из API, связанных с HTML5, будут представлены и обсуждены в последующих разделах этой книги.
В целом, вам не следует пугаться, если у вас мало опыта работы с JavaScript или другими API. Хотя было бы полезно иметь некоторый опыт работы с JavaScript или другими языками, это не обязательно. В любом случае, мы постепенно проведем вас через части нашей книги, посвященные написанию сценариев, чтобы вы не почесали голову!
На момент написания статьи прошло уже более пяти лет с тех пор, как HTML5 широко использовался с точки зрения семантических элементов и различных API. Поэтому классифицировать HTML5 как «новый» набор технологий уже не правильно, но он по-прежнему созревает, и существуют постоянные проблемы, которые продолжают устраняться (например, ошибки в браузерах и несовместимая поддержка в браузерах и платформах).
Следует также отметить, что некоторые технологии никогда не были частью HTML5 (например, CSS3 и WOFF), но иногда были объединены под одним ярлыком. Это спровоцировало использование широких, всеобъемлющих выражений, таких как «HTML5 и связанные с ними технологии». В интересах краткости, а также риска разжигания горячих споров, мы обычно будем именовать эти технологии совместно как «HTML5. »
Как мы здесь оказались?
Индустрия веб-разработки значительно развилась за относительно короткий период времени. В конце 1990-х годов веб-сайт с изображениями и привлекательным дизайном считался лучшим в плане веб-контента и презентации.
Сегодня ландшафт совсем другой. Простые, ориентированные на производительность, основанные на Ajax веб-сайты (обычно их называют «веб-приложениями»), использующие сценарии на стороне клиента для выполнения критически важных функций, становятся все более распространенными. Сегодня веб-сайты часто напоминают автономные программные приложения, и все большее число разработчиков рассматривают их как таковые.
Попутно веб-разметка развивалась. HTML4 в конце концов уступил XHTML, который на самом деле является просто HTML4 со строгим синтаксисом в стиле XML. HTML5 стал наиболее используемой версией разметки, и теперь мы редко, если вообще когда-либо, видим новые проекты, созданные с использованием HTML4 или XHTML.
HTML5 изначально начинался как две разные спецификации: Web Forms 2.0 и Web Apps 1.0. Оба были результатом изменения веб-ландшафта и необходимости в более быстрых и эффективных поддерживаемых веб-приложениях. В основе веб-приложений лежат формы и функциональность, подобная приложениям, так что это было естественное направление для спецификации HTML5. В конце концов, две спецификации были объединены, чтобы сформировать то, что мы теперь называем HTML5.
В течение короткого времени шла дискуссия о выпуске XHTML 2.0, но этот проект давно был заброшен, чтобы позволить сосредоточиться на гораздо более практичном HTML5.
Настоящий HTML5, пожалуйста, встаньте?
Поскольку спецификация HTML5 разрабатывается двумя различными органами (WHATWG и W3C), существует две версии спецификации. W3C (или World Wide Web Consortium), с которым вы, вероятно, знакомы: это организация, которая поддерживает исходные спецификации HTML и CSS, а также множество других связанных с веб-стандартами стандартов, таких как SVG (масштабируемая векторная графика) и WCAG ( Правила доступности веб-контента).
WHATWG (также известная как Рабочая группа по разработке гипертекстовых веб-приложений) была сформирована группой людей из Apple, Mozilla и Opera после того, как встреча W3C в 2004 году оставила их в унынии. Они чувствовали, что W3C игнорирует потребности производителей и пользователей браузеров, сосредоточившись на XHTML 2.0 вместо того, чтобы работать над обратно совместимым стандартом HTML. Поэтому они ушли самостоятельно и разработали спецификации веб-приложений и веб-форм, которые мы обсуждали, которые затем были объединены в спецификацию, называемую HTML5. Увидев это, W3C в конце концов сдался и создал свою собственную спецификацию HTML5 на основе спецификации WHATWG.
Это может показаться немного запутанным. Да, есть некоторая политика за кулисами, которую мы, как дизайнеры и разработчики, не можем контролировать. Но должно ли нас беспокоить, что есть две версии спецификации? Короче нет.
Версию спецификации WHATWG можно найти по адресу http://www.whatwg.org/html/ , а в январе 2011 года она была переименована в «HTML» (без «5»). Теперь он называется «жизненным стандартом», что означает, что он будет постоянно развиваться и больше не будет ссылаться на увеличивающиеся номера версий.
Версия WHATWG содержит информацию, касающуюся только HTML-функций, в том числе новых в HTML5. Кроме того, WHATWG разрабатывает отдельные спецификации, которые охватывают соответствующие технологии. Эти спецификации включают Microdata, Canvas 2D Context, Web Workers, Web Storage и другие.
Версию спецификации W3C можно найти по адресу http://www.w3.org/html/wg/drafts/html/master/ , а с отдельными спецификациями для других технологий можно ознакомиться через http: //dev.w3. .org / html5 / . [1]
Так в чем же разница между спецификацией W3C и WHATWG? Помимо названия («Живой стандарт» против «HTML5.1»), версия WHATWG является немного более неформальной и экспериментальной (и, возможно, некоторые утверждают, более дальновидной). Но в большинстве мест они идентичны, поэтому любой из них можно использовать в качестве основы для изучения новых элементов HTML5 и связанных с ними технологий. [2]
Почему я должен заботиться о HTML5?
Как уже упоминалось, в основе HTML5 лежит ряд новых семантических элементов, а также несколько связанных технологий и API. Эти дополнения и изменения в языке были введены с целью позволить разработчикам создавать веб-страницы, которые легче кодировать, использовать и получать к ним доступ.
Эти новые семантические элементы, наряду с другими стандартами, такими как WAI-ARIA и Microdata (которые мы рассматриваем в Приложении B и Приложении C соответственно), помогают сделать наши документы более доступными как для людей, так и для машин, что дает преимущества как для доступности, так и для поиска. оптимизация двигателя.
Семантические элементы, в частности, были разработаны с учетом динамического Интернета, с особым упором на то, чтобы сделать страницы более доступными и модульными. Мы поговорим об этом подробнее в следующих главах.
Наконец, API, связанные с HTML5, помогают улучшить ряд методов, которые веб-разработчики используют на протяжении многих лет. Многие общие задачи теперь упрощены, что дает разработчикам больше возможностей. Кроме того, внедрение HTML5 аудио и видео означает, что при публикации мультимедийного контента в Интернете будет меньше зависеть от стороннего программного обеспечения и плагинов.
В целом, есть веские причины, чтобы начать изучать новые функции и API-интерфейсы HTML5, и мы обсудим больше этих причин по мере изучения этой книги.
[1] Технически, версия W3C была обновлена до новой версии: «HTML5.1» . Для простоты мы продолжим называть обе версии «HTML5». Кроме того, на веб-сайте W3C есть вики-страница, посвященная чему-то, называемому « HTML.next », в которой обсуждаются некоторые отдаленные возможности HTML, которые мы не рассмотрим в этой книге.
[2] W3C опубликовал документ, в котором подробно описываются многие различия между этими двумя спецификациями, но большинство из них не очень актуальны или полезны.