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

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

Создание документа HTML5

Если у вас нет готового шаблона, над которым можно было бы поработать, то просто скопируйте предложенный код в HTML-файл:





/*functions here*/





Мы разместим наши элементы с использованием собственных атрибутов в теле документа, а функции javascript помогут нам осуществить к ним доступ, и расположены эти функции будут в головной секции документа.

Создание элемента

Давайте добавим элемент с простеньким контентом, и добавим собственный атрибут вместе с ID для того, чтобы иметь возможность идентифицировать этот элемент в javascript, использованном в демо:


Cotton Shirt

Как видно, собственный атрибут имеет форму «data-*» с именем (или именами) на ваше усмотрение после части «data-». Это единственный валидный способ применения собственных атрибутов в HTML5, так что не забудьте всегда начинать названия элементов с этого указателя, если вам хочется, чтобы страницы были валидными.

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

Добавляем тестовую кнопку

Ваши собственные javascript-функции будут обрабатывать события на ваших страницах, но для наглядного примера добавьте представленную кнопку на страницу:


Кнопка проводит ID элемента в качестве параметра таким образом, чтобы javascript-функция могла обратиться к нему, и осуществить доступ к собственному атрибуту.

Получение атрибута

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

Function getElementAttribute(elemID) {
var theElement = document.getElementById(elemID);
var theAttribute = theElement.getAttribute("data-product-category");
alert(theAttribute);
}
Ради наглядности, мы приводим атрибут в готовность, но ваши собственные скрипты могут выполнять то, что необходимо вам.

Получение набора данных (dataset)

Как альтернативу DOM-методу «getAttributes», вы можете использовать наборы данных (dataset) элемента. Этот подход может быть более эффективным, особенно в тех случаях, когда ваш код повторяется в нескольких атрибутах. Тем не менее, браузерная поддержка данного метода пока еще очень плохая, что также важно учитывать. Данный код выполняет тот же самый процесс:

//var theAttribute = theElement.getAttribute("data-product-category");
var theAttribute = theElement.dataset.productCategory;
С помощью наборов данных вы можете избежать использования аффикса «data-» в начале имени атрибутов при обращении к ним javascript-функций, которые вам по прежнему придется включать в HTML. Учтите что, если имя вашего собственного атрибута имеет в себе дефис (который есть в имени нашего атрибута), то у нас здесь получается горбатый регистр, если доступ осуществляется посредством набора данных «data-product-category» становится «productCategory»).

Другие методы и функции

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

//DOM method
theElement.setAttribute("data-product-category", "sale");

//dataset version
theElement.dataset.productCategory = "sale";
Для того чтобы убрать атрибут, вы также можете использовать либо набор данных, либо DOM-метод:

//DOM method
theElement.removeAttribute("data-product-category");

//dataset version
theElement.dataset.productCategory = null;
Вывод

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

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

Всего насчитывается более ста элементов разметки. Каждый имеет ряд атрибутов и собственный синтаксис. Справочник по тегам HTML поможет быстрой найти нужный вам элемент.

Список тегов HTML

Ниже в таблице представлен список тегов HTML5 с кратким описанием на русском языке.

Тег Краткое описание
Комментарий.
Определяет тип документа.
Ссылка, гиперссылка, якорь.
Определяет текст как аббревиатуру.
Контактная информация автора или владельца документа.
Определяет область на карте-изображении
Статья
Контент в стороне (содержимое не является основным на странице по смыслу)
Позволяет вставить воспроизводимый аудио файл.
Полужирный текст.
Задает базовый URL или аттрибут target для относительных ссылок в документе.
Область, где написание текста может имееть другое направления.
Устанавливает направление написания текста. В отличии от направление указывается физическое направление
Цитата.
Указывает область body документа.

