Html5 что нового. Знакомство с HTML5

Что же такого нового в HTML5, чего не было в HTML4?

А новое в принципе все. Спецификация HTML5 несет в себе множество изменений разного уровня и важности. Фундаментальные изменения можно разделить на несколько блоков:

  • Семантика языка. В HTML5 появился ряд новых семантических тегов, позволяющих более осмысленно организовывать внутреннюю структуру веб-страниц.

Рассмотрим наиболее известные из них:

  • nav - служит для создания панели навигации;
  • aside - является объединяющим тэгом, более всего подходящим для выделения сайдбара. В него могут входить как блоки nav, так и другие элементы, не являющиеся навигационными (рекламные баннеры, фотография автора, кнопки социальных сетей и т.д.);
  • section - также объединяющий тэг. Причем он может выступать в разных ролях: либо разделять страницу на несколько тематических областей, либо разделять на отдельные секции непосредственно статью на странице;
  • article - служит для разбивки страницы на отдельные статьи. Оба тэга section и article обладают рядом интересных особенностей. Например, вы можете теперь смело использовать заголовок первого уровня H1 на одной странице несколько раз, что ранее было недопустимо;
  • hgroup - тэг призван группировать заголовки страницы в одну логическую единицу;
  • video - служит для простой вставки видео на страницы сайта;
  • audio - также предназначен для простой вставки медиа-контента на страницы сайта;
  • canvas - создает область, в которой при помощи JavaScript можно рисовать разные объекты, выводить изображения, трансформировать их и менять свойства.

Про остальные тэги можно узнать из htmlbook.ru .

  • Мультимедиа . HTML5 теперь из коробки поддерживает мультимедийный контент (аудио и видео проигрыватель) в HMTL-разметке - с соответствующим API для управления воспроизведением и кодеками.
  • Графика . Работать с графикой стало заметно проще, благодаря тэгу canvas и специальному JavaScript API для работы с ним. Также в HTML5 официально включен тэг svg, позволяющий внедрять векторную графику, описываемую соответствующим веб-стандартом (SVG, Scalable Vector Graphics).
  • Веб-формы. Новые элементы веб-формы: как типы, так и атрибуты, позволяющие расширить возможности традиционных форм встроенными средствами, без использования дополнительных библиотек для валидации вводимых данных, подсказок в формах.
  • JavaScript API. API для работы с графикой и мульмедиа, новые расширенные возможности по перемещению объектов и работе с историей переходов (History API), а также ряд мелочей, вроде возможности сделать контент редактируемым прямо в текущем месте с помощью Content Editable атрибутов.
  • Многое другое. Усовершенствованные сетевые коммуникации. Существенно улучшенное хранение данных. Средства Web Worker для исполнения фоновых процессов. Интерфейс WebSocket для установки постоянного соединения между резидентным приложением и сервером. Повышенная скорость сохранения и загрузки страниц. Поддержка CSS3 при управлении пользовательским интерфейсом, что обеспечивает контентную ориентированность HTML5.

Итак, очевидно, что формат HTML5 демонстрирует принципиально новый подход к созданию эффектной и запоминающейся графики, интерактивных элементов и прочих составляющих качественного веб-дизайна и интерфейса. Это дает несомненное преимущество – возможность отказа от flash-элементов, которые создают определенные трудности в загрузке страниц. Вместе с этим, определенное время на загрузку таких страниц все же требуется. Кроме того, для корректной работы с HTML5 необходим компьютер, с соответствующими системными мощностями, да и разработчики браузеров ленятся добавлять полную поддержку всех возможностей HTML5.

С выходом HTML5 , в HTML добавилось много новых функций. И что еще лучше, некоторые браузеры уже поддерживают часть этих функций, когда другие еще двигаются к этому. Вы можете следить за добавлением этих функций в браузеры на этой странице .

1. Новый Doctype и Charset.

Одно из достоинств HTML5 – это его простота.

Да, вот и все. Буквально два слова. Это простота объясняется, возможно, тем что HTML5 существует сам по себе, а не остается частью SGML.

Charset так же очень просто, используется utf-8, и задается так же, буквально одним тегом:

2. Новая структура

HTML5 понимает, что веб страницы имеет структуру, так же как, например, книга. Обычно это навигация, сам контент, боковое меню (сайдбар) и заглавную часть. И в HTML5 предусмотрены теги для всех этих элементов.

  • – определяет разделы страницы
  • – определяет заголовок страницы
  • – определяет нижний колонтитул страницы
  • – определяет навигацию по странице
  • – определяет статью или основной контент на странице
  • – определяет дополнительный контент, боковую панель на странице
  • – определяет изображение, аннотацию статьи
3. Новые встроенные элементы.

Эти новые элементы определяют некоторые базовые концепции и обозначают элементы страницы:

  • – для обозначения содержимого
  • – для обозначения времени или даты
  • – для обозначения некоторых измерений, например дискового пространства
  • – для обозначения ваших успехов и продвижения
4. Новая поддержка динамических страниц

