data-*
속성의 정의 및 사용법
data-*
속성은
HTML에서 정의된 표준 속성 이외의 HTML 표준 사용자 지정 데이터 속성입니다.
이 속성은 data-
접두사와 그 뒤에 원하는 이름을 지정하여 속성의 이름을 만들고, 사용자 지정 데이터를 속성의 값으로 지정합니다.
사용하는 목적
사용자 지정 데이터 속성(Custom data attributes)은
페이지 또는 응용프로그램에 대한 사용자 지정 '데이터', '상태,' '주석' 등을 저장하기 위한 것으로,
더 이상 적절한 표준 속성이나 요소가 없을 때 사용하는 HTML의 표준화된 속성입니다.
이 속성은 전역(글로벌) 속성 중 하나로, 모든 요소에 적용이 가능합니다.
사용하는 이유
이 속성은 표준이 아닌 속성이나, 의미론적으로 부합하지 않는 HTML 요소를 추가로 불필요하게 사용하지 않고, 표준화된 방법으로 사용자 지정 데이터를 추가하기 위해 고안되었습니다. 이를 통해 개발자는 자신의 데이터를 쉽게 HTML 요소에 첨부할 수 있습니다.
어디에 사용
주로 자바스크립트와 CSS에서 이 속성을 활용하여 동적인 기능을 추가하거나 스타일을 지정하는데 사용됩니다.
사용 예제
다음은 사용자 지정 데이터 속성의 사용한 간단한 예제입니다.
예제는 사용자 지정 데이터 속성을 활용해서 자바스크립를 사용하여 간단한 상품 정보를 표시하는 것을 보여줍니다.
다음의 예제는 '제품 상세정보 보기' 버튼을 클릭하면 알림창으로 해당 제품의 상세정보를 볼 수 있는 예제입니다.
위 예제는 데이터 속성을 활용하여 HTML 요소에 추가 정보를 저장하는 방법을 보여주고 있습니다.
그리고, 사용자 지정 데이터 속성과 자바스크립트를 함께 사용하여 상호작용하는 방법을 이해하는데 도움이 될 것입니다.
여기서 잠깐! 👀
자바스크립를 다루지 못하더라도 데이터 속성을 사용하는 목적과 이유를 아는 것은 HTML을 이해하는데 많은 도움이 됩니다.
CSS에서 활용하기
데이터 속성은 HTML 속성이기 때문에 CSS의 선택자로 접근할 수 있습니다.
CSS 활용 시 주의할 점
다음의 예제를 보시기 바랍니다.
데이터 속성을 보여야 하고 접근 가능한 내용에 저장하지 마세요!
실제 적용된 모습을 보면 "일러두기:"가 CSS가 데이터 속성의 값으로 인해서 화면에 표시됩니다. 이는 웹 접근성에 문제가 됩니다.
위의 예제처럼 사용자에게 보여야 하고 접근이 가능해야 하는 콘텐츠를 데이터 속성과 CSS를 활용해서 화면에 보여주는 것은 삼가야 합니다. 이는 시각장애인을 위한 스크린 리더가 접근할 수 없을 뿐만 아니라, 검색 엔진에서 파악하지 못할 수도 있습니다.
데이터 속성의 이름 짓는 규칙
data-*
로 표현되는 data-
접두사와 그 뒤에 원하는 이름인 data-*
의 *
를 지정할 때의 규칙은 다음과 같습니다.
- 세미콜론(
;
)이 포함되면 안 됩니다. - 대문자를 포함해서는 안 됩니다.
- 대소문자 여부에 상관없이
xml
로 시작하면 안 됩니다.
브라우저 호환성
속성 |
데스크탑 Chrome
|
데스크탑데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
---|---|---|---|---|
data-*
|
7 | 12 | 6 | 5.1 |
명세서
명세서 사양 | |
---|---|
data-*
|
HTML Standard #attr-data-* |
같이 보기
- HTML title 속성 - 올바른 이해와 사용 방법
- HTML hidden 속성 - 올바른 이해와 사용 방법
- HTML cite 속성 - 올바른 이해와 사용 방법
- HTML datetime 속성 - 올바른 이해와 사용 방법
- HTML rel 속성 - 개념 정리 및 활용 방법
- HTML contenteditable 속성 - 에디터 개발을 위해 알아야 할 필수 속성
- HTML enterkeyhint 속성 - 가상 키보드의 Enter 버튼 모양 설정
- HTML inputmode 속성 - 가상 키보드의 입력 모드 설정
- HTML role 속성 - 장애를 가진 사용자들을 위한 향상된 웹 콘텐츠의 접근성 제공
- CSS 선택자 소개
- HTML id 속성 - 올바른 이해와 사용 방법
- HTML class 속성 - 올바른 이해와 사용 방법