Начална » UI / UX » Как да се изгради по-добро UX с HTML5 данни- * атрибути

    Как да се изгради по-добро UX с HTML5 данни- * атрибути

    Искали ли сте някога да добавите персонализирани данни към даден елемент на HTML, за да можете по-късно да го ползвате с JavaScript? Преди да се появи HTML5 на пазара, съхраняването на персонализирани данни, свързани с DOM, беше истински шум и разработчиците трябваше да използват всички видове неприятни хакове, като въвеждането на нестандартни атрибути или използването на остарял метод setUserData () за справяне с проблема.

    За щастие не е нужно да правите това повече, тъй като HTML5 е въвел нов глобален данни-* атрибути, които правят възможно вграждането на допълнителна информация за всички HTML елементи. Новото данни-* атрибути направи HTML по-разширяем, Следователно ви позволява да създавате по-сложни приложения, и създаване на по-усъвършенствано потребителско изживяване, без да се налага да се използват интензивни за ресурсите техники, като например Ajax-повиквания или заявки за бази данни на сървър.

    Поддръжката на браузъра на новите глобални атрибути е сравнително добра, тъй като те се поддържат от всички модерни браузъри (IE8-10 частично ги поддържа).

    Синтаксис на данни-* Атрибути

    Синтаксисът на новото данни-* атрибутите са подобни на тези на атрибутите с префикс ария. Можете да вмъкнете нисък низ на мястото на * знак. Също така трябва да присвоите стойност на всеки атрибут под формата на низ.

    Да речем, че искате да създадете За нас страница, както и името на отдела, в който работи всеки служител. Не е нужно да правите нищо друго освен да добавите данни отдел персонализиран атрибут към съответния HTML елемент по следния начин:

     
    • Джон Доу
    • Джейн Доу

    Персонализиран данни-* атрибутите са глобални, точно като клас и документ за самоличност атрибути, така че можете да ги използвате на всеки HTML елемент. Можете също да добавите толкова данни-* атрибути към HTML етикет, както искате. В примера по-горе например можете да въведете нов персонализиран атрибут данни на потребителя да съхранявате потребителски имена на служители.

     
    • Джон Доу
    • Джейн Доу

    Като общо правило, ако искате да добавите свой собствен атрибут към HTML елемент, винаги трябва да го префиксирате с данни- низ. По същия начин, когато видите атрибут с префикс на данни в кода на някой друг, можете да знаете със сигурност, че той е персонализиран атрибут, въведен от автора.

    Кога да се използва и кога да не се използват персонализирани атрибути

    W3C определя обичай данни-* атрибути като:

    “Персонализираните атрибути на данни са предназначени за съхраняване на потребителски данни, които са частни към страницата или приложението, за които няма повече подходящи атрибути или елементи.”

    Струва си да обмислите използването данни-* атрибути когато не можете да намерите други семантични атрибути за данните, които искате да съхраните.

    Не е най-добрата идея да ги използвате единствено за целите на стила, тъй като можете да избирате от клас и стил атрибути. Ако искате да съхраните тип данни, за които HTML5 има семантичен атрибут, като например Време за среща атрибут за елемент, използвайте това вместо атрибута с префикс на данните.

    Важно е да се отбележи това данни-* атрибутите държат данни, които са частна страница или приложението, което означава, че те ще бъдат игнорирани от потребителските агенти, като ботове за търсещи машини и външни приложения. Атрибутите с префикс на данни могат да бъдат достъпни единствено от кода, изпълняван на сайта, на който е разположен HTML.

    Персонализиран данни-* атрибутите се използват широко от фронтенд рамки, като например Bootstrap и Zurb Foundation. Добрата новина е, че не е задължително да знаете как да пишете JavaScript, ако искате да използвате атрибути с префикс на данни като част от рамката, тъй като само трябва да ги добавите към HTML кода, за да задействате функционалност на предварително написан плъгин за JavaScript.

    Фрагментът по-долу добавя подсказка отляво на бутон в Bootstrap, като използва данни за превключване и данни разположение потребителски атрибути и им присвоява подходящи стойности.

     

    Мишена данни-* Атрибути с CSS

    Въпреки че не се препоръчва да се използва данни-* атрибути само за стилизиращи цели, можете да изберете HTML елементите, на които принадлежат, с помощта на общите селектори на атрибути. Ако искате да изберете всеки елемент, който има определен атрибут с префикс на данни, използвайте този синтаксис в CSS:

     li [потребител на данни] цвят: син; 

    Имайте предвид, че не е потребителските имена, които ще се показват в синьо в кодовия фрагмент по-горе - след като всички данни, съхранявани в персонализираните атрибути, не са видими - но имената на служителите, съдържащи се в

  • елементи (в примера “Джон Доу” и “Джейн Доу”).

    Ако искате само да изберете елементи, в които атрибут с префикс на данни има определена стойност, това е синтаксисът, който трябва да използвате:

     li [data-department = "IT"] border: плътно синьо 1px; 

    Можете да използвате всички по-сложни селектори на атрибути на CSS, като селектора на общия комбинатор на брат ([Данни стойност ~ = "Foo"]) или селектор за заместващи символи ([Данни стойност * = "Foo"]), с атрибути с префикс на данни.

    достъп данни-* Атрибути с JavaScript

    Можете да получите достъп до данните, съхранени в персонализирания данни-* атрибути с JavaScript чрез използване на свойството на набора от данни или jQuery данни() метод.

    Vanilla JavaScript

    Най- набор от данни имотът е собственост на HTMLElement интерфейс, което означава, че можете да го използвате във всеки HTML маркер. Най- набор от данни имотът дава достъп до всички обичаи данни-* атрибути на дадения HTML елемент. Атрибутите се връщат като DOMStringMap обект, който съдържа един запис за всеки данни-* атрибут.

    В нашата За нас на страница можете лесно да проверите персонализираните атрибути “Джейн Доу” е с помощта на набор от данни собственост по следния начин:

     var jane = document.getElementById ("jane"); console.log (jane.dataset); // DOMStringMap user: "janedoe", отдел: "IT" 

    Можете да видите това в върнатото DOMStringMap обект данни- префикси се премахват от имената на атрибутите (потребител вместо данни на потребителя, и отдел вместо данни отдел). Трябва да използвате атрибутите в същия формат, ако искате да получите достъп до стойността на определен атрибут с префикс на данни (вместо списъка с всички персонализирани атрибути, като в горния кодов фрагмент).

    Можете да извлечете стойността на конкретен данни-* атрибут като свойство на набор от данни Имот. Както споменах преди, трябва да пропуснете данни- префикс от името на имота, така че ако искате да получите достъп до стойността на Jane данни на потребителя атрибут, можете да го направите по следния начин:

     var jane = document.getElementById ("jane"); console.log (jane.dataset.user) // janedoe

    JQuery е данни() метод

    Най- данни() Метод jQuery дава възможност да се получи стойността на атрибут с префикс на данни. Тук също трябва да пропуснете данни- префикс от името на атрибута за достъп до него. В нашия пример можете да покажете предупредително съобщение с името на отдела, където “момиче” работи със следния код:

     $ ("# jane"). hover (функция () var department = $ ("# jane"). данни ("отдел"); сигнал (отдел););

    Най- данни() Методът трябва да се използва внимателно, тъй като той не действа само като средство за получаване на стойността на атрибут с префикс на данни, но и за прикачване на данни към DOM елемент по следния начин:

     var town = $ ("# jane") данни ("град", "Ню Йорк"); 

    Допълнителните данни, които прикачвате с jQuery данни() методът очевидно няма да се появи в HTML кода като нов данни-* атрибут, така че ако и двете техники се използват едновременно, даденият HTML елемент ще съхранява два набора от данни, единият с HTML, а другият с jQuery.

    В нашия пример “момиче” получих нови персонализирани данни ("Град") с jQuery, но тази нова двойка ключ-стойност няма да се появи в HTML като нова данни град атрибут. Съхраняването на данни по два различни начина не е най-добрият начин да се каже най-малкото използвайте само един от двата метода едновременно.

    Достъпност и данни-* Атрибути

    Както данните се държат в обичай данни-* атрибутите са частни, асистивните технологии не могат да имат достъп до нея. Ако искате да запазите съдържанието си достъпно за потребители с увреждания, не се препоръчва да съхранявате съдържание, което може да бъде важно за потребителите по този начин.