niwaka-web

webサイト構築関連のにわか知識集

CSS

【CSS】属性セレクタの使い方の覚書

投稿日:

ニワカが個人的に使いこなせていないCSSセレクタを覚えるための個人的メモです。
使いこなせてないCSSセレクタ第4弾「属性セレクタ」の覚書。

属性セレクタの概要

属性セレクタは、HTMLなどの属性と一致した場合に適用されえるセレクタ。
らしです。で、属性って何となりますが、下記にaタグでの例を挙げますがhrefやtitle、target、そしてclassやidも属性になるようです。

上記で言うとaが要素名、titleが属性名で、タイトルが属性値になる感じです。他の属性も同様。

E[foo]の場合は

要素[属性]{
  プロパティ: 値;
}

属性セレクタの使用例

E[foo]

まずは属性セレクタの基本となるE[foo](要素名[属性名])の使用例をhtmlとcssと共に紹介。

html

<p title="適用される">title属性があるので適用される</p>
<p>title属性がないので適用されない</p>

css

p[title] {
  color:red;
}

実際の表示

E[foo=”bar”]

続いてE[foo=”bar”](要素名[属性名=”属性値”])の使用例をhtmlとcssと共に紹介。
こちらは属性値まで指定し、属性値が完全一致の際に適用されます。

html

<p class="red">属性値が完全一致しているので適用される</p>
<p class="redred">属性値が完全一致してないので適用されない</p>
<p class="blue">属性値が完全一致してないので適用されない</p>

css

p[class="red"] {
  color:red;
}

実際の表示

E[foo~=”bar”]

E[foo~=”bar”](要素名[属性名~=”属性値”])の使用例をhtmlとcssと共に紹介。
こちらは指定した属性の属性値が一つでも完全一致した際に適用されます。属性値が複数指定されていた時にその中で属性値が一致されれば良いということ。classで複数した時の一つが一致した時など。
「~」の記号はチルダ。(tilde)

html

<p class="red blue">完全一致している属性値があるので適用される。</p>
<p class="blue red">完全一致している属性値があるので適用される。</p>
<p class="blue green">完全一致している属性値がないので適用されない。</p>

css

p[class~="red"] {
  color:red;
}

実際の表示

こちらでは外部リンクを単純に赤色にしましたが、他のサイトの紹介などでは外部リンクだった場合はアイコンを付けるなどのサンプルを多く見ました。

E[foo^=”bar”]

E[foo^=”bar”](要素名[属性名^=”属性値”])の使用例をhtmlとcssと共に紹介。
こちらは指定した属性の属性値が前方一致した際に適用されます。属性値の始まりが一緒のもの。
「^」の記号はキャレットとかカレットと読むようです。(caret)

html

<a href="http://wwww.yahoo.co.jp">属性値と前方一致しているので適用される。</a>
<a href="http://wwww.yahoo.co.jp">属性値と前方一致しているので適用される。</a>
<a href="/about.html">属性値と前方一致していないので適用されない。</a>

css

a[href^="http"] {
  color:red;
}

実際の表示

こちらでは外部リンクを単純に赤色にしましたが、他のサイトの紹介などでは外部リンクだった場合はアイコンを付けるなどのサンプルを多く見ました。

E[foo$=”bar”]

E[foo$=”bar”](要素名[属性名$=”属性値”])の使用例をhtmlとcssと共に紹介。
こちらは指定した属性の属性値が後方一致した際に適用されます。属性値の終わりが一緒のもの。

html

<a href="aaa.pdf">属性値が後方一致しているので適用される。</a><br>
<a href="about.html">属性値が後方一致していないので適用されない。</a>

css

a[href$=".pdf"] {
  color:red;
}

実際の表示

こちらでは単純に赤色にしましたが、リンク先がpdfの場合はアイコンを付けるなどの時に使えそうですね。

E[foo*=”bar”]

E[foo*=”bar”](要素名[属性名*=”属性値”])の使用例をhtmlとcssと共に紹介。
こちらは指定した属性の属性値が部分一致している際に適用されます。指定した属性値が含まれるものなので完全一致していなくて良い。
「*」の記号はアスタリスク。(asterisk)

html

<p class="bluered">一致している属性値があるので適用される。</p>
<p class="blue red yellow">一致している属性値があるので適用される。</p>
<p class="blue green">一致している属性値がないので適用されない。</p>

css

p[href*="red"] {
  color:red;
}

実際の表示

CSS HAPPYLIFE ZEROさんでは、特定のディレクトリの画像にボーダーをつける例を紹介していますが、使いどころが難しそうですね。同じ名称を含むcssとかにも使えそうですが、今の所これというのが思いつきません。

E[foo|=”bar”]

E[foo|=”bar”](要素名[属性名|=”属性値”])の使用例をhtmlとcssと共に紹介。
こちらは指定した属性の属性値が一致するか「属性値-(ハイフン)」で始まる値が一致している際に適用されます。
「|」の記号はバーティカルバーとかバーティカルラインとかパイプラインと読まれるようです。英語でvertical bar、vertical lineとかあるので縦棒、縦線の意味なのでそんな感じかと。

html

<a hreflang="en" href="http://www.yahoo.com">属性値が一致しているので適用される。</a><br>
<a hreflang="en-us" href="http://www.yahoo.com">属性値の始まり(-の前まで)が一致しているので適用される。</a><br>
<a hreflang="ja" href="/about.html">属性値が一致していないので適用されない。</a>

css

a[href|="en"] {
  color:red;
}

実際の表示

他言語サイトなどで利用出来るかもしれませんがなかなか使わない気が個人的にはします。classのハイフン区切りで始まりが同じものになら使いどころがあるかもしれないですね。(例:btn-〇〇〇みたいのが複数ある時など)

個人的メモ

一応、IEはIE7以降対応のセレクタ。

参照ページ

記事にする際に参考にさせていただいたページ。
これまでのと違い、複数ページで紹介されているものは一部ページのリンクになります。

-CSS
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

【CSS】スマホでbackground-attachment: fixed;が効かない【メモ】

ニワカが個人的に使いこなせていないCSSを覚えるための個人的メモです。 CSSでパララックス(視差)の勉強していた際のメモです。 iosでbackground-attachment: fixed;は仕 …

【CSS】擬似要素と擬似クラスの違いの覚書

ニワカが個人的に使いこなせていないCSSを覚えるための個人的メモです。 擬似要素と擬似クラスをまとめる前に違いを覚えておくためのメモ。 最初に書いておくとW3Cの日本語訳や色々なサイトを見ましたが、小 …

【CSS】擬似クラス「構造擬似クラス以外」の使い方の覚書

ニワカが個人的に使いこなせていないCSSを覚えるための個人的メモです。 擬似クラスの「構造擬似クラス以外」の覚書。 「擬似クラス「構造擬似クラス」の使い方の覚書」はこちら 目次 擬似クラスの概要 リン …

【CSS】間接セレクタの使い方の覚書

ニワカが個人的に使いこなせていないCSSセレクタを覚えるための個人的メモです。 使いこなせてないCSSセレクタ第3弾「間接セレクタ」の覚書。 目次 間接セレクタの概要 間接セレクタの使用例 個人的メモ …

【Bootstrap4】グリッドレイアウト(配置)

Bootstrap4のグリッドレイアウトの説明は長いので配置も別ページに。 Bootsatrap4からはFlexbox配置ユーティリティを使用して、縦と横の列を整列させることができるようになりました。 …