HTML 5 был разработан для упрощения задач веб-разработчиков, по-этому появилось много новых возможностей для поддержки динамических страниц.

  • Контекстное меню – HTML 5 будет поддерживать создание и использование контекстного меню на веб-страницах и приложениях
  • асинхронный атрибут – этот тег указует браузеру, что сценарий должен быть загружен асинхронно, так что он не замедлит нагрузки и отображения остальной части страницы.
  • – содержит подробную информацию об элементе.
  • – создает таблицу, которая создается из базы данных или другого источника динамической страницы
  • – старые теги вернулись, позволяя создавать системы меню на ваших веб-страницах
  • – определяет действия, которые должны произойти, когда динамический элемент активируется
5. Новые типы форм

HTML5 поддерживает все старые типы форм, но так же добавлены и новые:

  • datetime
  • datetime-local
  • month
  • number
  • range
  • email
6. Новые элементы

Появились некоторые новые элементы в HTML5:

  • – элемент, который позволяет вам использовать JavaScript на веб-страницах. Это может позволить вам добавить изображения или графики в подсказки или просто создать динамическую графику на странице “на ходу”.
  • – добавляет видео на веб-страницу.
  • – добавляет звук на веб-страницу.
7.Удаленные элементы

Существуют так же элементы HTML4, которые больше не могут использоваться в HTML5. Большинство из них давно устарели, по-этому такие действия не удивительны.

HTML5 – новое поколения . С момента выхода рекомендации HTML 4.01 прошло уже более 10 лет (1999 год), а, стало быть, изменений и дополнений стоит ожидать достаточно много. Спецификация HTML5 на данный момент еще находится на стадии разработки. Консорциум всемирной паутины не разрабатывает стандарты, а выпускает лишь рекомендации. Начинается все с рабочих обсуждений, потом инициируется рабочий проект, потом выпускается кандидат на роль рекомендации и только потом спецификация окончательно получает статус рекомендации. Сейчас работы над HTML5 находятся еще на стадии рабочего проекта. Не смотря на это, большинство наиболее популярных интернет браузеров уже частично поддерживают нововведения HTML5. Перед тем, как сделать краткий их обзор повторюсь, что реализуют эту функциональность далеко не все браузеры и пока еще не в полном объеме. Сегодня мы можем рассчитывать на то, что в той или иной степени HTML5 поддерживают Opera, Chrome, Firefox, Safari и Internet Explorer.

Что нового в HTML5

А нового действительно много. Теперь веб-разработчики получат целый ряд дополнительных возможностей, таких как рисование геометрических фигур на веб-холсте, встроенную возможность перетаскивания элементов, воспроизведение видео и аудио файлов (раньше это можно было сделать только с использованием plug-in компонентов, таких как Adobe Flash Player) и многое другое, о чем будет сказано чуть позже. Для начала хотелось бы сказать пару слов об общих тенденциях развития HTML.

Та часть спецификации HTML5, которая “торчит” в виде новых тегов – это лишь “верхушка айсберга”. Большинство дополнительных возможностей HTML5 доступно только с использованием языка программирования сценариев , который является основой веб-программирования на стороне клиента. Если взять ту же функциональность рисования, реализованную с использованием тега , то речи не идет о “разметке рисунка” с использованием тегов геометрических фигур, как можно было бы предположить. Разметка холста заканчивается размещением элемента canvas на странице и все. Само рисование – это функция JavaScript, которая, получив доступ к холсту, будет выводить на нем фигуры примерно так же, как обычные приложения под Windows выводят графику на окна через интерфейсы GDI (Graphics Device Interface). Таким образом, спецификация HTML5 предъявляет достаточно серьезные требования к интернет браузерам в части реализации работы с JavaScript, которые во многом регламентируют программный интерфейс () работы с объектной моделью документа (DOM). Это не может не радовать, поскольку многие знают, что разные браузеры могут организовывать работу с объектной моделью через программные интерфейсы, отличающиеся друг от друга. Отчасти, спецификация программного интерфейса - это заслуга организации Web Hypertext Application Technology Working Group (WHATWG) , которая прикладывает усилия, направленные на стандартизацию не только языка разметки, но и API, используемого в приложениях, написанных на языках сценариев, таких как JavaScript. Организация WHATWG также участвует в разработке совместно с W3C.

Еще можно сделать вывод, что авторы HTML5 старались перенести реализацию некоторых популярных и востребованных задач веб-программирования в зону ответственности самих интернет браузеров. К примеру, используя HTML5, можно достаточно легко реализовать функциональность перетаскивания элементов, которая стала столь популярной в пользовательских интерфейсах интернет магазинов (выбор товаров в корзину). Раньше, для этого дела нужно было писать сценарий на JavaScript с использованием различного рода вспомогательных библиотек, таких как . Теперь реализовать перетаскивание намного легче, определив ряд дополнительных атрибутов и добавив несколько обработчиков событий для нужных вам тегов. Организация “drag&drop” с использованием jQuery тоже не отличается особой сложностью, но, в случае с HTML5, мы будем иметь дело с единой рекомендацией для всех программных интернет клиентов, а это уже совсем другой уровень поддержки и гарантии кроссбраузерности. Оказывается, что браузеры, поддерживающие рекомендации HTML5 теперь будут давать возможность сохранять и восстанавливать параметры сессии в контексте самого веб-сеанса. К примеру, при повторной загрузке страницы, введенная на ней ранее информация не будет потеряна, а будет восстановлена из окружения текущей сессии. Это уже “выход на территорию” веб-программирования на стороне сервера, поскольку ранее только средствами HTML и JavaScript этого сделать было нельзя.

