気づけば季節は春、だいぶ暖かくなってきたとはいえ
まだ肌を出すには早いそんなこの時期、皆様いかがお過ごしでしょうか。
私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属性の内容を適用
皆様は、
というのをご存じでしょうか?
私は最近知りました。
当然ながらdata属性も属性の一つ。
独自に設定したdata属性の値を、content内で使用することができます!
こうすると、beforeやafter要素に対し1個ずつcontentを記述しなくてもいいので、記述が少なくて済みます。
特にCMSなどでは活躍しそうです。CSSを動的に出力しようと頑張るのは大変ですしね。
おわりに
いろんな使い方ができる、このdata属性。
皆様もぜひこのdata属性を使いこなして、幸せになってください!
ところで
私達ロジカルスタジオは、フロントエンドエンジニアを募集しております!
data-strong-pointを生かして働きたいそこのあなた!ぜひご応募くださいませ!