中の人「ma-san」

東京・千葉でホームページを作るお仕事をしています。

お仕事の詳細はこちら

CSS極めたい猫「擬似クラス:is()」ってなに?

CSS極めたい猫「擬似クラス:is()」ってなに? CSS

この記事はCSSを学習し、更に学習を重ねたいWebデザイナーやコーダー、エンジニアに向けた記事になります。

ここ数年、CSSの使い勝手が劇的に変化してきたように思います。その理由としてはIEをサポートする必要がなくなったということも大きいでしょう。ブラウザ戦争の終結も少々寂しいものがありますが、今後のブラウザの進化に期待したいところです。
というわけでその一つとして使用できる擬似クラスが沢山出てきた中でも話題になっていた「:is()」について振り返りたいです。
以下、茶番も兼ねていますが御覧ください。

CSSを書ける猫とCSS極めたい猫

ほてまる
ほてまる

カチャカチャ…スッターン!!ほて、CSS書き終えたニャ!!

るり
るり

どれどれ…、ほてちゃんが書いたCSSはこれかミャ?

/** 特定の場所にあるリンクを選択したら赤色に変えたいニャ **/
.cats_box a:hover,
.cats_box a:focus,
.ruri_box a:hover,
.ruri_box a:focus,
.hotemaru_box a:hover,
.hotemaru_box a:focus {
  color: #ff0000;
}
るり
るり

…ずいぶんと重複しちゃってるミャ。もうちょっと短くできないかミャ?

ほてまる
ほてまる

ほて、色々なほーむぺーじ見てきたけどこんな感じの書き方が多かったにゃ。ちゃんと抜けもれなく指定できてるか不安ニャ~。

るり
るり

ほてちゃん、こうすると短いし重複もなくなるミャ

/** 特定の場所にあるリンクを選択したら赤色に変えたいニャ **/
:is(.cats_box, .ruri_box, .hotemaru_box) a:is(:hover, :focus) {
  color: #ff0000;
}
ほてまる
ほてまる

ほてええぇぇぇええ?!何だニャこの「:is」って!!!

るり
るり

ようやくほぼ全てのブラウザで使えるようになった擬似クラス関数「is」だミャ。簡単に説明すればis内のどれか一つ該当すれば適用できるミャ。

つまるところ重複するような部分を簡略化したり、大量の条件をコツコツ書かないといけないようなときにまとめることができる便利なものだミャ~。

:is() - CSS: カスケーディングスタイルシート | MDN
:is() は CSS の擬似クラス関数で、セレクターのリストを引数に取り、リスト中のセレクターの何れか一つに当てはまる要素をすべて選択します。数多くのセレクターを小さくまとめて書くのに便利です。
ほてまる
ほてまる

なんだか不安だにゃ。20年間CSS書いてるパピーは「動くかわからないから昔ながらの書き方が一番!!」って言ってたにゃ?

るり
るり

さっきもいった通り「ほぼ」全てのブラウザで使えるようになったと言うのはIEが世間的にサポート外になったということが多いミャ(正確には2023年2月14日予定)。ちゃんとブラウザごとのサポート状況は確認するのが無難だミャ。

古い書き方とかもあるけどここ数年で対応してないブラウザはほぼなくなったといっても良いミャ。IE対応しなきゃならない、という場合はこれだけじゃなくって他の色々使えないからおじさんに任せておくミャ~。

":is()" | Can I use... Support tables for HTML5, CSS3, etc
"Can I use" provides up-to-date browser support tables for support of front-end web technologies on desktop and mobile web browsers.

まとめ:CSSでできることがめちゃくちゃ増えたので学び直さないといけない時代に突入

複数の要素に同一内容を指定しなければいけないとき、大量の重複したコードを書かなければいけないことに辟易とし、引き継いだり、引き継がれたりしたときにこうした重複コードを書き換えなければいけないときなんかは事故の原因になったりもします。

「:is()」は本当に便利なものなので、使いこなしたいものです。

余談ですが10代の頃(20年以上前…)から当然ながらCSSの状況も大きく変わりました。個人的には多種多様なメディアに対応するためのレスポンシブウェブデザインという設計思考から、SassやJavaScriptで頑張らなければいけないような部分もCSS単品でできるようになってきているから驚きです。

           

お仕事・当サイトへ興味を持っていただいた方
お問い合わせはこちらから

ma-san(鈴木正行)
テクニカルディレクター / Webデザイナー

「ma-san」の中の人。東京都・千葉県・宮城県仙台市を中心に企業のWebデザイン/マーケティング/IT戦略のプランニングからWebサイト構築・運用をしています。
「Webサステナビリティ・Webアクセシビリティ」を中心に、「変わりゆくWebと共にサービス・サイトを改善していくこと」を重視します。
当サイトではお仕事のご相談からナレッジシェアを中心に活動していきます。

CSS
スポンサーリンク
シェアする
ma-sanをフォローする
ma-san blog
タイトルとURLをコピーしました