やあ、こんにちは。CSSの世界へようこそ。
フロントエンドの深淵を覗き込んでいる君なら、きっと「クラス名(class)」や「ID」を使ってスタイルを当てることにはもう慣れているはずだね。
でもね、現場でコードを書いていると、時々こんな悩みにぶつからないかな?
「名前を全部細かく決めるのは大変だし、ルールを作るのも面倒くさい……。もっとスマートに、要素の『特徴』で選別できないものか?」と。
そんな君を救ってくれるのが、属性セレクタという魔法の杖だ。今日はその中でも、特に使い勝手が良くて愛されている`[attr^=”value”]`について、一緒に紐解いていこう。
—
属性セレクタって、結局なにもの?
難しく考える必要はないよ。
例えば、君が大きな図書館で「背表紙に『技術』という文字から始まる本だけを集めて!」と頼まれたとする。このとき、君は本の内容を全部読まなくても、背表紙のラベルだけを見れば選別できるよね?
CSSの属性セレクタも全く同じ。HTMLという名の書棚から、「特定の属性が特定の文字で始まっているやつだけ、こっちに来て!」と呼び出す機能なんだ。
今回の主役:`[attr^=”value”]`
ここで注目したいのが、この「`^`(ハット)」という記号だ。
これは「〜で始まる(Starts with)」という意味を持っている。
- `attr`:属性の名前(`class`や`href`、`data-type`など)
- `^`:ここが「〜で始まる」という合図!
- `value`:探したい文字列の頭文字
つまり、`[class^=”btn-“]` と書けば、「クラス名が『btn-』で始まるすべての要素」を捕まえることができるんだ。これ、実はめちゃくちゃ便利なんだよ。
—
実践!現場でよくあるシーン
例えば、Webサイトで「外部サイトへのリンク」にだけ、小さなアイコンを付けたいとき。どうする?
いちいち全部に `class=”external-link”` とか書いていたら、日が暮れてしまうよね。
でも、外部へのリンクは必ず `https://` から始まるはずだ。ここを狙い撃ちしてみよう。
/ href属性の値が “https://” で始まるリンクだけにスタイルを適用 /
a[href^=”https://”] {
/ 外部サイトへのリンクには、ちょっとだけ色を変えてアイコンを表示させる /
color: #ff6b6b;
font-weight: bold;
}
/ ついでに、”http://”(古い形式)もカバーしちゃおう /
a[href^=”http://”] {
color: #ff6b6b;
}
どうだい? たったこれだけで、HTMLを一行も汚さずに、サイト内のリンクと外部へのリンクを視覚的に分けることができた。これがCSSの美しさだよ。
—
つまずきやすいポイントと「大丈夫だよ」のメッセージ
「でも先生、`=` のあとに `”`(ダブルクォーテーション)を忘れたらどうなるの?」
なんて心配性の君、素晴らしいね。その通り、クォーテーションは忘れずに。
それと、よくある間違いが「部分一致」との混同だ。
- `^=` は「始まり」を見る。(今回の主役!)
- `=` は「どこか一部に含まれていれば」見る。
もし思った通りに動かないときは、`^` がちゃんと「始まり」を指しているか確認してみて。CSSは正直だから、指示を少し変えるだけで素直に言うことを聞いてくれるよ。
—
最後に:なぜ「属性セレクタ」を覚えるべきなのか
僕がこのセレクタを愛している理由は、「HTMLをシンプルに保てるから」なんだ。
クラス名をゴテゴテに付けてHTMLを太らせるよりも、CSS側で「こういう特徴があるなら、こう見せよう」とルールを決めておく。そうすると、後から誰かがHTMLを編集しても、スタイルが自動的に適用される。これは、大規模な開発になればなるほど、君の大きな武器になるよ。
まずは、自分の書いているコードの中で「これ、全部同じルールで選べないかな?」と思う場所を探してみて。きっと`^=`が活躍できる場所がすぐに見つかるはずだ。
焦らなくていい。一つひとつ、道具の使い方を覚えていこう。君の書くコードが、もっと軽やかで美しいものになることを、僕は心から応援しているよ。
また何かあったら、いつでも聞きに来てね。

コメント