ユーザー操作

appearance

appearance は、フォームの部品をブラウザが用意した見た目で描くかを指定します。none にすると、セレクトボックスの矢印などが消え、CSS で一から見た目を作れます。

構文none | auto | <compat-auto> | <compat-special> …
none | auto | <compat-auto> | <compat-special>

<compat-auto> = searchfield | textarea | checkbox | radio | menulist | listbox | meter | progress-bar | button
<compat-special> = textfield | menulist-button

プレビュー

好きな色
プリセット
右下の角をドラッグするとサイズを変えられます

コード

.box > :nth-child(2) {
  appearance: none;
}

コントロール

appearancenone
appearance
好きな色

解説

値の書き方

  • auto: ボタン、セレクトボックス、チェックボックスなどの部品を、ブラウザが用意した見た目で描きます。部品でない要素では none と同じです。
  • none: 部品の見た目を描かず、ふつうの CSS の箱として描きます。

初期値は none ですが、ブラウザの既定のスタイルが部品に auto を書いているので、部品はふだん auto で描かれています。プレビューでは、セレクトボックス(2 番目の子)に書いています。none にすると右端の矢印が消えます。

よく使う場面

チェックボックスやセレクトボックスを独自のデザインにするとき、まず appearance: none でブラウザの描き込みを消してから、枠や背景、矢印の画像を自分で付けます。

気をつけること

  • none にしても、部品の働きは残ります。選んだりチェックしたりでき、キーボードの操作や読み上げもそのままです。代わりに矢印やチェックの印が消えるので、何の部品かわかる見た目を自分で付け直します。
  • チェックボックスやラジオボタンに none を書くと、Chrome では枠も大きさも無くなり、見えなくなります。width・height・border を付け、:checked のときの見た目も作ります。
  • checkbox や menulist-button などの値は、ブラウザごとに独自だったころの名残で、ほぼ auto と同じです(textfield は検索欄を、menulist-button はセレクトボックスを少し違う見た目にします)。
  • 仕様には、セレクトボックスを選択肢の一覧(::picker(select))まで CSS で作り直せる base-select もあります。Chrome・Edge 135 と Safari 27 から使えますが、このページの構文の表示が対応していないので、構文とプレビューからは外しています(同じく仕様にある base も外しています)。

コメント