Атрибуты html5 полный список. Справочник тегов HTML

До создания HTML5 работать с атрибутами в HTML элементах, мягко говоря, не доставляло удовольствия. Приходилось использовать такие атрибуты, как rel или class . А некоторые разработчики даже создавали свои атрибуты.

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

Как же работают дата атрибуты?

Название говорит само за себя. Дата атрибуты хранят в себе какие-то данные, заданные вами. Они всегда начинаются с приставки data- и заканчиваются чем то более понятным для разработчика (по спецификации допускаются только символы нижнего регистра и дефисы). Элемент может содержать в себе любое количество дата атрибутов.

Пример использования атрибутов для хранения данных о пользоватле:

  • Calvin
  • Конечно, эти данные не слишком помогают конечному пользователю, так как он их попросту не видит, но дата атрибуты очень широко используются в современных веб технологиях.

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

    Все необходимые параметры у вас под рукой и готовы для отправки в скрипт бекэнда. Никаких больше rel атрибутов или обработки ID или необходимого действия из других атрибутов.

    Что можно хранить?

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

    Чтение/запись атрибутов средствами javascript

    Вернемся к примеру с кнопкой и посмотрим как нам получить доступ к нужным атрибутам.

    // Это кнопка var button = document.getElementById("your-button-id"); // Получаем значение var cmd = button.getAttribute("data-cmd"); var id = button.getAttribute("data-id"); // Изменяем значение button.setAttribute("data-cmd", yourNewCmd); button.setAttribute("data-id", yourNewId);

    Довольно просто, не так ли? Теперь просто передавайте параметры cmd и id вашему приложению и выполняйте необходимый ajax запрос.

    Чтение/запись дата атрибутов при помощи jQuery.

    Приведем аналог на jQuery:

    // Получаем значение var cmd = $("#your-button-id").attr("data-cmd"); var id = $("#your-button-id").attr("data-id"); // Изменяем значение $("#your-button-id") .attr("data-cmd", yourNewCmd) .attr("data-id", yourNewId);

    Не путайте с методом data() . Хотя у них есть что-то общее, в целом это абсолютно разные вещи. Даже если вы не полностью знакомы с этими методами, просто используйте attr() .

    Использование dataset API

    HTML5 даже предлагает нам API для работы с data атрибутами, хотя IE10 и ниже не поддерживает его.

    Опять таки пример с кнопкой, но на этот раз при помощи dataset API:

    // Это кнопка var button = document.getElementById("your-button-id"); // Получаем значение var cmd = button.dataset.cmd; var id = button.dataset.id; // Изменяем значение button.dataset.cmd = yourNewCmd; button.dataset.id = yourNewId;

    Обратите внимание на отсутсвие приставки data и дефисов. Так же как и при работе со свойтсвами CSS в JavaScript вам потребуется "горбатый" регистр. Dataset API переводит имена атрибутов таким образом что data-some-attribute-name в HTML превращается в dataset.someAttributeName в JavaScript.

    Что можно делать с дата атрибутами

    Приведенные примеры - это только фундамент. Вы можете выполнять гораздо более сложные операции с дата атрибутами. Давайте рассмотрим несколько примеров.

    Фильтрация

    Допустим вы работаете со списком элементов и вам необходимо отфильтровать их по ключевому слову. Разместите ключевые слова в data атрибутах и при помощи небольшого итерационного скрипта обработайте их.

    • Ford
    • Chevrolet
    • ...

    Пример “на коленке”:

    $("#filter").on("keyup", function() { var keyword = $(this).val().toLowerCase(); $(".cars > li").each(function() { $(this).toggle(keyword.length < 1 || $(this).attr("data-models").indexOf(keyword) > -1); } ); } );

    Стилизация

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

    А теперь CSS:

    { background: red; }

    Но как же учитывать значение атрибута? Вот так можно применить стиль ко всем элементам с атрибутом data-warning чье значение содержит в себе слово error:

    { color: red; }

    Настройка

    Известный фреймворк Bootstrap применяет data атрибуты для настройки своих JavaScript плагинов. Пример всплывающего окна:

    Лучший способ хранить данные

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

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

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

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

    Вопросы и задачи по теме

    Перед тем как перейти к изучению следующей темы пройдите практическое задание:


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

    Давным-давно, во времена XHTML/HTML4 у разработчиков было всего несколько возможностей, которыми они могли пользоваться для того, чтобы хранить произвольные данные, относящиеся к DOM. Вы могли изобретать свои собственные атрибуты, но это было рискованно - ваш код не был бы валидным, браузеры могли игнорировать ваши данные, и это могло вызвать проблемы, если название совпадало со стандартными атрибутами HTML.

    Поэтому большинство разработчиков завязывались на атрибуты class или rel так как они были единственным разумным способом хранить дополнительные строки. К примеру, предположим, что мы создаем виджет для отображения сообщений типа временной линии сообщений в Twitter. В идеале JavaScript должен иметь возможность конфигурирования без необходимости переписывать код, так что мы определяем идентификатор пользователя в атрибуте class, например:

    Наш JavaScript код будет искать элемент с ID msglist . С помощью скрипта мы будем искать классы, начинающиеся с user_ , а “bob” в нашем случае будет идентификатором пользователя, и мы отобразим все сообщения этого пользователя.

    Скажем, мы бы хотели также задать максимальное количество сообщений, и пропускать сообщения старше шести месяцев (180 дней):

    Наш атрибут class очень быстро загромождается - проще допустить ошибку, а разбор строк на JavaScript становится все сложнее.

    Data-атрибуты HTML5

    К счастью, в HTML5 была введена возможность использовать пользовательские атрибуты. Вы можете использовать любое имя в нижнем регистре с префиксом data- , например:

    Пользовательские data-атрибуты:

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

    Пример №1 обработки на JavaScript: getAttribute и setAttribute

    Все браузеры позволяют вам получить и изменить data-атрибуты с использованием методов getAttribute и setAttribute:

    Var msglist = document.getElementById("msglist"); var show = msglist.getAttribute("data-list-size"); msglist.setAttribute("data-list-size", +show+3);

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

    Пример №2 обработки на JavaScript: метод data() библиотеки jQuery

    Начиная с версии jQuery 1.4.3 метод data() обрабатывает data-атрибуты HTML5. Вам нет необходимости явно указывать префикс data- , так что подобный код будет работать:

    Var msglist = $("#msglist"); var show = msglist.data("list-size"); msglist.data("list-size", show+3);

    Но как бы то ни было, имейте в виду, что jQuery пытается конвертировать значения таких атрибутов в подхдящие типы (булевы значения, числа, объекты, массивы или null) и затронет DOM. В отличие от setAttribute , метод data() физически не заменит атрибут data-list-size - если вы проверите его значение вне jQuery - оно все еще останется равным 5.

    Пример №3 обработки на JavaScript: API для работы с наборами данных

    И, наконец, у нас есть API для работы с наборами данных HTML5, которое возвращает объект DOMStringMap. Необходимо помнить, что data-атрибуты отображаются в объект без префиксов data- , из названий убираются знаки дефиса, а сами названия конвертируются в camelCase, например:

    Имя атрибута Имя в API набора данных
    data-user user
    data-maxage maxage
    data-list-size listSize

    Наш новый код:

    Var msglist = document.getElementById("msglist"); var show = msglist.dataset.listSize; msglist.dataset.listSize = +show+3;

    Данный API поддерживается всеми современными браузерами, но не IE10 и ниже. Для таких браузеров существует обходной путь , но, наверное, куда практичнее использовать jQuery, если вы пишете для старых браузеров.

    Последнее обновление: 08.04.2016

    Прежде чем переходить непосредственно к созданию своих веб-страниц на HTML5, рассмотрим основные строительные блоки, кирпичики, из которых состоит веб-страница.

    Документ HTML5, как и любой документ HTML, состоит из элементов, а элементы состоят из тегов. Как правило, элементы имеют открывающий и закрывающий тег, которые заключаются в угловые скобки. Например:

    Текст элемента div

    Здесь определен элемент div , который имеет открывающий тег

    и закрывающий тег
    . Между этими тегами находится содержимое элемента div. В данном случае в качестве содержимого выступает простой текст "Текст элемента div".

    Элементы также могут состоять из одного тега, например, элемент
    , функция которого - перенос строки.

    Текст
    элемента div

    Такие элементы еще называют пустыми элементами (void elements). Хотя я использовал закрывающий слеш, но его наличие согласно спецификации необязательно, и равнозначно использованию тега без слеша:

    Каждый элемент внутри открывающего тега может иметь атрибуты . Например:

    Кнопка

    Здесь определено два элемента: div и input. Элемент div имеет атрибут style . После знака равно в кавычках пишется значение атрибута: style="color:red;" . В данном случае значение "color:red;" указывает, что цвет текста будет красным.

    Второй элемент - элемент input, состоящий из одного тега, имеет два атрибута: type (указывает на тип элемента - кнопка) и value (определяет текст кнопки)

    Существуют глобальные или общие для всех элементов атрибуты, как например, style, а есть специфические, применяемые к определенным элементам, как например, type.

    Кроме обычных атрибутов существуют еще булевые или логические атрибуты (boolean attributes). Подобные атрибуты могут не иметь значения. Например, у кнопки можно задать атрибут disabled:

    Атрибут disabled указывает, что данный элемент отключен.

    Глобальные атрибуты

    В HTML5 есть набор глобальных атрибутов , которые применимы к любому элементу HTML5:

      accesskey : определяет клавишу для быстрого доступа к элементу

      class : задает класс CSS, который будет применяться к элементу

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

      contextmenu : определяет контекстное меню для элемента, которое отображается при нажатии на элемент правой кнопкой мыши

      dir : устанавливает направление текста в элементе

      draggable : определяет, можно ли перетаскивать элемент

      dropzone : определяет, можно ли копировать переносимые данные при переносе на элемент

      hidden : скрывает элемент

      id : уникальный идентификатор элемента. На веб-странице элементы не должны иметь повторяющихся идентификаторов

      lang : определяет язык элемента

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

      style : задает стиль элемента

      tabindex : определяет порядок, в котором по элементам можно переключаться с помощью клавиши TAB

      title : устанавливает дополнительное описание для элемента

      translate : определяет, должно ли переводиться содержимое элемента

    Но, как правило, из всего этого списка наиболее часто используются три: class , id и style .

    Пользовательские атрибуты

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

    Здесь определен атрибут data-color , который имеет значение "red". Хотя для этого элемента, ни в целом в html не существует подобного атрибута. Мы его определяем сами и устанавливаем у него любое значение.

    Одинарные или двойные кавычки

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

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

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

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

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

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

    Форма

    Новые типы input полей

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

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

    <input type = "url" >
    <input type = "email" >
    <input type = "color" >
    <input type = "date" >
    <input type = "datetime" >
    <input type = "datetime-local" >
    <input type = "month" >
    <input type = "number" >
    <input type = "range" >
    <input type = "search" >
    <input type = "tel" >
    <input type = "time" >
    <input type = "week" >

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

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

    1
    2
    3
    4
    5
    6


    "электронный адрес" required pattern= "[^@]+@[^@]+\.{2,6}" / >

    "по крайней мере восемь символов, содержащих хотя бы одну цифру, один символ нижнего и верхнего регистра" required pattern= "(?=.*\d)(?=.*)(?=.*).{8,}" / >

    "интернациональный, национальный или местный номер телефона" / >

    Автозаполнение с 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 появился новый атрибут для ссылок. Теперь чтобы указать браузеру, что ссылку надо загружать, а не открывать достаточно использовать данный атрибут.

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