π htmlμ data-μμ± μ¬μ©λ² μλ²½ κ°μ΄λ
HTML λ°μ΄ν°μ μμ±
HTMLμ λ°μ΄ν°μ μμ±μ 컀μ€ν μ¬μ©μ μμ±μ DOM μμμ μ μ₯νλλ° νμ€νλ λ°©λ²μ μ 곡νλ€. νλ§λλ‘ μλ°μ€ν¬λ¦½νΈμμ λ³μλ₯Ό μ¬μ©νλ―μ΄, μΌμ’ μ htmlμ λ³μ μν μ΄λΌκ³ λ§ν μ μλ€.
λ°μ΄ν°μ μμ±μ μ₯μ
μΌλ° μμ± κ³Ό λ°μ΄ν°μ μμ±
λ°μ΄ν°μ λ μΌμ’ μ μμ±(attribute)μ΄λ€. λ³΄ν΅ htmlμμ μμ±μ΄λΌ νλ κ²μ μ¬λ¬λΆλ μ μλ―μ΄ id, class, src, title λ±μ νκ·Έμ λΆμ΄λ μ΄νΈλ¦¬λ·°νΈλ₯Ό λ§νλ€. μ΄λ€ μμ±μ νΉμ νκ·Έμ μμ€ κ²½λ‘λ μ΄λ¦, λλΉ, μμ΄λλ₯Ό κΈ°μ¬νλλ° μ ν΄μ Έ μλ€.
κ·Έλ°λ° html νκ·Έμ κ·Έ μ리먼νΈλ§μ΄ μ§λκ³ μλ κ³ μ ν 컀μ€ν
κ°μ μ§μ ν΄ μ¬μ©νκ³ μΆμ λκ° μλ€. λ§μΉ μλ μ½λ μ²λΌ input νκ·Έμ value μμ±μΌλ‘ κ°μ κΈ°μ¬ν΄μ£Όλ©΄, μλ°μ€ν¬λ¦½νΈλ‘ λ³λλ‘ λ³μλ₯Ό λ§λ€μ΄ μ΄ λ³μλ μ΄λ μ리먼νΈμ κ°μ νννλ€λ λ§€μΉ μν€λ μμ
μ μ€μΌ μ μμ΄ μ§κ΄μ±κ³Ό μμ°μ±μ΄ ν₯μ λκΈ° λλ¬Έμ΄λ€.
<input type="radio" name="gender" value="male">
<input type="radio" name="gender" value="female">
μ€μ λ‘ λ°μ΄ν° μμ±μ΄ λμ€κΈ° μ΄μ μλ, λ§μΌ html μμ μ΄λ ν κ³ μ ν κ°μ μ μ₯ν νμκ° μλ€λ©΄ λ€μκ³Ό κ°μ΄ hidden μΌλ‘ νκ·Έλ₯Ό λ¬Έμλ‘λΆν° κ°μΆκ³ value μμ±μΌλ‘ κ°μ μ μ₯νλ μ©λλ‘μ¨ μ°μ΄κΈ°λ νμλ€.
<!-- hidden νμ
μΌλ‘ νκ·Έλ₯Ό λ¬Έμμμ κ°λ¦¬κ³ ,
CountryλΌλ μ΄λ¦μΌλ‘ Norway κ°μ λ¬Έμμ μ μ₯νκ³ κΊΌλ΄ μΈλ μμ£Ό μ μ©λμλ λ°©μμ΄λ€ -->
<input type="hidden" name="Country" value="Norway"> <!-- let Contry = "Norway" -->
νμ§λ§ value μμ±μ μ무 μ리먼νΈμμ μ¬μ©ν μ μλ μμ±μ΄ μλλ€. (μ¬μ©μ κ°λ₯νμ§λ§ HTML νμ€μ μλ°°λλ€)
κ·Έλμ λ§μΌ input νκ·Έ μΈμ μλ§¨ν± νκ·Έλ div νκ·Έμλ λ³λμ νκ·Έμ κ³ μ κ°μ μ μ₯νκ³ μΆμλλ μλ°μ€ν¬λ¦½νΈλ‘ 볡μ‘νκ² μ°ννμ¬μΌ νλ€.
κ·Έλ¬λ λ°μ΄ν°μ
μ νκ·Έ λ΄μ data- λ‘ μμνλ ν€μλλ₯Ό κΈ°μ¬νκ³ κ·Έ λ€μ νμ΄ν(-)μ΄ μ‘°ν©λ ννλ‘ κ°λ°μκ° μ μνκ³ μΆμ μμ±λͺ
μ κΈ°μ¬ν΄μ£Όκ³ μμ±κ°μ μ¨μ£Όλ©΄ μ¬μ©μ λ³μκ° μμ±λλ€.
<input type="text" data-country="Norway" data-code="c03" name="Country">
λ°μ΄ν° μμ±μ μ°λ©΄ ν¨μ¬ μ€ν¬λ¦½νΈκ° κ°κ²°ν΄μ§λ©° λν νλμ μμμλ μ¬λ¬ λ°μ΄ν° μμ±μ λμμ μ¬μ©ν μλ μμ΄ νμ₯μ±μ΄ λλ€.
λ°μ΄ν°μ μ¬μ© μ¬λ‘
μμ λ§νλ― λ°μ΄ν°μ μ μ΄μ©ν΄λ λκ³ μν΄λ λλ€. λ€λ§ μλμ κ°μ΄ 'μ’μμ κ°―μ λ²νΌ'μ νμνλ μμλ₯Ό λ§λ€ κ²½μ°, μ΄ μ’μμ κ°―μλ₯Ό μλ°μ€ν¬λ¦½νΈλ‘ κ°μ§κ³ μλ κ²λ³΄λ€ μ΄λ κ² μ§μ λ²νΌ μμμ κ°―μκ°μ μΈλΌμΈμΌλ‘ μ§μ ννν¨μΌλ‘μ¨ λ³΄λ€ μ§κ΄μ μ΄κ² λλ€.
<button data-id="341">μ’μμβ‘</button>
λ°μ΄ν°μ μ λ°°μ΄, κ°μ²΄ λ°μ΄ν° μ μ₯
μ’ λ κΈ°λ₯μ μμ©νμ¬, λ°μ΄ν° μμ±μλ λ¨μ λ¬Έμμ΄μ λμ΄ κ°μ²΄μ λ°°μ΄λ μ μ₯μ΄ κ°λ₯νλ€. μ νν λ§νμλ©΄ μλλ λ¬Έμμ΄λ§ μ μ₯μ΄ κ°λ₯νμ§λ§, κ°μ²΄ ννλ‘ λ λ¬Έμμ΄κ³Ό λ°°μ΄ ννλ‘ λ λ¬Έμμ΄μ λ Έλμ μ§μ νκ³ μ΄λ₯Ό μλ°μ€ν¬λ¦½νΈλ‘ λ³λμ νμ± μμ μ ν΅ν΄ μ¬μ©ν¨μΌλ‘μ¨, λ§μΉ html μ리먼νΈμ μΈλΌμΈμΌλ‘ κ°μ²΄ λ°μ΄ν°λ₯Ό κΈ°μ¬ν μ μλ€λ μμ© λ°©λ²μ΄ μλ€κ³ 보면 λλ€. (μλ°μ€ν¬λ¦½νΈλ‘ νμ±νλ λ°©λ²μ λ°λ‘ λ€μμ λ€λ£¬λ€)
<!-- κ°μ²΄ ννλ‘ λ λ¬Έμμ΄ λ°μ΄ν°μ
-->
<div data-person='{"name": "Chris Coyier", "job": "Web Person"}'></div>
<!-- λ°°μ΄ ννλ‘ λ λ¬Έμμ΄ λ°μ΄ν°μ
-->
<div data-fruit='["apple", "banana", "melon"]'></div>
μλ°μ€ν¬λ¦½νΈλ‘ λ°μ΄ν°μ λ€λ£¨κΈ°
JavaScript λ°μ΄ν°μ μ¬μ©λ²
λ°μ΄ν°μ μ κ·ΌνκΈ°
htmlμ λ€μκ³Ό κ°μ λ°μ΄ν°μ μμ±μ κ°μ§ div μ리먼νΈκ° μλ€κ³ νμ.
<div id="post" data-columns="3" data-title="javascript" data-index-number="123">
...
</div >
μλ°μ€ν¬λ¦½νΈλ‘ μ΄ μμμ λ°μ΄ν° μμ±μ μ κ·Όνμ¬ κ°μ μ½μ΄λ€μΌ μ μκ³ μ¬λ³κ²½λ κ°λ₯νλ€. μλ°μ€ν¬λ¦½νΈλ‘ λ°μ΄ν° μμ±μ μ κ·Όνλ λνμ μΈ λ°©λ²μ λ€μ λκ°μ§κ° μλ€.
datasetνλ‘νΌν°λ‘ μ κ·Ό- μΌλ°μ μΈ μμ± μ κ·Ό λ©μλ
getAttribute()μ¬μ©
const $div = document.getElementById('post');
// μΌλ°μ μΈ κ°μ²΄ μμ± μ κ·Ό
$div.dataset.columns // "3"
// λ°°μ΄ μΈλ±μ€λ‘ μ κ·Ό
$div.dataset['title'] // "javascript"
// data-index-numberμμ dataset.indexNumberλ‘ λ³ν
$div.dataset.indexNumber // "12314"
const $div = document.getElementById('post');
$div.getAttribute('data-columns') // "3"
$div.getAttribute('data-title') // "javascript"
$div.getAttribute('data-index-number') // "12314"
λμ€ μ΄λ λ°©λ²μΌλ‘ μ κ·Όνλ νΈν λ°©μμΌλ‘ μ¬μ©νλ©΄ λλ€. λ€λ§ λ§μΌ IE μ κ°μ λ°μ΄ν°μ
λ―Έμ§μ λΈλΌμ°μ μμλ getAttribute()λ₯Ό μ¬μ©ν΄μΌ νλ€.
μ΄λ dataset νλ‘νΌν°λ‘ μ κ·Όν κ²½μ° μμ± μ΄λ¦μ΄ μλμΌλ‘ λν νκΈ°λ²(Camel-Case) μΌλ‘ λ³νλλ€λ μ μ μ μν΄μΌ νλ€. μλ°μ€ν¬λ¦½νΈμμ λ³μλͺ
μΌλ‘ - κΈ°νΈκ° νμ©λμ§ μκΈ° λλ¬Έμ΄λ€. κ·Έλμ data-index-number μμ dataset.indexNumberλ‘ λ³νλκ² λλ€.
λ°μ΄ν°μ μΆκ° / λ³κ²½ νκΈ°
μμλ μλ°μ€ν¬λ¦½νΈλ‘ λ°μ΄ν° μμ±μ μΆκ°νκ±°λ κ°μ λ³κ²½νλ λνμ μΈ λ°©λ²μ λ€μ λκ°μ§κ° μλ€.
- dataset νλ‘νΌν°λ‘ μ κ·Όν΄ μΆκ°/λ³κ²½
- μΌλ°μ μΈ μμ± λ³κ²½ λ©μλ
setAttribute()μ¬μ©
const $div = document.getElementById('post');
$div.dataset.comments = '10';
$div.dataset.countryLangInfo = 'ko';
// data-country-lang-info λ‘ μ μ₯
const $div = document.getElementById('post');
$div.setAttribute('data-comments', '10')
$div.setAttribute('data-country-lang-info', 'ko')
<div id="post"
data-columns="3"
data-title="javascript"
data-index-number="123"
data-comments="10"
data-country-lang-info="ko"
>
...
</div>
λ°μ΄ν°μ μμ νκΈ°
μλ°μ€ν¬λ¦½νΈλ‘ λ°μ΄ν° μμ±μ μ κ±°νλ λνμ μΈ λ°©λ²μ λ€μ λκ°μ§κ° μλ€.
deleteν€μλλ‘ κ°μ²΄ μμ± μμ - μΌλ°μ μΈ μμ± μ κ±° λ©μλ
removeAttribute()μ¬μ©
const $div = document.getElementById('post');
delete $div.dataset.title; // delete ν€μλλ‘ κ°μ²΄ μμ± μμ
$div.removeAttribute('data-comments');
λ°μ΄ν°μ 리μ€νΈ μΆλ ₯
μλ°μ€ν¬λ¦½νΈλ DOM μμ± μμ μ data- λ‘ μμνλ μμ±λ€μ νλλ‘ λͺ¨μ dataset 맡(Map)μ λ§λ€μ΄ κ΄λ¦¬νλ€. μμ²λΌ λ°μ΄ν°μ
μμ±μ νλμ© μΆλ ₯ν΄ νμΈν μλ μμ§λ§, .dataset νλ‘νΌν° μ체λ₯Ό μ κ·Όνλ©΄ μλ μ²λΌ λ°μ΄ν°μ
κ΄λ ¨ λͺ¨λ μμ± λ¦¬μ€νΈ μΆλ ₯μ΄ κ°λ₯νλ€.
console.log($div.dataset)
νΉμ λ°μ΄ν°μ μ κ°μ§λ λ Έλ κ°μ Έμ€κΈ°
querySelectorλ‘ νΉμ ν λ°μ΄ν°μ μ κ°μ§κ³ μλ μμλ₯Ό κ°μ Έμ€λ €λ©΄, μμ± μ νμ λ¬Έλ²κ³Ό νΌν©νμ¬ μ¬μ©νλ©΄ λλ€.
document.querySelector('div[data-title="javascript" ]');
document.querySelectorAll('div[data-comments="10"]');
JSON λ°μ΄ν°μ λ€λ£¨κΈ°
ν¬μ€ν μ΄λ°μ μ κΉ μκ°ν λ°μ΄ν°μ μΌλ‘ λ°°μ΄, κ°μ²΄ ννμ λ¬Έμμ΄μ μ μ₯νμ¬ μ΄λ₯Ό λμ€μ μλ°μ€ν¬λ¦½νΈλ‘ νμ±νμ¬ μ¬μ©νλ€κ³ λ§ν λ° μλ€. λ°©λ²μ μ ν μ΄λ ΅μ§ μμλ° μλ°μ€ν¬λ¦½νΈμ JSON κ°μ²΄μ λ©μλλ₯Ό ν΅ν΄ κ°λ¨νκ² λ³νμ΄ κ°λ₯νλ€. μλ°μ€ν¬λ¦½νΈμμ λ°°μ΄κ³Ό κ°μ²΄ λͺ¨λ Objectλ‘ μ·¨κΈλκΈ° λλ¬Έμ μ΄λ°μμΌλ‘ μμ©μ΄ κ°λ₯ν κ²μ΄λ€.
JSON λ°μ΄ν°μ μ½κΈ°
<!-- κ°μ²΄ ννλ‘ λ λ¬Έμμ΄ λ°μ΄ν°μ
-->
<div id='person' data-person='{"name": "Chris Coyier", "job": "Web Person"}'></div>
<!-- λ°°μ΄ ννλ‘ λ λ¬Έμμ΄ λ°μ΄ν°μ
-->
<div id='fruit' data-fruit='["apple", "banana", "melon"]'></div>
/* λ°μ΄ν°μ
λ¬Έμμ΄ κ°μ²΄λ₯Ό μλ°μ€ν¬λ¦½νΈ κ°μ²΄λ‘ λ³ν */
const $div1 = document.querySelector('#person');
const obj = $div1.dataset.person; // λ°μ΄ν°μ
κ°μ Έμ€κΈ°
const people = JSON.parse(obj); // μλ°μ€ν¬λ¦½νΈ objectλ‘ λ³ν
console.log(people.name); // Chris Coyier
console.log(people.job); // Web Person
/* λ°μ΄ν°μ
λ¬Έμμ΄ λ°°μ΄μ μλ°μ€ν¬λ¦½νΈ λ°°μ΄λ‘ λ³ν */
const $div2 = document.querySelector('#fruit');
const arr = $div2.dataset.fruit; // λ°μ΄ν°μ
κ°μ Έμ€κΈ°
const fruits = JSON.parse(arr);
console.log(fruits); // ['apple', 'banana', 'melon']
JSON λ°μ΄ν°μ μ°κΈ°
// html λ
Έλμ μΆκ°νκ³ μΆμ κ°μ²΄ λ°μ΄ν° (λ°°μ΄λ κ°λ₯)
const info = {
id: "slider",
min: 3,
max: 50
};
// μλ°μ€ν¬λ¦½νΈ κ°μ²΄λ₯Ό λ¬Έμμ΄λ‘ λ³ν
const str = JSON.stringify(info);
// λ°μ΄ν°μ
μ μ°κΈ°
$div1.dataset.info = str;
// or
$div1.setAttribute('data-info', str);
<div id='person'
data-person='{"name": "Chris Coyier", "job": "Web Person"}'
data-info='{"id":"slider","min":3,"max":50}'
>
</div>
JQuery λ°μ΄ν°μ μ¬μ©λ²
μ μ΄μΏΌλ¦¬μμλ μ’ λ νΈν λ°μ΄ν°μ
μ μ© λ©μλ data() λ₯Ό μ 곡νλ€.
λ°μ΄ν°μ μ μ₯
$('div').data(key) // λ°μ΄ν° μ½κΈ°
<span data-member-name='μΈν'>μ΄λ¦</span>
<script>
$("#span").data("memberName");
$("#span").attr("data-member-name"); // μΌλ° μμ± λ©μλλ‘λ κ°μ Έμ¬ μ μλ€
</script>
λ§μΌ keyλ₯Ό μλ΅νκ³ .data()μΌλ‘ νΈμΆν κ²½μ°μλ ν΄λΉ μ리먼νΈμ μ μ₯λ λͺ¨λ dataλ€μ΄ JSONνμμΌλ‘ 리ν΄λλ€.
λ°μ΄ν°μ μΆκ° / λ³κ²½ νκΈ°
$('div').data(key, value) // λ°μ΄ν° μ μ₯
λ°μ΄ν°μ μμ νκΈ°
$('div').removeData(key)
λ°μ΄ν°μ μ μ¬μ©νλ λΌμ΄λΈλ¬λ¦¬
μ΄λ¬ν λ°μ΄ν°μ
μ μ¬μ©μκ° νΉμ λ
Έλμ λΌμ΄λΈλ¬λ¦¬μ ν¨κ³Όλ₯Ό μ μ©νλλ° μμ΄ μ λ§ κ°νΈνκ² μ€μ νλλ‘ λμμ€λ€. λνμ μΈ λΌμ΄λΈλ¬λ¦¬λ‘ μ€ν¬λ‘€ μμ§μμ λ°λΌ κ°μ²΄μ μμ§μμ μ£Όλ μ λλ©μ΄μ
μ μ£Όλ AOS λΌμ΄λΈλ¬λ¦¬λ₯Ό λ€ μ μλλ°, μ¬μ©λ²μ 보면, μ λλ©μ΄μ
ν¨κ³Όλ₯Ό μ£Όκ³ μΆμ νκ·Έμ data-aos κ΄λ ¨ λ°μ΄ν° μμ±μ κΈ°μ¬νκΈ°λ§ νκ³ μμ€λ₯Ό λΆλ¬μ€λ©΄ μμμ μ μ©μ΄ λκ² λλ€.
<html>
<head>
<!-- AOS λΌμ΄λΈλ¬λ¦¬ λΆλ¬μ€κΈ°-->
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css">
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
</head>
<body>
<!-- data-aos-* μμ±μ νκ·Έμλ€κ° μ¨μ£Όλ©΄ μμμ λμλκ² λλ€ -->
<div data-aos="fade-up"
data-aos-offset="200"
data-aos-easing="ease-out-cubic"
data-aos-duration="2000"
>
</div>
<!-- AOS μ€ν¬λ¦½νΈ μμ -->
<script>
AOS.init(); // μλ°μ€ν¬λ¦½νΈλ‘ init()μ ν΄μΌ λμνλ€.
</script>
</body>
</html>
CSSλ‘ λ°μ΄ν°μ λ€λ£¨κΈ°
λ°μ΄ν°μ μμ html μμ± μ€ νλμ΄κΈ° λλ¬Έμ μμ± μ νμλ₯Ό ν΅ν΄ CSSμμλ μ κ·Όνμ¬ μ€νμΌλ§μ μ§μ ν μ μλ€.
<div class="card" data-foo="bar">content</div>
div.card[data-foo="bar"] {
color: red;
}
CSS λ°μ΄ν°μ νμ© μ¬λ‘
λ°μ΄ν°μ μ νμλ‘ ν΄λμ€ μ§μ μλ₯Ό μ μ½
μ΄λ°μμΌλ‘ λ°μ΄ν°μ μμ±μΌλ‘ CSS μ κ·Όμλ‘ μ΄μ©νλ©΄ μ€ν¬λ¦½νΈλ₯Ό νΈλ€λ§νκΈ° μν΄μ μλ―Έ μλ classλ id μ¬μ©μ μκ²νκ² λκ³ , ν΄λμ€ μ§μ μκ° λ§μ΄ μ¬μ©λ κ²½μ° λ°μ΄ν°μ μμ±μ μ€ μμλ§ λ³λλ‘ μ€νμΌ μμλ₯Ό μ μ©ν μ μλ€λ μ₯μ μ΄ μλ€.
μλ₯Όλ€μ΄ λ€μκ³Ό κ°μ΄ λκ°μ div μ리먼νΈμ λν΄μ λ€λ₯Έ λ°°κ²½μμ μ§μ νκ³ μΆλ€λ©΄ κ° divλ§λ€ λ€λ₯Έ ν΄λμ€ μ§μ μλ₯Ό μ€μλ μμ§λ§, μλμ²λΌ λ°μ΄ν° μμ±μΌλ‘ μ§κ΄μ μΌλ‘ μ¬ννκ² κ΅¬μ±μ΄ κ°λ₯ν κ²μ΄λ€.
<div data-columns="1"></div>
<div data-columns="2"></div>
<div data-columns="3"></div>
/* κ³΅ν΅ μ§μ */
div[data-columns] {
height: 100px;
padding: 1rem;
margin: 0 0 1rem 0;
}
/* κ°λ³ μ§μ */
div[data-columns="1"] {
background: #64B5F6;
}
div[data-columns="2"] {
background: #9CCC65;
}
div[data-columns="3"] {
background: #FFB74D;
}
λ°μ΄ν°μ μκ°μ μΈ μ¬μ©
cssμ attr() ν¨μλ₯Ό ν΅ν΄ ν΄λΉ μμμ μμ±μ κ°μ Έμ¬ μ μλλ° λ°μ΄ν°μ
μμ±λ μμΈκ° μλλ€.
μλ μμ λ μμ¬ μμ μ νμμ content μμ±μ κ°μΌλ‘ μ리먼νΈμ λ°μ΄ν°μ
μμ±κ°μ 맡νν΄ μ§μ ν΄μ£Όλ μμμ΄λ€. μ΄λ°μμΌλ‘ 맡νμ νκ²λλ©΄ μλ°μ€ν¬λ¦½νΈλ‘ λ°μ΄ν°μ
μμ±κ°λ§ λ³κ²½μν€λ©΄ 컨ν
μΈ λ΄μ©λ λμ μΌλ‘ λ³κ²½νλ ν¨κ³Όλ₯Ό λ릴 μ μλ€.
<div class="contents" data-start-date="2022-12-26" data-end-date="2023-02-28"></div>
.contents:before {
/* div.contents μ리먼νΈμ data-content μμ±μ κ°μ Έμ νμ */
content: "μ΄λ²€νΈ κΈ°κ°μ " attr(data-start-date) "μΌλΆν° " attr(data-end-date) "κΉμ§μ
λλ€.";
}
See the Pen css dataset attr by barzz12 (@inpaSkyrim) on CodePen.
λ°μ΄ν°μ λμλ¬Έμ ꡬλΆνμ§ μκΈ°
λ§μΌ λ€μκ³Ό κ°μ΄ κ°μ λ¨μ΄μ΄μ§λ§ λμλ¬Έμκ° λ€λ₯Έ κ°μΈ λ Έλλ€μ λͺ¨λ μ ννκ³ μΆλ€λ©΄ λκ΄νΈ λμ i κΈ°νΈλ₯Ό μ¨μ£Όλ©΄ λλ€.
<div data-state="open"></div>
<div data-state="Open"></div>
<div data-state="OPEN"></div>
<div data-state="oPeN"></div>
[data-state="open" i] {
}
λ°μ΄ν°μ μ¬μ© μ£Όμμ¬ν
μ μ ν κΈ°μ‘΄ νΉμ±μ΄λ μμλ₯Ό λ체νλ λ° μ¬μ© X
λ°μ΄ν°μ μ μμ λ‘μ΄ html μμ±μ΄λΌ μ μ½μ κ±°μ μλ€ μΆμ§λ§, λ§μΌ μ΄λ―Έ μ€μ λμκ±°λ λ μ μ ν μμ±μ΄ μλ κ²½μ° λ°μ΄ν° μμ±μ μ¬μ©νμ§ μκΈ°λ₯Ό κΆμ₯νλ λ°λ€.
μλ₯Ό λ€μ΄ λ€μκ³Ό κ°μ΄ μκ° μμλ₯Ό λ¬Έμμ νννκ³ μΆμλ, μ€νμ <time> μ΄λΌλ νκ·Έμ μ μ ν datatime μ΄λΌλ μμ±μ΄ μμ§λ§, μ΄κ±Έ 무μνκ³ μΌλΆλ¬ <span> μ λ°μ΄ν°μ
μμ±μ μ¬μ©νλ κ²μ λΆμ μ νλ€κ³ λ³Ό μ μλ€.
<!-- ok -->
<time datetime="20:00">μ€ν 8μ</time>
<!-- wrong! -->
<span data-time="20:00">μ€ν 8μ<span>
κ²μ μμ§ μμ§ μ μμ¬ν
κΈ°λ³Έμ μΌλ‘ htmlμ λ°μ΄ν°μ μμ±μ κ²μμμ§μμ μΈλ±μ±μ νμ§ μλλ€. λ°λΌμ κ²μ μμ§μ λ ΈμΆν λ΄μ©μ΄λ, νκ·Έμ λ£μ΄μΌν 컨ν μΈ λ₯Ό λ°μ΄ν°μ μμ±μΌλ‘ νμνλ©΄ μμ§μ΄ μλλ μ‘°μ¬νμ¬μΌ νλ€.
λΈλΌμ°μ νΈνμ±
IE 10 μ΄ν μμ .dataset νλ‘νΌν°λ₯Ό μ§μνμ§ μκΈ° λλ¬Έμ νΈνμ± μ μ§κ° νμν κ²½μ° getAttribute()λ₯Ό ν΅ν΄ λ°μ΄ν° μμ±μ μ κ·Όν΄μΌ νλ€. νμ§λ§ μ΄λ¬ν μ κ·Ό λ°©λ²μ μ μ½μΌλ‘ μΈν΄ IE 10 μ΄νμμλ λ°μ΄ν°μ
μμ± μ¬μ©μ κ°λ₯νλ©΄ νΌνλ κ²μ΄ μ’λ€.
μΈν°λ· μ΅μ€νλ‘λ¬11+ λ° μ¬ν λΈλΌμ°μ λ€μ λͺ¨λ νμ€μ μ§μνλ€.
# μ°Έκ³ μλ£
https://coding-restaurant.tistory.com/231
https://dololak.tistory.com/364
https://css-tricks.com/a-complete-guide-to-data-attributes/