知名度が低いウェブ標準ひとり Advent Calendar 2021 – 03 日目
今日は <fieldset> です。複数のフォームコントロールをグループ化します。外観が独特。
- <fieldset>: フィールドセット要素 – HTML: HyperText Markup Language | MDN
- デモ 1 :https://codepen.io/ginpei/pen/YzxoJZr
- デモ 2 :https://codepen.io/ginpei/pen/rNGVoXz
いわゆる HTML5 よりも前の時代から存在する古株です。
基本的な使い方
<fieldset> はフォームの項目群をまとめるものです。<legend> と一緒に使って、枠線で括られた見出し付きの領域ができます。
<fieldset> <legend>グループ名</legend> グループの内容 … </fieldset>

見出しが線に乗り、かつ線と重ならずにかき消すスタイルになっています。これを自前で実装するのは大変そう。
昔の Windows でよく見た UI ですね。今でもよく見るか。
使いどころ
特殊な機能として、disabled 属性を与えて配下のフォームコントロールをまとめて不活性化することができます。枠線等を CSS で消して <legend> を与えなければ見た目も変わりません。
枠線
見出しの乗り方が特殊だけど枠線自体は普通に border で制御できます。
セクション
地味な要素ですが 7 つしかない sectioning root のひとつです。
<blockquote><body><details><dialog><fieldset><figure><td>
<legend> 要素
一緒に使う <legend> 要素は該当グループの見出し (caption) を設定します。<fieldset> 要素の最初の子要素としてのみ利用可能な要素です。
<details> に対する <summary> みたいもの。
おしまい
まとめて disabled 設定できるのは割と便利かも。最近デモでスタイル消して使いました。でも近年は React とかだしそんなでもないかなあ。それより <form> にもまとめて disabled 設定できたら嬉しかった。
まさか CodeGrid と被るとは思いませんでした。しかも前後編ある。