HTML5 ÑпÑоекÑиÑован Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑÑ ÑаÑÑиÑÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ
аÑÑоÑииÑованнÑÑ
Ñ ÐºÐ°ÐºÐ¸Ð¼-либо ÑлеменÑом, но в Ñо же вÑÐµÐ¼Ñ Ð½Ðµ обÑзаÑелÑно имеÑÑиÑ
опÑеделÑнное знаÑение. data-*
аÑÑибÑÑÑ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÑÑ Ñ
ÑаниÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð² ÑÑандаÑÑнÑÑ
ÑлеменÑаÑ
HTML, без Ñ
аков вÑоде неÑÑандаÑÑнÑÑ
аÑÑибÑÑов, лиÑниÑ
DOM-ÑвойÑÑв или Node.setUserData()
.
СинÑакÑÐ¸Ñ Ð¿ÑоÑÑ â лÑбой аÑÑибÑÑ, ÑÑÑ Ð¸Ð¼Ñ Ð½Ð°ÑинаеÑÑÑ Ñ data-
, ÑвлÑеÑÑÑ data-*
аÑÑибÑÑом. ÐÑедположим Ñ Ð½Ð°Ñ Ð¸Ð¼ÐµÐµÑÑÑ ÑÑаÑÑÑ Ð¸ Ð¼Ñ Ñ
оÑим ÑоÑ
ÑаниÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð±ÐµÐ· визÑалÑного пÑедÑÑавлениÑ. ÐÐ»Ñ ÑÑого можно иÑполÑзоваÑÑ data
-аÑÑибÑÑÑ:
<article
id="electriccars"
data-columns="3"
data-index-number="12314"
data-parent="cars">
...
</article>
ÐоÑÑÑп в JavaScript
ЧÑение data-
аÑÑибÑÑов в JavaScript оÑÑÑеÑÑвлÑеÑÑÑ Ñакже пÑоÑÑо. ÐÐ»Ñ ÑÑого можно иÑполÑзоваÑÑ Ð¼ÐµÑод getAttribute()
Ñ Ð¿Ð°ÑамеÑÑом, ÑавнÑм Ð¿Ð¾Ð»Ð½Ð¾Ð¼Ñ Ð¸Ð¼ÐµÐ½Ð¸ аÑÑибÑÑа. Ðо еÑÑÑ Ð¸ более пÑоÑÑой ÑпоÑоб, иÑполÑзÑÑ Ð¾Ð±ÑÐµÐºÑ dataset
.
ЧÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ data
-аÑÑибÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ взÑÑÑ ÑвойÑÑво обÑекÑа dataset
Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼, ÑавнÑм ÑаÑÑи имени аÑÑибÑÑа поÑле data-
(обÑаÑиÑе внимание, ÑÑо деÑиÑÑ Ð² имени пÑеобÑазÑÑÑÑÑ Ð² camelCase).
var article = document.getElementById('electriccars'); article.dataset.columns // "3" article.dataset.indexNumber // "12314" article.dataset.parent // "cars"
Ðаждое ÑвойÑÑво ÑвлÑеÑÑÑ ÑÑÑокой и Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑоÑиÑано и запиÑано. РпÑиведÑнном вÑÑе пÑимеÑе вÑполнение кода article.dataset.columns = 5
пÑиведÑÑ Ðº ÑомÑ, ÑÑо новое знаÑение аÑÑибÑÑа ÑÑÐ°Ð½ÐµÑ ÑавнÑм "5"
.
ÐамеÑим, ÑÑо data
-аÑÑибÑÑÑ ÑвлÑÑÑÑÑ Ð¾Ð±ÑÑнÑми HTML-аÑÑибÑÑами, к коÑоÑÑм можно полÑÑиÑÑ Ð´Ð¾ÑÑÑп в CSS. ÐапÑимеÑ, ÑÑÐ¾Ð±Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°ÑÑ ÑодиÑелÑÑкие даннÑе о ÑÑаÑÑе можно иÑполÑзоваÑÑ Ð³ÐµÐ½ÐµÑиÑÑемÑй конÑÐµÐ½Ñ Ð¸ CSS ÑÑнкÑÐ¸Ñ attr()
:
article::before {
content: attr(data-parent);
}
Также можно иÑполÑзоваÑÑ ÑелекÑоÑÑ Ð°ÑÑибÑÑов в CSS Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑÑилей в ÑооÑвеÑÑÑвии Ñ Ð´Ð°Ð½Ð½Ñм:
article[data-columns="3"] {
width: 400px;
}
article[data-columns="4"] {
width: 600px;
}
УвидеÑÑ ÐºÐ°Ðº ÑÑо ÑабоÑÐ°ÐµÑ Ð¼Ð¾Ð¶Ð½Ð¾ в пÑимеÑе на JSBin.
Data
-аÑÑибÑÑÑ Ñакже могÑÑ Ð¸ÑполÑзоваÑÑÑÑ Ð´Ð»Ñ Ñ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð¸Ð½ÑоÑмаÑии, коÑоÑÐ°Ñ Ð¿Ð¾ÑÑоÑнно изменÑеÑÑÑ, напÑимеÑ, ÑÑÑÑ Ð² игÑе. ÐÑполÑзÑÑ CSS ÑелекÑоÑÑ Ð¸ возможноÑÑи JavaScript можно ÑоздаваÑÑ Ð½ÐµÐºÐ¾ÑоÑÑе изÑÑнÑе ÑÑÑекÑÑ, без необÑ
одимоÑÑи пиÑаÑÑ Ñвои ÑÑнкÑии оÑобÑажениÑ. ÐоÑмоÑÑиÑе ÑкÑинкаÑÑ ÑÑÐ¾Ð±Ñ ÑвидеÑÑ Ð±Ð¾Ð»ÑÑе пÑимеÑов иÑполÑзÑÑÑиÑ
ÑгенеÑиÑованнÑй конÑÐµÐ½Ñ Ð¸ пеÑеÑ
Ð¾Ð´Ñ Ð½Ð° CSS. ÐÑÐ¸Ð¼ÐµÑ ÐºÐ¾Ð´Ð° из ÑкÑинкаÑÑа можно Ñакже поÑмоÑÑеÑÑ Ð½Ð° JSBin.
Ðе Ñ
ÑаниÑе даннÑе, коÑоÑÑе Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð²Ð¸Ð´Ð¸Ð¼Ñ Ð¸ доÑÑÑÐ¿Ð½Ñ Ð² data
-аÑÑибÑÑаÑ
. Ðело в Ñом, ÑÑо вÑпомогаÑелÑÐ½Ð°Ñ ÑеÑ
ника (assistive technology) Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ полÑÑиÑÑ Ðº ним доÑÑÑп. Рдополнение, поиÑковÑе ÑобоÑÑ Ð½Ðµ индекÑиÑÑÑÑ Ð´Ð°Ð½Ð½Ñе, ÑодеÑжаÑиеÑÑ Ð² data
-аÑÑибÑÑаÑ
.
ÐеÑалÑно, ÑÑо вÑÑ Ð¿ÑоÑÑое и полезное в ÑÑой жизни не доÑÑаÑÑÑÑ Ð±ÐµÑплаÑно. Internet Explorer 11+ поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑÑÐ¾Ñ ÑÑандаÑÑ, но вÑе более Ñанние веÑÑии не поддеÑживаÑÑ dataset
. ÐÐ»Ñ Ð¿Ð¾Ð´Ð´ÐµÑжки IE 10 и более ÑанниÑ
веÑÑий полÑÑение доÑÑÑпа к data
-аÑÑибÑÑам необÑ
одимо оÑÑÑеÑÑвлÑÑÑ ÑеÑез getAttribute()
. Также, пÑоизводиÑелÑноÑÑÑ ÑÑÐµÐ½Ð¸Ñ data-
аÑÑибÑÑов по ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ñ Ñ
Ñанением ÑÑиÑ
даннÑÑ
в Ñ
ÑанилиÑе даннÑÑ
JS знаÑиÑелÑно Ñ
Ñже. ÐÑполÑзование dataset
еÑÑ Ð¼ÐµÐ´Ð»ÐµÐ½Ð½ÐµÐµ, Ñем ÑÑение даннÑÑ
Ñ getAttribute()
.
Тем не менее, Ð´Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑелÑÑкиÑ
меÑаданнÑÑ
, ÑвÑзаннÑÑ
Ñ ÑлеменÑами, data-
аÑÑибÑÑÑ ÑвлÑÑÑÑÑ Ð¾ÑлиÑнÑм ÑеÑением.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4