IT/HTML & CSS

html5의 data- 속성 톺아보기

라임웨일 2021. 3. 4. 10:07
반응형

 

Data 속성은 HTML5 속성에서 제공하고 있으며 조금만 이해하고 실제 코드에 적용하여 사용하기 시작하면

굉장히 편리한 기능을 제공합니다. 

지금부터 알아두면 쓸모 있는 신비한 "Data-" 대해서 살펴봅시다.

1) data 속성. 그는 누구인가?

HTML5에서 새롭게 소개된 HTML5 data Attributes는 사용자 데이터 속성으로 태그 내에 'data- 로 시작하는 속성은 개인 데이터로 규정한다.'는 내용입니다. 

여기서 핵심은 "사용자 데이터 속성" 이란 말인데요. 쉽게 설명하자면 data와 하이픈(-)이 조합된 형태로 data- 뒤에 개발자가 정의하고 싶은 마음대로 정의하면 된다는 이야기입니다. 

 

그래도 이해가 잘 안 되시면 아래 예시 코드를 한번 살펴볼게요.

 

A) data- 속성 적용 예시

// html 
<span class="food" data-price="60000">Data Attributes Test</span>

 

B) data- 속성은 복수로도 지정 가능합니다. 

// html 
<span class="food" data-name="coffee" data-city="jamaica" data-type="americano">Data Attributes Test</span>

2) data  속성의 사용

간단히 data 속성에 대해서 살펴보았습니다. 그런데.. 그럼 왜?? data- 코드를 사용해야 하는가? 하는 의문이 드실거예요.

data 속성을 사용하면 장점은 스크립트를 핸들링하기 위해서 의미 없는 클래스나 ID 사용을 하지 않아도 되고 클래스가 이미 멀티클래스로 많이 사용된 경우 data 속성을 준 요소만 별로도 스타일 요소를 적용할 수 있습니다. 더욱이 data- 속성은 HTML 태그 내에서 별다른 역할을 하지 않는 단순한 데이터이기 때문에 화면의 레이아웃에도 전혀 영향을 주지 않아요.

 

이해가 안돼도 조금씩 따라 하시면 어느 순간 이해가 될 거예요.

천천히 한번 살펴볼게요.

 

2-1) data 선언 및 호출

data-*로 속성을 저장한 만들어서 Js에서 해당 속성을 읽어올 경우”data-”를 생략하고 배열처럼 Key : Velue처럼 key를 이용하여 data를 읽어올 수 있습니다. 

처음 위에서 선언한 data 속성 예시를 참고하여 자세히 알아볼게요.

 

- HTML내에 Data 속성 선언

 

<span class="food" data-name="coffee" data-city="jamaica" data-type="americano">Data Attributes Test</span>

 

- Js에서 해당 속성을 Key를 이용하여 데이터 추출

let dataName = $("span").data("name");
console.log(dataName)  //Result : coffee

위에선 html에서 선언 되어진 name이라는 속성을 Key로 활용하여 coffee라는 Velue를 얻었습니다. 도시정보나 음료 타입 정보도 동일한 방법으로 모두 가능해요. 벌써 data 속성이 사랑스럽게 느껴지지 않나요?

 

2-2) data 속성을 활용한 조건문 활용

data 속성을 이용해서 조건문을 만들어 데이터를 유동적으로 변경도 가능합니다. 

// html 
<div data-content="tab">Tab data</div>

 

// js
// data-content 속성이 tab 일때만 실행한다.
if ( $('div').data('content') !== 'tab' ){
    $('div').removeClass('is-active');
}
else {
    $('div').addClass('is-active');
}

2-3) data 속성 삭제

HTML에 data-*로 저장된 data들은 removeData()를 이용하여도 지워지지 않는 문제가 있는데 이런 경우는. data(“name”, null)로 저장되어있는 값을 null로 바꿔주는 것으로 해결이 가능합니다.

$('selector').removeData(key);

2-4) data 속성으로 CSS 스타일 적용하기

data 속성을 활용하면 별도의 Class나 ID를 사용하지 않아도 CSS 스타일 선언이 가능합니다. 정말 멋지지 않나요?

// html
<div data-name="test">Test</div>

 

[data-name="test"] {color:#731aed; color:#731aed; font-size:20px;}

 

지금까지 HTML5에서 제공하는 data 속성에 대해 알아봤는데 조금씩 연습하셔서 실제 프로젝트에서 조금이나마

도움이 되었으면 좋겠습니다.  감사합니다.

반응형
광고차단(애드블록)프로그램이나 브라우저를 사용중이시면 프로그램을 비활성화이나 블로그 주소를 예외 처리 해주시면 광고가 노출됩니다. 귀찮고 번거롭겠지만 광고 클릭은 저에게는 큰 힘이 됩니다. 🙇🏻‍♂️🙇🏻‍♀️
제 블로그의 모든 글은 제가 직접 작성 하고 다른 글을 참고할 때는 이전 글보다 읽기 편하게 수정해서 작성하고 있습니다. 커피 한잔 사먹고 더 열심히 좋은글로 보답하겠습니다.
오늘도 제 블로그에 와 주셔서 감사합니다. :)
//