Перенос строки.
Кликабельная кнопка
Используется для рисовании графики с помощью скриптов
Подпись таблицы.
Сноска на название материала.
Используется для вставки компьютерного кода в текстовом виде.
Задает характеристики колонок в таблице.
Определяет группу из одной или более колонок таблицы для форматирования.
Используется для определения предопределенных вариантов на выбор при вводе в текстовом поле
Определяет описание термина из тега в списке терминов .
Текст, который удален в новой версии документа.
Определяет дополнительную информацию, которую пользователь может просмотреть или скрыть
Указывает, что содержимое является термином.
Определяет диалоговое окно или интерактивный элемент
Блочный элемент - один из основных элементов верстки.
Определяет список определений.
Название термина в списке определений .
выделенный по смыслу текст (обычно, текст выделенный курсивом).
Контейнер для внешнего приложения
Группа связанных элементов в форме
Заголовок для элемента
Определяет автономную группу из нескольких элементов (например картинка с подписью)
Нижний колонтитул
Определяет форму пользовательского ввода
- Заголовки HTML разного уровня: , , , , , .
Указывает область head документа.
Блок заголовка
Горизонтальная линия - тематический разделитель.
Корневой элемент. Сообщает браузеру, что данный документ является HTML документом.
Выделяет текст курсивом.
Определяет встроенный фрейм
Изображение, картинка.
Поле для ввода
Текст, который был добавлен в новой версии документа.
Текст введенный с клавиатуры или названия кнопок клавиатуры. Обычно выделен моноширинным шрифтом.
Метка для поля ввода. Указывает на привязку элемента (обычно текста) к полю ввода.
Заголовок элементов
  • Элемент списка.
    Определяет привязку внешнего ресурса (чаще всего, привязку таблицы стилей CSS)
    Основной контент
    Контейнер для . Определяет пользовательскую карту на изображении
    Выделенный текст (обычно с помощью подсветки фона).
    Контейнер для списка пунктов меню
    Определяет элементы, которые пользователь может вызвать из контекстного меню
    Используется для определения мета-данных документа.
    Измеритель значений в заданном диапазоне
    Контейнер для навигационных элементов
    Альтернативный контент для пользователей, отключивших скрипты
    Определяет встроенный объект
    Определяет нумерованный список.
    Определяет группу связанных вариантов в выпадающем списке. Дает название группу
    Параметр (вариант выбора) в выпадающем списке
    Результат вычислений

    Абзац.
    Задает параметры для встроенных объектов
    Контейнер для нескольких изображений
    Предварительно отформатированный текст.
    Индикатор выполнения (прогресса)
    Цитата в тексте.
    Альтернативный текст, если браузер не поддерживает тег .
    Аннотация к содержимому тега .
    Контейнер для символов и их расшифровки (в основном для Восточно-азиатских символов, иероглифов).
    Перечеркнутый текст.
    Текст, являющийся результатом выполнения компьютерной программы (обычно выводится моноширинным шрифтом).
    Определяет скрипт или подключение скрипта из внешнего ресурса.
    Раздел
    Определяет выпадающий список
    Текст шрифтом меньшего размера.
    Определяет ресурс для тегов , и .
    Строчный элемент.
    Текст, выделенный по значению. Обычно отображается полужирным.
    Определяет контейнер для определения стилей документа
    Отображает текст в виде нижнего индекса.
    Заголовок внутри тега
    Отображает текст в виде верхнего индекса.
    Определяет таблицу.
    Определяет область контента в таблице.
    Ячейка в таблице .
    Многострочное поле для ввода
    Определяет группу строк в нижней части таблицы - нижний колонтитул.
    Ячейка - заголовок в таблице .
    Позволяет вставить воспроизводимое видео.
    Место, где допускается перенос строки.
    Устаревшие теги HTML

    Чем заменить устаревший тег HTML? В большинстве случаев подойдут каскадные таблицы стилей CSS. Также, существуют альтернативы не используемым в новой спецификации тегам и в пределах HTML. Ниже в таблице представлены устаревшие теги HTML с вариантами их замены.

    Тег Краткое описание
    Акроним. Используйте тег вместо него.
    Встроенный апплет. Используйте или вместо него.
    Задает цвет, размер, и семейство шрифта всего текста в документе. Используйте вместо него
    Текст большего размера. Используйте вместо него
    Отцентрованный текст. Используйте вместо него
    Список директорий. Используйте
      вместо него
    Определяет цвет, размер и семейство шрифта. Используйте вместо него
    Фрейм внутри . Используйте вместо него
    Определяет набор фреймов. Для добавления нескольких встроенных фреймов используйте несколько элементов
    Альтернативный текст, если фреймы не поддерживаются
    Перечеркнутый текст. Используйте или вместо него
    Моноширный текст. Используйте вместо него
    Подчеркнутый текст. Используйте вместо него

    От автора: приветствую вас, дорогие читатели блога webformyself. В этой статье мы продолжим говорить о технологии html5. В этот раз я хотел бы затронуть другие нововведения этой спецификации. Таковыми являются в html5 data-атрибуты, которые можно прописывать любым тегам.

    Что такое data-атрибуты и для чего они нужны?

    Итак, начнем с того, что же это такое вообще. Как вы возможно знаете, в html любому тегу можно указать какой-то атрибут, будь то универсальный (class, id) или уникальный для этого элемента.

    Их первая особенность в том, что атрибут может называться как угодно. Единственное правило – он должен начинаться с префикса data- и в нем, естественно, не должно быть русских букв. Одному тегу можно записать сколько угодно таких параметров. В качестве значений также можно указывать произвольные слова. Кстати, значение можно указывать и на русском. Пример:

    < p data - attribute = "value" data - name = "Абзац" > < / div >

    Как видите, можно указывать любые имена и любые значения. Но ведь эти параметры ничего не делают с элементом, зачем тогда они вообще нужны? Есть как минимум несколько способов применения data-атрибутов в сайтостроении, и давайте рассмотрим их.

    Способ применения 1 – обращение к элементам в css

    Если вы знаете, что такое селекторы атрибутов, то наверняка уже догадываетесь, как могут быть использованы новые возможности. Указывая для тега уникальный data-атрибут, вы сможете соответствующим образом обратиться к нему в стилях. Давайте рассмотрим пример:

    div{}

    < div data - css = "css" > < / div >

    div [ data - css = "css" ] { }

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

    Способ применения 2 – хранение значений и их использование

    С первого взгляда, значения data-атрибутов ничего не меняют и вообще никак не влияют на веб-страницу. Так зачем они вообще нужны? На самом деле применение им найти можно, если вспомнить про функцию attr() в css.

    < img src = "foto.jpg" data - img = "Фотография" >

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

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

    Итак, выше в коде мы вставили картинку, указали путь к ней и дополнительно записали произвольный data-параметр. Реализовать вывод пояснения к фото теперь можно таким образом:

    img{ display: inline-block; } img:after{ content: attr(data-img); }

    img {

    display : inline - block ;

    img : after {

    content : attr (data - img ) ;

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

    Я не буду в этой статье приводить инструкцию, как оформить подсказку. Скажу только, что по умолчанию она будет отображаться после загрузки страницы. Зачастую ее нужно изначально скрыть, а выводить при наведении на картинку. Чтобы это реализовать, вам нужно воспользоваться селектором img:hover:after.

    Ну а какие есть еще html5 атрибуты, появившиеся только в этой спецификации? К таковым можно отнести, например, controls – атрибут для новых элементов audio и video, который позволяет вывести элементы управления видеороликом или аудиозаписью.

    У видео с помощью параметра poster можно указать путь к изображению, которое будет фоном до начала просмотра видео. В общем, вот таких вот мелких атрибутов появилось не так уж и мало.

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

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

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

    Структурная разметка HTML5

    В HTML5 появилось несколько новых тегов, которые призваны заменить уже прижившиеся блоки div (не все конечно 🙂). Внешне, так сказать, ничего не изменилось, но в сущности новые теги несут в себе смысловую (семантическую) нагрузку, и строго определяют для каждого блока его место и роль:

    • — Определяет область «шапки» сайта с логотипом, первичной навигацией и тд.;
    • — Определяет «подвал», колонтитул веб страницы сайта или раздела, в котом обычно размещается дополнительная информация;
    • — Определяет блок, который служит для группировки однотипных объектов, или для разделения текста на разделы;
    • — Определяет автономную часть страницы, это может быть сообщение форума, журнала или газетную статью, запись в блоге и тд.;
    • — Определяет область навигации, как правило список ссылок;
    Форма Новые типы input полей

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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13













    Регулярные выражения для валидации

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

    1
    2
    3
    4
    5
    6






    Автозаполнение с HTML5 datalist

    Использование dataList элемента HTML5, позволяет создавать список данных для автозаполнения полей ввода. Супер полезно!

    1
    2
    3
    4
    5
    6
    7
    8
    9







    Автофокус полей формы

    Атрибут autofocus позволит вам установить фокус на любой элемент формы (в том числе кнопку).

    Скрытые элементы с помощью HTML5

    В HTML5 введен атрибут hidden , который позволяет скрыть определенный элемент, на подобии того как это применяется в CSS с использованием dispaly: none

    Pellentesque habitant morbi tristique senectus et netus ....


    Заголовок 2

    Pellentesque habitant morbi tristique senectus et netus et malesuada ...

    Создаем аккордеон для сайта —

    Атрибут download

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

    Чтобы оставаться в курсе свежих статей и уроков следите

    На HTML5, хотя все современные браузеры уже поддерживают данный стандарт. По состоянию на декабрь 2011 года стандарт все еще находится в состоянии разработки.

    В HTML5 добавляет много новых синтаксических особенностей – , , и . Эти элементы разработаны для того, чтобы сделать проще внедрение и управление графическими и мультимедийными объектами в вебе без необходимости обращаться к собственным плагинам и API. Другие новые элементы, такие как , , и разработаны для того, чтобы обогащать семантическое содержимое документа (страницы).

    Новые теги HTML5
    • 1. Теги разделов (article, aside, footer, header, hgroup, nav, section)
    • 2. Теги группировки контента (figure, figcaption)
    • 3. Теги для семантического выделения текста (bdo, mark, time, ruby, rt, rp, wbr)
    • 4. Теги для вставки контента (audio, video, canvas, embed, source)
    • 5. Теги для элементов форм (datalist, keygen, output, progress, meter)
    • 6. Интерактивные элементы (details, summary, command, menu)
    Тег Краткое описание
    Определяет статью
    Определяет контент в стороне от основного контента страницы
    Определяет аудио контент
    Определяет графику
    Определяет командную кнопку
    Определяет данные в упорядоченный список
    Определяет выпадающий список
    Определяет шаблон данных
    Определяет детали элемента
    Определяет диалог (разговор)
    Определяет цель события, отправляемого по серверу
    Определяет группу медиа-контента, и их подписи
    Определяет нижний колонтитул для раздела или страницы
    Определяет область заголовка раздела или страницы
    Определяет выделенный текст
    Определяет измерения в течение заранее определенного диапазона
    Определяет навигационные ссылки
    Определяет вложенную точку в шаблоне данных
    Определяет некоторые виды результата
    Определяет ход выполнения задачи любого рода
    Определяет правила для обновления шаблонов
    Определяет раздел (секцию)
    Определяет медиа-ресурсы
    Определяет дату/время
    Определяет видео
    Неподдерживаемые теги: Тег Краткое описание
    Не поддерживается. Определяет акроним
    Не поддерживается. Определяет апплет
    Не поддерживается. Используетя вместо CSS для задания шрифта
    Не поддерживается. Определяет большой текст
    Не поддерживается. Определяет текст по центру
    Не поддерживается. Определяет список директорий
    Не поддерживается. Определяет фрейм
    Не поддерживается. Определяет набор фреймов
    Не поддерживается. Определяет поисковый индекс в документе
    Не поддерживается. Определяет секцию, не поддерживающую фрейм
    Не поддерживается.
    Не поддерживается. Определяет зачеркнутый текст
    Не поддерживается. Определяет телетайп текст
    Не поддерживается. Определяет подчеркнутый текст
    Не поддерживается. Определяет выровненный текст
    Список атрибутов HTML5 Атрибут Значение Краткое описание
    contenteditable true
    false
    Определяет, может ли пользователь редактировать содержимое (контент)
    contextmenu menu_id Определяет контекстное меню элемента
    draggable true
    false
    auto
    Определяет, может ли пользователь перетащить элемент
    irrelevant true
    false
    Определяет, что элемент не имеет значения. Элемент, имеющий значение не отображается
    ref URL / id Определяет ссылку на другой документ / часть документа (используется только тогда, когда значение атрибута установлено)
    registrationmark reg_mark Определяет зарегистрированный знак элемента
    template URL / id Определяет ссылку на другой документ / часть документа, которые должны быть применены к элементу
    Структура разметки страницы в HTML5

    При использовании обычной структуры страницы сайта можно выделить несколько типичных блоков, описываемых тегом div с соответствущим классом (, , , , и пр.).

    При использовании с применением HTML5 , эти блоки описываются структурными тегами , , , , и пр., что очень упрощает жизнь разработчикам. Данные теги являются структурными эквивалентами и они делают разметку более наглядной и простой в понимании. Также, по умолчанию, они являются инлайновыми, поэтому их надо cделать блочными с помощью display:block.

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

    Все современные браузеры (Опера, Сафари, Хром, Мозила, ИЕ9+) уже имеют поддержку HTML5 . Для браузеров IE8 и меньше следует подключать javascript , который "научит" их понимать новые теги. Код для его подключения ниже:

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