본문 바로가기
프론트엔드/HTML

[HTML5] Data 속성 (Data Attribute)

by jinwanseo 2021. 3. 13.
728x90

HTML5 Data-* 속성 Data Attribute

 

 

HTML5에서 data-* 속성 은근 사용 빈도가 높다.

 

data-* 속성은 거두절미하고

태그에 간략한 데이터를 저장하는 것이다.

 

HTML5 이전에는 Html 문서 내에

데이터를 저장하기위해 

태그를 안보이게하고 해당 태그에 

밸류값을 넣어놓고 사용하는 등 

여러가지 핵스러운 방법이 동원되었는데,

data-*속성을 사용하면 

간결한 코드에 유지보수가 용이해지고

자바스크립트를 통한 데이터 접근이 간단해진다.

 

사용 방법은 아래와 같이 간단하다.

HTML 태그 내 데이터 속성 사용
<태그 data-원하는이름="값"></태그>

 

Javascript에서 데이터 추출
const element = document.querySelector('...');

const data = element.dataset.데이터속성이름('data-'제외);

 

샘플예제
  샘플예제 : HTML
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>HTML5 Data-* Attribute Example</title>
</head>
<body>
  <section class="main">
    <div class="box" data-index="1" data-text="Hi" data-text-align="center" data-line-height="100px"></div>
    <div class="box" data-index="2" data-text="Hello" data-text-align="center" data-line-height="100px"></div>
    <div class="box" data-index="3" data-text="Goodbye"  data-text-align="center" data-line-height="100px"></div>
  </section>
</body>
</html>

 

샘플예제 : CSS
.main > .box {
  width: 100px;
  height : 100px;
  margin-bottom : 10px;
}

.box[data-index="1"] {
  background : royalblue;
}

.box[data-index="2"] {
  background : lightgreen;
}

.box[data-index="3"] {
  background : yellow;
}

 

샘플예제 : JAVASCRIPT
const box1 = document.querySelector('.box[data-index="1"]');
const box2 = document.querySelector('.box[data-index="2"]');
const box3 = document.querySelector('.box[data-index="3"]');

box1.innerText = box1.dataset.text;
box2.innerText = box2.dataset.text;
box3.innerText = box3.dataset.text;

box1.style.textAlign = box1.dataset.textAlign;
box2.style.textAlign = box1.dataset.textAlign;
box3.style.textAlign = box1.dataset.textAlign;

box1.style.lineHeight = box1.dataset.lineHeight;
box2.style.lineHeight = box1.dataset.lineHeight;
box3.style.lineHeight = box1.dataset.lineHeight;
728x90

댓글