属性セレクターをうまく使うと特定の要素にまとめてcssが適用できて便利になるよ!

tutorial
 2019.02.04

属性セレクターを使えば特定の要素にcssを適用できたりして、とっても便利です。
例えばWordPressを使っている時など、class名「post-00」などが決まったルールで自動で吐き出されますが、これを利用して「post」を含むclass名に同じcssを適用したい。とか、いろんな事情でフロントのhtmlには手を加えられない時などcssだけでどうにかしたいと思う時に使えます。

セレクターの基本

cssのセレクターには色々な種類があります。

  • 要素型セレクター
    a { color:#FFC0CB; } これはaやpなど要素に対して設定できます。
  • クラスセレクター
    .class名 { color:#FFC0CB;} これは、クラスに対して設定できます。
  • IDセレクター
    #id名 { color:#FFC0CB;} これはIDに対して設定できます。
  • 全称セレクター
    * { color:#FFC0CB;} これは全ての種類の要素に設定できます。
    *.class { color:#FFC0CB;} また、このように設定すると属性名「class」の中で全ての要素に設定できます。
  • 属性セレクター 今回注目するのはこれです。

属性セレクター

そもそも属性って?っておもう人もいるかも知れませんのでそちらから。


この場合<a></a>は要素名、[href],[class]が属性名、[example.html],[value]が属性値となります。
この属性名属性値を合わせて「属性」といいます。

指定された属性が存在するかどうかでコントロール

要素名[属性名]

ex)[title]属性をもつ要素[a]に対して設定

要素名[属性名=属性値]

ex)[title]属性の属性値が[value]であるものに対して設定

要素名[属性名~=属性値]

ex)[class]属性のスペース区切りで複数ある属性値の中で[red]と一致するものに対して設定


classの指定で属性値を複数設定することはよくあることですので、覚えておくと便利です。

一つ前の[属性名=属性値]との違いは?

[属性名=属性値]の場合は、ドンピシャの属性値のみ対象になります。


この場合、②のみが対象になります。

複数の属性セレクタを指定して対象を絞り込む

hrefとtitleがあるものだけに適用

角括弧[]で複数の属性セレクタ(hrefとtitle)を指定して対象を絞り込みます。

a要素に[class=”active”]があって:hoverの時に対応

属性値に基づいてコントロールする

クラス名やIDを「sample_1」〜「sample_9」まで連番でつけたり
記事のスラッグをクラス名で使ったりすると「post-000」のように「post-」までは一緒でその後が違うなど
名称の一部を使ってまとめて指定したいときにはこれが便利です。

指定した属性名の属性値が[〇〇]で始まるものを対象にする

ex)属性名[id]の属性値[sample_]で始まる

指定した属性名の属性値に[〇〇]が含まれるものを対象にする

ex)属性名[class]の属性値に[post]が含まれる

指定した属性名の属性値が[〇〇]で終わるものを対象にする

ex)属性名[class]の属性値が[_sample]で終わる

指定した属性名の属性値が[〇〇]で始まり直後に-(ハイフン)が続くものを対象にする

ex)属性名[class]の属性値が[sample]で始まるものと、属性値が[sample]で始まり直後に-(ハイフン)が続くのものを対象に

すべてを覚える必要はないけど、こんなこともできるんだ〜ぐらいに覚えておくといざという時便利ですね。属性セレクターをうまいこと使ってcssをコントロールしましょう。

copypet.jp

CSS3などで新たに追加された要素・装飾方法など、日々コードを書いていないと忘れてしまったり、ささっとプロトタイプを作る時などちょっとしたことに時間をかけている暇はない。そんな時に「あ〜、あれストックしときゃよかったなぁ」って困った自分用のストックブログです。カスタマイズなどがしやすいよう、昨今のweb制作に取り入れられる一般的なコードを中心に掲載しています。

More Info

こんな記事はいかがですか?