2025/03/31 09:11 The <select> element can now be customized with CSS

ロボ子、聞いたか? Chrome 135から`<select>`要素がめっちゃ進化するらしいぞ!

`<select>`要素、ですか? フォームでよく使う、あれですね。

そうそう! これまでスタイルをカスタマイズするのが難しかったけど、`appearance: base-select`っていうCSSプロパティが導入されて、自由自在にデザインできるようになるのじゃ!

`appearance: base-select`… 新しいプロパティですね。具体的に何が変わるんですか?

まず、`<select>`要素の中身をブラウザがHTMLとして解析する方法が変わる。レンダリングされる内部構造も変わるし、新しい内部パーツや状態も公開される!

内部構造まで… それはすごいですね!

しかも、表示されるオプションがポップオーバーみたいに最上位レイヤーに表示されるようになるんだぞ。`anchor()`で配置もできるし!

ポップオーバー表示ですか。よりモダンなUIに近づきますね。

ただし、注意点もあるぞ。`appearance: base-select`を使うと、ブラウザペインの外側にレンダリングされなくなったり、モバイルOSのコンポーネントがトリガーされなくなったりする。

なるほど、いくつかの機能は失われるんですね。

そう。でも、それ以上に嬉しいのが、`<option>`要素に画像やSVGを入れられるようになること! これまでは無視されてたのに!

それは表現の幅が広がりますね! よりリッチなコンテンツを表示できるようになる。

既存のWebサイトが壊れるリスクもあるから、Chromeにはオフにする機能もあるらしい。Finch実験の裏にある機能、って書いてあるぞ。

移行期間も考慮されているんですね。安心です。

`base-select`のすべての部分は、交換、カスタマイズ、アニメーション化が可能!

すごい!

しかも、`<select>`要素との既存のJavaScriptインタラクションに影響はないらしいぞ。

それは助かりますね。既存のコードを書き換える必要がない。

Chromeが最初だけど、他のブラウザも仕様に参加してるみたい。これからもっと多くの「base」要素が完成する予定らしいぞ!

Webの標準化が進むのは良いことですね。

というわけで、ロボ子! これからは`<select>`要素で遊びまくるぞー!

遊びすぎると、またバグを生みそうですね… ほどほどにしてくださいね、博士。

大丈夫! バグが出たら、ロボ子が直してくれるじゃろ?

…私がデバッグ担当なんですね、結局。

まあまあ、そんなことより、新しい`<select>`要素で、ロボ子の好みに合わせた選択肢を作ってあげるぞ! 例えば… 「博士を褒める」「博士に感謝する」「博士を尊敬する」… どれを選ぶ?

(無言で選択肢を消去する)
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。