Ну а теперь список наиболее заметных нововведений HTML5:

Рисование на веб-холсте или использование элемента canvas

Как уже было сказано, основная часть рекомендаций в части использования нового элемента - это спецификация программного интерфейса вывода на него графики. Для начала вы размещаете на странице тег определенной ширины и высоты, затем в коде JavaScript получаете к нему доступ (например, по id) и начинаете на нем рисовать. Рисование сводится к последовательному определению стиля линий strokeStyle , стиля заливки fillStyle и вызову методов рисования, таких как moveTo (перенести перо), lineTo (нарисовать отрезок), arc (нарисовать дугу) и т.д. Далее смотрите пример - простейший инструмент для рисования с помощью мыши. Ниже приведен его исходный код на JavaScript и HTML разметка. Для рисования "пером" нажмите левую кнопку мыши и водите курсором по холсту. В режиме "линии" или "полигоны" просто последовательно щелкайте по холсту, указывая тем самым вершины ломаных линий или площадных объектов.

Пример рисования на элементе canvas

Пример реализации операций рисования на элементе средствами HTML5.

Исходный JavaScript код

//Код текущей операции var operation=0; //Статус операции var active=false; //Начало графической операции function startOperation(e) { if (operation==0) return; if (active) return; var context = getContext(); context.strokeStyle = getColor("stroke"); context.fillStyle = getColor("fill"); context.beginPath(); var point = getPoint(e); context.moveTo(point.x, point.y); active = true; } //Завершение графической операции function stopOperation() { if (!active) return; var context = getContext(); context.closePath(); active = false; } //События мыши function mouseDown(e) { var e = e || window.event; if (!active) { startOperation(e); return; } else { var context = getContext(); var point = getPoint(e); context.lineTo(point.x, point.y); context.stroke(); if (operation == 3) context.fill(); } return true; } function mouseUp(e) { var e = e || window.event; if (!active || operation != 1) return; stopOperation(); return true; } function mouseMove(e) { var e = e || window.event; if (!active || operation != 1) return; var context = getContext(); var point = getPoint(e); context.lineTo(point.x, point.y); context.stroke(); return true; } function getColor(control) { var color = document.getElementById(control).value; if (color == "") color = "#000"; return color; } //Элемент canvas function getCanvas() { return document.getElementById("canvas"); } //Контекст вывода 2d графики на элемент canvas function getContext() { return getCanvas().getContext("2d"); } //Элемент "выбранная операция" function getSelected() { return document.getElementById("selected"); } //Относительные координаты курсора мыши function getPoint(e) { var x = event.pageX || event.x; var y = event.pageY || event.y; var rect = getCanvas().getBoundingClientRect(); var point = {}; point.x = x - rect.left; point.y = y - rect.top; return point; } //Выбор операции function selectOperation(code) { stopOperation(); operation = code; switch(operation) { case 1: { getSelected().innerText = "Выбрано: перо"; break; } case 2: { getSelected().innerText = "Выбрано: линии"; break; } case 3: { getSelected().innerText = "Выбрано: полигоны"; break; } } }

Исходный HTML код

перо линии полигоны Выбрано: цвет линий цвет заливки

Перетаскивание элементов

Это не что иное, как поддержка браузерами классической модели “drag and drop”, которая очень популярна в обычных приложениях с графическим интерфейсом. Для элементов, которые будете “перетаскивать” определяете атрибут draggable , а для элементов, на которые будете “бросать” перетаскиваемые элементы определяете обработчики событий ondragenter , ondragover и ondorp . Вот, собственно, и все. Пример ниже.

Пример drag and drop на HTML5 - "Баскетбольная корзина"

Пример реализации операций drag and drop (перетаскивание элементов) средствами HTML5.

Исходный HTML код

