【65-3】属性セレクター [att^="val"] [att$="val"] [att*="val"]

最終更新日:2023年02月15日  (初回投稿日:2023年02月15日)

属性セレクター(attribute selector)の続きです。
今回は、部分照合属性セレクター(Substring matching attribute selectors)を使ってみます。

本日のINDEX
  1. 「部分照合」属性セレクター
    1. [att^="val"](att属性があって、値の先頭がこの文字から始まる)
    2. [att$="val"](att属性があって、値の最後がこの文字で終わる)
    3. [att*="val"](att属性があって、値のどこかにこの文字がある)

参考:
Selectors Level 4 | W3C Working Draft
CSS セレクター | MDN
HTML属性リファレンス|属性一覧|MDN

「部分照合」属性セレクター

W3C仕様書では、属性セレクターは下記のような種類に分けられています。
・属性存在&属性値セレクター(Attribute presence and value selectors)
・部分照合属性セレクター(Substring matching attribute selectors)
・属性値の大文字小文字の区別をする修飾子(Case-sensitive modifier)
・クラスセレクターとIDセレクター

今回は2番めの部分照合属性セレクター(Substring matching attribute selectors)です。

これは文字どおり属性値が「部分的に」一致するかどうかでセレクトするもので、
[att^="val"] は、この属性の値が " " 内の文字から始まる
[att$="val"] は、この属性の値が " " 内の文字で終わる
[att*="val"] は、この属性の値の中に " " 内の文字がある
というセレクターです。
言葉で説明するよりとにかく使ってみたらすぐわかるので、サンプルを見てみよう。

[att^="val"](att属性があって、値の先頭がこの文字から始まる)

[att^="val"] というカタチで属性名のあとに^(アクサン・シルコンフレックス)」を付けて使います。

「^」はフランス語のつづりで、â とか ê とか母音の上についてる山型の記号です。
キーボードの上部の数字の0の右側2つ目、「~(チルダ)」と同じキー。チルダは Shiftキーを押しながら打ちますが、「^」はそのまま打てば出ます。
アクサン・シルコンフレックス(accent circonflexe)って長いですが、ヤマガタとかハットとか呼ぶのが日本語の一般名称みたいです。

HTMLはこんなかんじで、<a>要素の「href属性」でリンクをいろいろ作っています。

<ul>
  <li><a href="#point1">#point1へのリンク</a></li>
  <li><a href="#point2">#point2へのリンク</a></li>
  <li><a href="#Information">#Informationへのリンク</a></li>
  <li><a href="demo.com">demo.comへの外部リンク</a></li>
  <li><a href="ex.jp">ex.jpへの外部リンク</a></li>
  <li><a href="https://ex.com">https://ex.comへの外部リンク</a></li>
</ul>

CSSで下記のように指定して、「href属性」の値の「最初に#がつくやつ」をセレクターに。文字色をグリーンに指定しています。
最初に#がつくのはページ内リンク。ページ内リンクだけ文字色を変えています。

a[href^="#"] {
  color:green;
  }

プレビューです。

See the Pen 属性セレクター [att^="val"] TEST by yuki★hata (@yuki__hata) on CodePen.

上のサンプルは値を "#" にしていて、最初の1文字だけみたいなサンプルなので、指定する値を "#point" という文字列にしてみます。
また、[ ] の前の a も取ってみます。そのページに href属性を持つのが <a>だけなら要素名は不要です。

[href^="#point"] {
  color:blue;
  }

プレビューです。「#point」で始まっている最初の2つだけ 文字色が変わりました。

See the Pen 属性セレクター [att^="val"] TEST2 by yuki★hata (@yuki__hata) on CodePen.

[att$="val"](att属性があって、値の最後がこの文字で終わる)

さっきの [att^="val"] は、属性値の「最初の文字列」で指定しましたが、
この [att$="val"] という書き方だと「最後の文字列」による指定になります。
属性名のあとに「$(ドルマーク)」を付けます。

「$(ドルマーク)」は、キーボードの上部の数字の4を、Shiftキーを押しながら打つとでます。

HTMLはさっきと全く同じです。

<ul>
  <li><a href="#point1">#point1へのリンク</a></li>
  <li><a href="#point2">#point2へのリンク</a></li>
  <li><a href="#Information">#Informationへのリンク</a></li>
  <li><a href="demo.com">demo.comへの外部リンク</a></li>
  <li><a href="ex.jp">ex.jpへの外部リンク</a></li>
  <li><a href="https://ex.com">https://ex.comへの外部リンク</a></li>
</ul>

CSSで下記のように、「href属性」の値の「最後が .com で終わるやつ」を指定し、文字色を栗色にしています。
この例は冒頭の a を略してます。ほかに href属性を持つ要素がなくて要素名を略しても良いならこれでOK。

[href$=".com"] {
  color:maroon;
  }

プレビューです。
href属性の値が「.com」で終わってるものだけ、文字色が変わっています。

See the Pen 属性セレクター [att$="val"] TEST by yuki★hata (@yuki__hata) on CodePen.

[att*="val"](att属性があって、値のどこかにこの文字がある)

最後の [att*="val"] という書き方は、属性値の中のどこかにこの文字列が含まれればセレクトできます。
属性名のあとに「*(アスタリスク)」を付けます。

「*(アスタリスク)」は、キーボードの Enter(Macはreturn)キーの左側2つめ、「 :(コロン)」や「け」と同じキーを、Shiftキーを押しながら打つとでます。
テンキーが付いた拡張キーボードの人は右端のマイナスマークの上。

HTMLはさっきと全く同じです。

<ul>
  <li><a href="#point1">#point1へのリンク</a></li>
  <li><a href="#point2">#point2へのリンク</a></li>
  <li><a href="#Information">#Informationへのリンク</a></li>
  <li><a href="demo.com">demo.comへの外部リンク</a></li>
  <li><a href="ex.jp">ex.jpへの外部リンク</a></li>
  <li><a href="https://ex.com">https://ex.comへの外部リンク</a></li>
</ul>

CSSで下記のように、「href属性」の値に「ex が入っているもの」を指定し、文字色をブルーにしています。

[href*="ex"] {
  color:blue;
  }

プレビューです。
href属性の値に「ex」が含まれるものだけ文字色が変わっていますね。

See the Pen 属性セレクター [att*="val"] TEST by yuki★hata (@yuki__hata) on CodePen.

ちょっと邪道かもですが、「属性値の中のどこかにこの文字列が含まれれば」という条件なら、先頭にあっても、最後にあっても良いわけですよね。
ですので下記のように、「#point(これは先頭にあります)」や「.com(これは最後にある)」でも指定してみました。

[href*="#point"] {
  color:salmon;
  }
[href*=".com"]
  {color:purple;
  }

プレビューです。
ちゃんと反応してますね。

See the Pen 属性セレクター [att*="val"] TEST2 by yuki★hata (@yuki__hata) on CodePen.

これを見ちゃうと、 [att*="val"] さえ覚えておけばイイような気がしますが...。
まあ、先頭用(^)と、末尾用($)がちゃんと用意されているわけですし、ルール通りに使ったほうがイイよねやっぱり...。

次回予告

次回も属性セレクターの続きです。
次回は、属性値の大文字・小文字の区別ができるセレクターを見てみましょう。

関連記事
このエントリーをはてなブックマークに追加

やる気を保つためにランキングに参加しています。
応援してくださると すっごいやる気を出します! (笑)

初心者にも使いやすい(と思う)レンタルサーバー

「初心者ですがレンタルサーバーはどこがいい?」というご質問をよくいただきます。
自由にファイルをアップロードできる自分のサーバがあると便利ですよね。ローカル環境じゃなくサーバ上で試してみたい時がありますからね。
私が使っているのは、 スターサーバーロリポップ!です。どちらも管理画面がわかりやすく、マニュアルも充実していて、料金も安い。どちらもライトプラン以上で WordPress が使えます。
初心者が始めやすいサーバだと思います。

ちょっと料金は高いけど、さくらのレンタルサーバや、エックスサーバー は、やはり老舗なのでおすすめです。
両方とも高スペックでコスパが良く、老舗でユーザーが多いので、質問する場がたくさんあります。初心者だけど仕事でサーバが欲しい場合は、安心なのではないかと思います。

スポンサーリンク

コメントの投稿

ご注意:メールアドレスは書かないで
「コメントを送信する」ボタンを押した後の「確認画面」で、メールアドレス・URL などを入力できるようになっており、メールアドレス・URL は、そのままオートリンクになる仕様です。
当方でメールアドレスだけ削除することも、メールアドレスを非公開にすることもできません
メールアドレスは書かないでください。詳しくはこちらにまとめましたのでご覧ください。

スポンサーリンク
最新記事
Category
オススメの本
Links
Calendar
02 | 2025/03 | 04
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
Archive
Profile

yuki★hata

Author : yuki★hata
せめて月1回の更新をめざします~。

メールフォームはこちら

スポンサーリンク
スポンサーリンク
Copyright © ほんっとにはじめてのHTML5とCSS3 All Rights Reserved.