Сьогоднішня стаття присвячена розгляду нововведення в HTML5 – користувацьких атрибутів даних (data). Ви дізнаєтеся, що таке атрибути data
, навіщо вони потрібні, і як їх можна використовувати.
Дуже часто розробникам потрібно зберігати певну інформацію, пов’язану з різними елементами DOM. Найчастіше така інформація більше потрібна саме програмістам, а не відвідувачам сайту. Припустимо, вам потрібно визначати тип блоку DOM (section
, footer
і т.д.) і привласнювати йому ідентифікатор, щоб пізніше додавати до нього певні CSS стилі.
Це легко можна зробити і за допомогою атрибутів id
або class
. Але, іноді, такого рішення мало. З огляду на наступні обмеження:
class
не призначений для зберігання розширених даних. Його основна мета – привласнювати CSS стилі певному набору елементів.
Щоб вирішити ці завдання, в HTML5 були введені атрибути даних. Всі атрибути елемента, назва якого починається з data-
, є атрибутами даних. Ці атрибути даних можна використовувати і для присвоєння стилів елементам DOM.
Назва атрибута даних завжди починається з data-
. Наприклад:
<div data-element-type="section" data-nonce="bfc9a753f7" data-id="25018"> Section </div>
Крім префікса data-
, назва допустимого користувацького атрибуту даних може містити тільки латинські букви, цифри, дефіс (–), крапку (.), двокрапку (:) або підкреслення (_). Для назви не можна використовувати великі літери.
Зауваження щодо використання атрибутів даних:
string
. Все, що може бути закодовано у вигляді рядка, також може зберігатися в атрибутах даних. Якщо потрібно виконати перетворення типів, використовуйте для цього JavaScript.data-class
.
Тепер давайте перейдемо до розгляду практичного застосування атрибутів даних і дізнаємося, як отримати доступ до їх значень в CSS і JavaScript.
Ви можете використовувати атрибути даних в CSS для стилізації елементів за допомогою селекторів атрибутів. Ви також можете показати інформацію, що зберігається в атрибуті даних, користувачам (в підказці або іншим способом) за допомогою функції attr()
jQuery.
Якщо взяти приклад з типами блоків, ви можете по-різному стилізувати їх фоновий колір. Приклад селектора в CSS:
div[data-element-type='section'] { background: #ccc; }
Ви можете використовувати спливаючі підказки, щоб показати користувачам деяку додаткову інформацію, пов’язану з елементом. Інформація, яку ви хочете показати, може зберігатися в атрибуті data-tooltip
.
<span data-tooltip="Приклад підказки (tooltip)">Підказка</span>
Потім ви можете показувати ці дані користувачеві з допомогою псевдоелемента ::before
.
span.tooltip::before { content: attr(data-tooltip); position: absolute; top: 25px; font-size: 15px; display: none; } span.tooltip:hover::before { display: inline-block; }
Ви можете отримати доступ до атрибутів даних в JavaScript за допомогою різних способів.
Спосіб №1: Використання getAttribute
і setAttribute
Метод getAttribute
повертає або пусте значення (null
), або порожній рядок, якщо даний атрибут не існує. Ось приклад використання цього методу:
var element = document.getElementById("some-block"); var blockType = element.getAttribute("data-element-type");
Ви можете використовувати метод setAttribute
, щоб змінити значення існуючих атрибутів або додати нові атрибути.
element.setAttribute("data-id", "newId");
Спосіб №2: Використання jQuery
Ви також можете використовувати метод jQuery data()
для доступу до атрибутів даних елемента. До версії jQuery 1.6 використовувався наступний код для доступу до атрибутів даних:
var element = $("#some-block"); var blockType = element.data("element-type"); element.data("element-type", "newData");
Починаючи з версії jQuery 1.6 використовується версія атрибутів даних у форматі camelCase (ВерблюжийРегістр). Тепер ви можете зробити те ж саме, використовуючи наступний код:
var element = $("#some-block"); var blockType = element.data("elementType"); element.data("elementType", "newData");
У сьогоднішній статті ми розглянули основні моменти, які вам потрібно знати про атрибути даних (data-
) в HTML5. Крім створення спливаючих підказок і стилізації елементів за допомогою селекторів атрибутів, ви можете використовувати атрибути даних для зберігання і відображення користувачам різних даних, таких як повідомлення про непрочитані повідомлення та маси інших.
Дякуємо, що читаєте нас!
Коли ви встановлюєте WordPress, він люб'язно надає вам стандартну сторінку реєстрації за адресою wp-login.php?action=register. Вона…
Це може звучати як заголовок якоїсь книжки з психології, або саморозвитку, однак це дійсно важлива…
Чи замислювалися ви коли-небудь, як ваш фізичний сервер, один шматок "заліза", перетворюється на десяток незалежних…
Хостинг - це не просто оренда серверів, а ціла модель використання інфраструктури мережі. Вона виникла…
Акцентна стіна стане ідеальним рішенням для швидкої трансформації будь-якого приміщення. Цей інноваційний дизайнерський метод здатен…
Ви знайомі з ситуацією, коли в одній кімнаті треба вмістити все? І спальню, і вітальню,…