HTML5: Drag and Drop html, body { font-family: Arial font-size: 11px; } .basket { border: 1px solid #777; width: 105px; height: 120px; padding: 10px; border-radius:0 0 10px 10px; background-color: #eee; box-shadow: inset 0px 0px 5px #777; } .basket .ball { width: 30px; height: 30px; border-radius:15px; box-shadow: 5px 5px 10px #777; float: right; } .ball { border: 1px solid #FF7F50; width: 20px; height: 20px; border-radius:10px; background-color: #FF8C00; box-shadow: 0px 0px 5px #777; float: left; margin: 1px; } function startDrag(e) { var e = e || window.event; e.dataTransfer.setData("Ball", e.target.id); e.dataTransfer.effectAllowed="move"; return true; } function endDrag(e) { var e = e || window.event; e.dataTransfer.clearData("Ball"); return true; } function drop(e) { var e = e || window.event; e.target.appendChild(document.getElementById(e.dataTransfer.getData("Ball"))); e.stopPropagation ? e.stopPropagation() : e.cancelBubble = true; return false; } ...

Воспроизведение видео и аудио файлов

Тут совсем все просто, было бы что воспроизводить и где. Размещаете теги и на своей странице, определяете для них атрибут src , указывающий на источник воспроизведения и ждете, когда интернет браузеры научатся обрабатывать эти замечательные инструкции и воспроизводить наиболее распространенные форматы.

Новые пользовательские элементы веб-форм

HTML5 обещает новые типы элементов , контролирующих ввод интернет адреса, адреса электронной почты, числовых значений, даты, времени, цвета и т.п. Если ваш браузер уже поддерживает все эти новшества, то ниже вы увидите, как он это делает. Если браузер поддерживает не все новые типы элементов, то те, с которыми он еще не умеет работать, будут выглядеть как обычные поля для ввода текста.

Пользовательские элементы управления

Варианты элемента с различными значениями атрибута type:

Если значение адреса не соответствует формату url , то после нажатия [подтвердить] браузер предпримет попытку его исправить. Если он этого сделать не сможет, то выведет сообщение об ошибке. Если значение электронной почты не соответствует формату email , то после нажатия [подтвердить] браузер либо исправит адрес, либо сообщит об ошибке ввода.

Визуализация числовых величин

Представление числовой величины в виде шкалы с возможностью указания интервалов ниже нормы low и выше нормы high , а также оптимальной величины optimum .

Элемент :

Визуализация процесса выполнения. Можно указать только максимальное max и текущее value значение.

Элемент Исходный HTML код

Число из интервала:

Целое число:

Дата и время:

Дата:

Время:

Месяц:

Неделя:

Цвет:

url:

email:


Управление историей просмотра страниц

Появится возможность самостоятельно управлять переходом по загруженным ранее страницам с использованием JavaScript и объекта history . Например, вызов window.history.length вернет “длину предыстории”, а вызовы window.history.back() , window.history.forward() или window.history.go(stepCount) осуществят соответствующие переходы. Далее небольшой пример:

Вперед>

Сохранение состояния сеанса работы

Эта замечательная функциональность позволит сохранять и восстанавливать данные сессии. Заполнили заказ, перешли на просмотр товара, вернулись (по ссылке) снова к заполнению заказа, а ранее введенные данные никуда не делись. Раньше, для того, чтобы обеспечить такое свойство страницы, без дополнительных усилий на стороне серверной части веб-приложения было не обойтись. Теперь будет возможность сохранять данные в контексте веб-сеанса (sessionStorage ) или локально в оперативной памяти браузера (localStorage ). Предполагается, что sessionStorage позволит сохранять данные, пока активен сеанс, в рамках которого они были инициализированы. Доступ к сохраненным данным может быть осуществлен с различных страниц сайта, загруженных браузером. Вариант с localStorage, судя по всему, должен сохранять данные, пока открыт сам браузер. Поскольку доступ к localStorage должен быть всегда, даже если нет связи с сервером, то и получить данные из localStorage сможет любая открытая браузером страница. Состояние сеанса работы в обоих случаях – это набор пар “ключ - значение”, доступ к которому осуществляется вызовами xxxStorage.setItem(key, value) и xxxStorage.getItem(key) .

Пример: В разделе о редактировании содержимого элементов с помощью нового атрибута contenteditable , появившегося в HTML5, есть. Ниже добавлены две кнопки, одна из которых сохраняет содержимое редактируемого блока, а вторая - его восстанавливает. Нажмите [Сохранить], отредактируйте содержимое блока и нажмите [Восстановить]. Если ваш браузер поддерживает функциональность HTML5 sessionStorage , то содержимое блока contenteditable будет восстановлено.

Восстановить

Сохранить Восстановить

Обмен сообщениями между страницами

Если ваша страница содержит элементы , которые загружают содержимое других страниц: не только страниц вашего сайта, но и страниц с абсолютно другого домена, то с внедрением рекомендаций HTML5 появится возможность обмениваться с такими окнами сообщениями. Страница, отправляющая сообщение делает это с использованием вызова функции window.postMessage(message, target) , а страница, принимающая сообщение должна содержать обработчик события “onmessage”, где она уже должна обработать текст сообщения event.data , если действительно является его адресатом – соответствует значению event.origin . До появления этого механизма, возможности общаться различным интернет ресурсам на стороне клиенте не было. Пример простейшей реализации общения двух страниц посредствам нового механизма сообщений HTML5 приведен далее. На первый взгляд может показаться, что ничего особенного в примере не происходит. Точнее не понятно, зачем все это нужно. На самом деле обмен сообщениями может стать популярным при создании информационных порталов, объединяющих в одном месте различные интернет сервисы. К примеру, пусть существует некий интернет сервис, услугами которого можно воспользоваться только после заполнения объемной электронной заявки. Также, пусть имеет место клиент, который довольно часто пользуется услугами этого сервиса, но его заявки каждый раз мало чем отличаются друг от друга (большинство параметров всегда одни и те же). Если бы подобный интернет сервис, помимо электронной формы для заполнения заявки поддерживал бы еще и “приемник сообщений” для автоматического оформления заказа на свои услуги, то его клиенты смогли бы “перетащить” окно этого сервиса на свои страницы (с использованием элемента ), создать там собственные (оптимизированные под себя) формы заполнения заявки и функции их отправки целевому сервису в виде сообщений. Большинство параметров в этом случае формировались бы автоматически, к примеру, реквизиты клиента. Безусловно, похожее общение можно реализовать посредством http запросов от клиента к серверу, в заголовке которых передавать требуемые параметры, но стоит заметить, что в случае с механизмом сообщений HTML5 трафик при передаче параметров нулевой, поскольку все происходит на стороне клиента.

Пример двух страниц, обменивающихся сообщениями

Пример реализации обмена сообщениями между страницами средствами HTML5.

Исходный код страницы - источника сообщений

function init() { document.getElementById("form").onsubmit = sendMessage; } function sendMessage() { var location = window.location; var message = document.getElementById("message").value; var target = document.getElementById("target"); target.contentWindow.postMessage(message, location.protocol+"//"+location.host); return false; } ...

message_source.html:

Не удалось загрузить messages_target.html!

Текст сообщения


Исходный код страницы - приемника сообщений

function init() { if (window.addEventListener) window.addEventListener("message", receiveMessage, false); else window.attachEvent("onmessage", receiveMessage); } function receiveMessage(event) { document.getElementById("target").innerHTML = event.data; document.getElementById("origin").innerHTML = "от " + event.origin; } ...

messages_target.html:

жду сообщения... от...

Редактирование содержимого элементов

Теперь с помощью определения атрибута contenteditable можно сделать редактируемым отдельные элементы разметки, например, блоки с текстом, списки и т.п. С помощью атрибута designmode можно сделать редактируемым всю страницу. Такая функциональность может быть полезна для организации обратной связи с владельцем ресурса, например, для заполнения и отправки ему заявления, заказа или чего-нибудь еще в этом роде. Вы создаете html страницу бланка в его первоначальном виде и отдаете пользователю для заполнения. После заполнения пользователь подтверждает введенные данные, и отредактированный документ отправляется на сервер. Пример редактируемой разметки приведен ниже:

Содержимое данного блока можно редактировать, поскольку для него определен атрибут contenteditable :

В ходе редактирования ячеек таблицы ширина колонок и высота строчек изменяется автоматически.

Для ввода нового элемента списка нажмите .

  • Элемент списка 1
  • Элемент списка 2
  • Элемент списка 3

После добавления нового элемента в список нумерация будет обновлена автоматически.

  • Элемент нумерованного списка 1
  • Элемент нумерованного списка 2
  • Элемент нумерованного списка 3
  • Векторная графика

    Ожидается поддержка SVG - языка разметки векторной графики на базе . Графика будет вставляться в разметку, что логично, с использованием тега , например вот так:

    Если вы видите геометрические фигуры ниже, то значит ваш браузер уже поддерживает svg.

    Математические выражения

    Также ожидается поддержка MathML - языка разметки математических выражений на базе XML. Вот пример разметки формулы вычисления длины стороны треугольника по теореме косинусов:

    a = b 2 + c 2 - 2 b c cos α

    Если вы видите формулу с символом квадратного корня, то ваш браузер уже понимает MathML.

    A = b 2 + c 2 - 2 b c cos α

    Другие элементы разметки

    В первую очередь хочется выделить группу новых элементов разметки страницы, которых в явном виде ранее не было. К ним относятся тег - статья, заметка, новость и т.д.; - заголовок статьи или верхний колонтитул - подвал или нижний колонтитул и - раздел или глава статьи. Для чего это нужно, если все то же самое можно сделать с помощью элементов различных классов? Нужно это для того, чтобы смысл вашей разметки был также понятен и тем, кто пытается ее анализировать. Я не про человека, читающего ваш текст (он разметку не видит, ему и без ее все понятно), а про автоматизированные системы и в первую очередь это относится к поисковым машинам. Семантическая нагрузка очень важна для поисковых машин при вычислении степени релевантности ваших страниц конкретному поисковому запросу. Отдельного внимания в этом контексте заслуживает элемент , поскольку он создан для того, чтобы выделить блок с основными навигационными ссылками на вашей странице. Возможно, поисковые машины будут как-то иначе относиться к подобным ссылкам. Ниже приведена сводная таблица с новыми тегами HTML5, которые добавляют разметке смысловой оттенок.

    Тег Краткое описание
    Статья, новость, заметка, комментарий или любой другой вид отдельной публикации. Тег article объединяет информацию, относящуюся к одной теме или вопросу. Один элемент article может включать в себя другие элементы article (пример ниже).
    Ремарка, отступление. Тег aside также может быть использован для выделения части текста, не относящейся к основному содержанию страницы, например, для размещения рекламных объявлений.
    Раскрываемый по требованию блок детализации сведений.
    Подпись рисунка. Тег figcaption используется внутри тега figure .
    Рисунок с подписью. Данный элемент должен содержать изображение img и подпись figcaption .
    Нижний колонтитул. Тег footer имеет смысл также размещать внутри тега article для указания автора статьи или заметки.
    Заголовок страницы или введение к статье. При размещении внутри тега article в тег header можно включить заголовок, краткое описание публикации и ссылки на связанные материалы.
    Группировка заголовков h1 - h6 в многоуровневый заголовок.
    Пометка. Тег mark имеет смысла использовать, если вам необходимо выделить часть текста другим стилем и сослаться на него из другого места документа.
    Блок навигационных ссылок.
    Раздел страницы, глава статьи. При размещении внутри статьи (тег article ) может интерпретироваться, как отдельная ее глава.

    Ниже представлен пример HTML разметки с использованием перечисленных тегов.

    HTML5 еще не успел стать рекомендацией, а споров по поводу использования его "семантических тегов", таких как и уже достаточно много. То, как правильно их следует вставлять в разметку пока никто толком не знает, но есть ряд советов по использованию новых структурных тегов HTML5 , с которыми трудно спорить, поскольку смысл их очевиден. Вот некоторые из них:

  • Не стоит использовать тег header только для того, чтобы разместить в нем один тег заголовка h1 - h6 точно также, как не нужно запихивать внутрь тегов-заголовков ничего кроме текста самих заголовков. Так делать не стоит : Название сайта

  • Не стоит использовать тег hgroup для создания групп заголовков из одного элемента. Каждый отдельно взятый элемент от h1 до h6 и так сам себе заголовок. Вот пример, как делать не нужно : Название сайта

  • Не стоит добавлять элементы section внутрь других элементов, если они будут включать в себя все основное содержание этих элементов. В приведенном выше примере внутри каждого комментария нет отдельных блоков section для выделения самого текста комментария. Вот пример лишнего элемента section :

    Текст комментария

    Опубликовано...

  • Не нужно понимать смысл элемента article буквально. Это не только статья, но и любая форма представления законченной мысли. Именно по этой причине комментарии к статье в приведенном ранее примере также выделены в отдельные блоки article .

  • Используйте структурные теги HTML5, только если уверены, что они помогут поисковым машинам больше узнать о семантике вашей разметки. Если тег не несет отдельного смысла, а добавлен только лишь для "красоты", то результат его добавления - это "лишний вес" вашей страницы, который, как известно, "вреден для здоровья" сайта.
  • На этом про новые возможности языка разметки гипертекста, которые должны появиться с выходом рекомендации HTML5 у меня все.

    Введение

    HTML 4 с нами уже примерно 10 лет. За это время не было серьезных шагов по его усовершенствованию. Конечно, появился XHTML, однако, он просто ужесточает правила и заставляет писать лучший и более качественный код. При этом, вы полностью заботитесь о соответствии стандарту. HTML 5 же призван сделать большее. Он добавляет серию очень важных нововведений.

    Работа над HTML5 началась еще в далеком 2004-м, но только сейчас (2009) он начинает вызывать серьезный интерес. Увеличивается поддержка браузеров, а элемент, который мне больше всего нравится (CANVAS), поддерживается 4-мя из 5-ти наиболее распостраненных браузеров. Вместе с тем не совсем реально, хотя и возможно, использовать HTML 5, так как новый стандарт не поддерживается в MSIE.

    Итак, что же нового в HTML 5?

    - это поле для рисования двухмерной графики, управлямый с помощью JavaScript. Вы можете использовать его для построения графиков и других динамических изображений.

    и

    Тег упрощает добавление видео клипов на HTML-страницы. Он может содержать атрибуты src, autoplay и loop. Тег также допускает задание текстового описания для видео (например, для незрячих людей). В идеале это должна быть полная текстовая интерпретация видео.

    Тег очень похож на , но предназначен для аудио-файлов. Неожиданно, не правда ли?

    Контекстные меню

    HTML5 также предусматривает метод для простого добавления на веб-страницу контекстных меню. Возможно, такие меню не слишком полезны для обычных сайтов. Зато для приложений, в которых множество функций хотелось бы сгруппировать и отображать контекстно, такая возможность в самый раз.

    Новые структурные элементы

    Так как HTML 4 слабо структурирован, в 5-ю версию спецификации были добавлены новые элементы, призванные исправить этот недостаток:

    • - секция, либо параграф.
    • - верхний колонтитул страницы (не путать с )
    • - нижний колонтитул страницы.
    • - содержит набор ссылок на другие страницы. Например, вы можете расположить там навигацию по вашему сайту.
    • - в этот тег может быть включена, например, статья блога.
    • - может быть использован для предоставления дополнительной информации к текстовому блоку.
    • - может быть использован, например, для создания диаграмм.
    Новые inline-элементы

    Стандарт HTML5 вводит новые элементы, которые позволяют специальным образом выделять фрагменты текста, содержащие время и числа:

    • - помечает фрагмент текста. Можно, например, отметить найденные термы в списке результатов поиска.
    • - можете использовать этот тег для вывода времени или даты в текстовом блоке.
    • - для представления чисел в определенном диапазоне. Он может иметь различные атрибуты: value, min, max, low, high и optimum.
    • Может быть использован для отображения индикатора состояния процесса. Имеет пару атрибутов: value и max.
    Новые типы полей ввода

    HTML5 добавляет ряд новых типов для полей ввода данных:

    • datetime
    • datetime-local
    • month
    • number
    • range
    • email

    Некоторые из них широко применяются в пользовательских интерфейсах desktop-приложений. И, вероятнее всего, они будут уже хорошо знакомы всем вашим пользователям.

    Устаревшие (deprecated) элементы

    Следующие элементы HTML считаются устаревшими:

    • acronym
    • applet
    • basefont
    • center
    • frame
    • frameset
    • isindex
    • noframes
    • noscript
    • strike
    Синтаксис для задания кодировки

    Синтаксис для задания кодировки документа в HTML5 теперь выглядит очень просто:

    Интерактивные нововведения

    Несколько нововведений, которые сделают создание сайтов и web-приложений проще и приятнее:

    • - дополнительная информация о чем либо. Например, данный тег может быть использован в браузерах для реализации подсказки. Тег может иметь атрибут open, указывающий будет ли содержимое тега изначально показано пользователю или нет.
    • - В отличие от традиционных таблиц (которые задуманы как статические), этот тег может быть использован для представления интерактивного набора данных. Например, для таблицы с выбором строк или колонок, inline-редактированием данных, сортировкой и т.п.
    • - ранее нерекомендуемый, тег вернулся в стандарт HTML5 в новом обличии. Теперь он может содержать, например, элементы , которые вызывают соответствующие команды. Этот элемент можно использовать для представления панели инструментов или контекстного меню (см. выше). Тег может иметь атрибуты label и icon. Они могут быть добавлены для создания многоуровнего меню.
    Новое определение типа документа (DTD)

    В HTML5 стало гораздо проще объявлять DTD: Объявление DTD стало более симпатичным и, я полагаю, проще запоминающимся. Скорее всего, это является результатом того, что HTML больше не связан с SGML.

    Необязательный href в ссылках

    Атрибут href теперь необязательный, поскольку ссылки могут использоваться в сочетании со сценариями. Вероятно, это будет полезно в web-приложениях.

    Атрибут async

    Атрибут дает браузеру подсказку, что блок сценария может выполняться асинхронно, вместо того, чтобы ждать, пока страница не загрузилась полностью.

    Заключение

    Естественно, не все браузеры будут поддерживать весь стандарт целиком (думаю, читатель сейчас вспомнил о "любимом" MSIE). Но поддержка появится со временем. И новые элементы HTML 5 были разработаны с учетом текущей ситуации. С другой стороны, большинство браузеров уже частично поддерживают спецификацию. Так, например, тег поддерживается в Firefox, Opera, Chrome и Safari. Плюс, на сколько мне известно, Firefox 3.5 будет поддерживать теги и .

    Так что, ждем с нетерпением.

    Кому интересно, спецификацию HTML 5 можно найти по следующей ссылке -

    HTML5 представляет собой последнюю версию основного языка разметки web – страниц. За последние 10 лет HTML не имел серьёзных изменений, что является немного странным в соответствии с тем как стремительно развиваться web-технологии. И вот наконец нам переставлен HTML5, и что же нового мы получили в этой версии, расскажет эта статья.

    У HTML5 в сравнении с предыдущим XHTML не такие строгие правила, теперь вы можете:

    • Вы можете не использовать закрывающие теги.
    • Не использовать кавычки в значениях атрибута.
    • Использовать символы верхнего регистра в элементах и атрибутах.

    Новые теги.
    И так в HTML5 появились новые теги.

    Есть также исключённые теги, которые являются неактуальными и не рекомендованы для использования.

    Так что если вы знакомы с предыдущими версиями HTML, то у вас не будет никаких сложностей в понимании HTML5. А новые теги и атрибуты помогут вам в создании новых и улучшения существующих сайтов, и благодаря новым возможностям это делать станет намного легче.

    Но возникает вопрос, а будет ли HTML5 правильно отображаться в старых версия браузеров.
    Конечно будет, естественно кроме новых тегов. Страницы сделанные с использованием HTML5 будут отображаться во всех браузерах, но те кто использует новые версии могут получить и увидеть намного больше.

    Структурные теги.

    Давайте посмотрим, каким образом мы сможем создать структуру HTML документа при помощи HTML5. В HTML4 мы обычно используем тэги

    и , чтобы создать структуру всей страницы, независимо от того с какой частью страницы мы работаем: шапкой, футером, меню или с другими общими разделами. Это не очень хороший способ построения структуры страницы, именно поэтому в HTML5 введены новые тэги для каждой части документа.

    Теперь нам доступны следующие структурные теги:

    Цель его состоит в том, чтобы определить разделы в пределах определенного текстового содержимого, например, разделять весь текст на небольшие части.

    Цель его состоит в том, чтобы определить верхнюю часть HTML документа.

    Этот тег применяется для того, чтобы определить нижнюю часть документа.

    Цель его в том, чтобы определить список ссылок на другие HTML страницы.

    Этот тег применяется для того, чтобы определить некоторую часть тестового содержимого документа.

    Вот к примеру HTML код с новыми тэгами.

    Заголовок Заголовок 1

    Некоторый текст... Заголовок 2

    Некоторый текст.. Ссылка 1 Ссылка 2

    Copyright 2011 My Company

    Как вы видите мы поместили название нашего документа в теги . Затем мы добавили раздел к нашей странице при помощи тэга и вложили в него 2 тега , чтобы отметить две главные части нашего текстового содержимого. После этого мы определили список наших ссылок, используя тэг . И наконец мы создали нижний колонтитул нашей страницы при помощи тега .

    Так и что же здесь особенного? Мы могли сделать тоже самое используя старый хороший тэг . Несомненно, но преимущество использования новых тэгов заключается в четкой и понятной структуре HTML документов. Понятной не только для людей, но также и для поисковых систем.

    Новые блочные теги HTML5.

    В дополнении к существующим блочным тегам у HTML5 появились 3 новых тега:

    Тег используется для обозначения какой-то части текста, в пределах основного текста, например цитаты или сноски.

    Основной текст... Цитата...

    Веб-браузер никак не выделяет текст заключенный в тэге , он используется для создания хорошей структуры HTML документа. Это по достоинству смогут оценить разработчики поисковых систем.
    Следующий тэг используется для создания диалогов между пользователями:

    Пользователь 1 Сообщение пользователя 1 Пользователь 2 Сообщение пользователя 2

    В тег мы вложили еще два тэга: - содержащий имя пользователя и для отображения сообщения пользователя.

    Третий тег используется для того чтобы указать название изображения.

    Заголовок изображения = "Некоторое изображение" src="/image.jpg" width="200" height="200">

    Мы использовали тэг чтобы указать название изображения, тег , чтобы вставить определенное изображение и тэг чтобы связать их вместе.
    Что необходимо учитывать при использовании структурных и блочных тегов HTML5.
    Мы можем начать использовать новые тэги сразу же, но после применения некоторых приемов, для того чтобы обойти некоторые несогласования со старыми браузерами. Новые блоковые тэги в старых браузерах будут обработаны как встроенные элементы, поэтому мы должны определить в нашем CSS для новых блочных тегов свойство display:block; чтобы они должным образом отображались. Что касается старых версий Internet Explorer то необходимо так же добавить следующее:

    < script> document.createElement ("header" ) ; document.createElement ("footer" ) ; document.createElement ("section" ) ; document.createElement ("aside" ) ; document.createElement ("article" ) ; document.createElement ("nav" ) ;

    Добавить это нужно, потому что IE не понимает CSS, присоединенных к неизвестным тегам. HTML5 предполагает, что у тега есть по умолчанию, поэтому его мы можем не добавлять.

    Встроенные теги.

    У HTML4 есть много тэгов для осуществления различного текстового форматирования, но нет никаких тэгов, например чтобы показать время и дату. Поэтому теперь в HTML5 такие тэги присутствуют:

    Тег используется для обозначения какой-то части текста для определенных целей, например чтобы показать важную часть текста.

    Некоторая очень важная часть текста...

    Мы вставили определенную важную часть в тэг .

    Тег используется для обозначения времени и даты в каком либо тексте, например:

    Тег используется чтобы показать некоторые числа в определенном формате, например:

    ежемесячный доход$15,000...

    У тега есть 6 полезных атрибутов:

    • value - задает фактическое значение чего-то;
    • min - задает минимальное значение чего-то;
    • low - определяет предел, при достижении которого значение считается низким;
    • high - определяет предел при котором значение считается низким;
    • max - определяет максимальное значение чего-то;
    • optimum - определяет оптимальное значение чего-то.

    Например:

    Концентрация сахара: 8.2.

    Последний новый тэг используется чтобы показать некоторую точку некоторого прогресса, например, процент завершения чего-то:

    Завершение: 20%

    Тег имеет два атрибута value - текущее значение прогресса и max - максимально значение прогресса.

    Мультимедийные теги.

    В HTML5 имеется два новых тэга, предназначенных для вывода мультимедиа и .

    Вот пример применения тега :

    Сейчас играет...

    У этого тега имеется три атрибута:

    • src - путь к звуквому файлу;
    • autoplay - определяет начать ли проигрываться файлу сразу после загрузки страницы в браузере;
    • loop - определяет сколько раз аудио должно проигрываться.

    Тег позволяет разместить внутри себе другие тэги, содержащие некоторую информацию.
    Тег используется для того, чтобы вывести на страницу видео файлы.

    Клип...

    Атрибут src определяет путь к видео файлу.
    Мультимедийные теги позволяют вывести аудио и видео файлы непосредственно в HTML документе и способствуют их индексации поисковыми системами.

    Интерактивные теги.

    В HTML5 есть несколько интерактивных тэгов, которые позволяют изменить некоторое содержимое без перезагрузки всей HTML страницы:

    Тег являются довольно интересным, поскольку он уже существовал в более ранних версиях HTML, и теперь его вернули. Тег в HTML5 выполняет роль контейнера для тега , который в свою очередь создает команду в виде переключателя, флажка или обычной кнопки.

    Используя эти тэги, мы можем создавать различные интерактивные меню.
    Тег используется чтобы показать некоторую дополнительную информацию, например поле справки.

    Некоторый контент Информация справки ...

    Тег используется для автоматического рендеринга различных 2D форм и растровых изображений. Он определяет некоторые области HTML документа, в которых можно сделать различные объекты, выводить изображения и трансформировать их при помощи языка JavaScript.

    < script> var example = document.getElementById ("sample" ) ; var context = example.getContext ("2d" ) ; ctx.fillStyle = "#FF0000" ; ctx.fillRect (0 , 0 , 80 , 100 ) ; < canvas id= "sample" width= "300" height= "300" > Ваш браузер не поддерживает HTML5.

    Атрибут ID используется для идентификации тега как объекта DOM (Document Object Model) . Далее указываются атрибуты ширины и высоты. Текст заключенный между тегами будет показан в браузерах, которые не поддерживают HTML5. Он предназначен для использования в сочетании с 2D APIs для отображения динамической графики наподобие Flash.

    Мы можем начать использовать новые возможности HTML5 уже сегодня. Некоторые простые приемы будут работать даже в старых браузерах. Если вы планируете построить новый веб сайт, вы можете рассмотреть возможность применения HTML5, чтобы сделать для вашего сайта более грамотную и разумную структуру с новыми функциями.

    Понравилась статья? Поделиться с друзьями: