1
/
5

CSSでも大活躍!?data属性で、あなたのコーディングに+αを!


気づけば季節は春、だいぶ暖かくなってきたとはいえ
まだ肌を出すには早いそんなこの時期、皆様いかがお過ごしでしょうか。
私T.Kは早く夏服を着たくてウズウズしながら
メロディックパワーメタルを聴いて体を夏にする、そんな日々を送っております。

さて、今回のテーマはdata属性の使い方。

あなたのコーディングがもっと楽になる、data属性の便利な使い方を大公開!

data属性とは?

data属性とは、HTML5から追加された属性の一つ。

下記のようにdata-hoge (hogeは任意に設定可能です)と記述するだけで、data属性を設定できます。

<div data-color="red">

どう使うの?

それではdata属性を使うと便利になるシーンを、紹介していきたいと思います。

CSSの属性セレクタで、外見を出し分ける

例えばジャンル毎にラベルをつけて、色と文言を変えたい場合。

data属性を設定し、CSSに属性セレクタを記述することで、簡単に外見を出し分けることが可能です。

■クラスで出し分けてもいいのでは?

さて、外見の出し分けという点で、必然的に出てくるであろうこの疑問。

確かにそのとおりですが、data属性を使うと

他のクラスと衝突しない

というメリットが得られます。

私がコーディング初心者の頃、

他人のコーディングを引き継いだとき、CSS名が衝突して変な見た目になる

ということが非常によくありました。

data属性を用いることで、特に意識せずとも他のクラスと衝突せずに済むのです。

(なお私は、他のクラスと衝突しないようなCSS名をつけるようにしています)

CSSの属性セレクタで、状態を出し分ける

  • ハンバーガーメニュー
  • 開閉メニュー
  • トースト表示

というように、JavaScriptにより表示が切り替わる系のものを作る際

このdata属性が非常に役立ちます。

data属性を使って開閉メニューを実装したものを下記に示します。

従来ではdata-is-openの代わりに.is-openといったクラス名をつけて実装していましたが

data-is-openという名前のdata属性を用いると、状態が分かりやすくなったのではないでしょうか?

<!-- クラスで実装する場合 -->
<div class="tab is-open"></div>

<!-- data属性で実装する場合 -->
<div class="tab" data-is-open="true"></div>

加えてCSSも衝突しないので、より便利にCSSを記述することができます。

私は状態切り替えを実装する際は必ずdata属性を使っています。

すごく便利なので皆様も一度お試しあれ!

JSで値を取得・利用できる

ここまではdata属性を使わんでもクラスでまぁなんとかなるわ、というものでしたが

真にdata属性が活躍するシーンはこれ!

まずは下記をご覧ください。

aタグをクリックした際、そのクリックされた箇所についているdata-color属性の値を取得し、利用しています。

このように要素にデータを持たせて、それをJavaScript中で使用したい場合

data属性は非常に大きな力を発揮します。

疑似要素のcontentにdata属性の内容を適用

皆様は、

疑似要素のcontentに属性値を挿入できる

というのをご存じでしょうか?

私は最近知りました。

当然ながらdata属性も属性の一つ。

独自に設定したdata属性の値を、content内で使用することができます!

こうすると、beforeやafter要素に対し1個ずつcontentを記述しなくてもいいので、記述が少なくて済みます。

特にCMSなどでは活躍しそうです。CSSを動的に出力しようと頑張るのは大変ですしね。

おわりに

いろんな使い方ができる、このdata属性。

皆様もぜひこのdata属性を使いこなして、幸せになってください!

ところで

私達ロジカルスタジオは、フロントエンドエンジニアを募集しております!

data-strong-pointを生かして働きたいそこのあなた!ぜひご応募くださいませ!

株式会社ロジカルスタジオからお誘い
この話題に共感したら、メンバーと話してみませんか?
株式会社ロジカルスタジオでは一緒に働く仲間を募集しています
8 いいね!
8 いいね!

同じタグの記事

今週のランキング

土谷 隆秀さんにいいねを伝えよう
土谷 隆秀さんや会社があなたに興味を持つかも