【HTML5・CSS3】data属性の使い方とは?JavaScriptで値を取得・変更する方法も解説

2024.01.03
data属性の使い方とは

HTML5から、カスタムデータ属性と呼ばれるdata属性が追加されましたね。

属性自体を知ってはいても、「どんな属性なのかよく分からない」「実際に使うのは難しそう」と考えている方も多いのではないでしょうか?

今回は、HTMLのdata属性の使い方をマスターしたいという方のために、

  • data属性の書き方とは
  • CSSやJavaScriptで扱う方法

以上の項目に沿って、解説していきますね。

この記事を読めば、HTMLのdata属性の記述方法が分かり、CSSやスクリプトなどの操作が快適になりますよ。

ぜひ最後まで読んでくださいね!

data属性とは?

data属性は、HTMLの要素内に指定することができ、その要素の情報を格納することができます

ブラウザには表示されないため、ユーザーにはあまり関係がないですが、Webサイトの開発者にとっては、作業効率を上げる便利な属性になります。

HTML5より前は、要素の情報を格納するときに主にclass属性などを使っていました。

ただし、class属性は個別のスタイルを適用するためのもので、情報を格納する目的で使用すべきではない、といった部分が問題になっていました。

また、情報が増えるにつれて、class名の数も増えてしまい、JavaScriptからの情報へのアクセスが困難になる欠点もありました。

data属性が登場したことで、これらの問題を避けることができるようになったのです。

HTMLでの記述方法

data属性はHTMLのタグ内に属性として追加します

例えば、レストランのリストを紹介するサイトで、以下のように書いたとします。

<ul>
  <li data-type="french" data-distance="2miles">
    レストラン名
  </li>
  <li data-type="italian" data-distance="3miles">
    レストラン名
  </li>
  <li data-type="french" data-distance="7miles">
    レストラン名
  </li>
</ul>

こうすることで、ユーザーがレストランの種類を絞り込んで検索したり、距離が近い順にソートしたりするときに、data属性の情報を使用して表示させることができます。

data属性に使える文字は以下のものです。

  • 文字
  • 数字
  • -(ハイフン)
  • .(ドット)
  • _(アンダースコア)

大文字は使用できません。

また、data属性を使うときには、他の属性で適用できない場合のみです。

class属性のように、スタイル目的でdata-classと指定するのは、間違いなので注意しましょう。

CSSでdata属性を扱う

CSSでdata属性を扱う方法は2つあります。

1つは、attr関数を用いて、CSSのコンテンツで使用する方法です。

以下のようにHTMLを記述します。

<span data-tooltip="HyperText Markup Language">HTML</span>

attr関数を用いて、 CSSを書きます

span::after {
  display:none;
  content: attr(data-tooltip);
}
span:hover::after {
  display: block;
}

疑似要素である「:after」を使って、追加したい情報をユーザーに示すことができます。

上記ではマウスをホバーさせたときに、data-tooltipの値が表示されます。

もう1つは、属性セレクタを用いて、スタイルを個別に設定する方法です。

article[data-number='3'] {
  background: pink;
}
article[data-number='4'] {
  background: blue;
}

上記では、data属性の情報に応じて、背景色を変えています。

この後に紹介するJavaScriptでdata属性の値を変更する方法を使って、要素に適用するスタイルを変更することができます。

JavaScriptでdata属性を扱う

JavaScriptを使ってdata属性の値を取得・変更したり、入力したりすることができます。

<article
  id = "restaurant"
  data-number = "3"
  data-type = "italian"
  data-distance = "3miles">
...
</article>

JavaScriptでは、以下のように記述します。

var restaurant = document.getElementById('restaurant');
number = restaurant.dataset.number; // "3"
type = restaurant.dataset.type; // "italian"
distance = restaurant.dataset.distance; // "3miles"

document.getElementById()を使用してid値を持つ要素のドキュメントを取得し、datasetを使ってdata属性の値を取得しています。

この文字列をプログラム内で使用して出力させることもできますし、以下のように値を設定しなおすこともできます。

restaurant.dataset.number = "4";
restaurant.dataset.type = "french";

要素に新しく別の属性を追加することも可能です。

restaurant.dataset.name = "King of Beasts";

JavaScriptでdata属性の値を操作したいときに、参考にしてみてくださいね。

まとめ:CSSやJavaScriptなどで活躍するdata属性

今回は、HTML5のdata属性について、特徴や使い方を解説してきました。

CSSやJavaScriptなどでの使用方法も紹介しましたね。

JavaScriptなどのプログラム内でデータを扱う際に重宝する機能ですので、ぜひ抑えておきましょう。

今回の記事が参考になれば幸いです。

\プログラミングスクールを比較/

DMM WEBCAMP

COACHTECH

RUNTEQ

DMM WEBCAMP COACHTECH RUNTEQ
目指せる姿 WEBエンジニアへの転職
フリーランスエンジニア WEBエンジニアへの転職
分割払い
補助金 ×
転職保証 × ×
受講期間 12週間〜 3ヶ月〜 5ヶ月〜
特徴 【IT業界の転職を一番に考えたい方向け】
大手DMMが運営のプログラミングスクール
転職成功率98.8%
豊富なキャンペーンや補助金制度あり
【フリーランスを目指したい方向け】
フリーランスのエンジニアを最短で目指す
エンジニアと共に実際の案件開発を担当
【とことん勉強してから転職したい方向け】
1,000時間(約9カ月)のカリキュラムでしっかり勉強
企業の求める即戦力のWEBエンジニアを目指す
料金 329,350円〜
※給付金適用後
42万9,000円~ 55万円

公式HP

公式HP

公式HP

関連記事

資料請求

  • 短期集中で最速エンジニア転職を実現-転職成功者インタビュー一覧

    DMM WEBCAMPでは転職成功率98%を実現しています。本資料では、元警察官や元ラーメン屋など様々なバックグラウンドを持つ卒業生の声をお届けします。

    資料をダウンロードする
  • IT技術がもたらす3つの変化と身につけるべきスキル

    IT技術の発展により、今後10~20年程度で47%の仕事がなくなると言われています。どのような変化が訪れ、私達はどのようなスキルを身につけるべきかを解説します。

    資料をダウンロードする
  • 未経験がフリーランスエンジニアになる方法-年収アップで自由な働き方を手に入れる

    働き方改革やリモートワークの影響でフリーランスという働き方の人気は高まりつつあります。フリーランスエンジニアとして活躍するために必要な情報をお届けします。

    資料をダウンロードする

© 2024 WEBCAMP MEDIA Powered by AFFINGER5