ユーザー操作
field-sizing
field-sizing は、入力欄やテキストエリアの大きさを、中の文字に合わせて伸び縮みさせるかを指定します。content にすると、打った文字の分だけ広がります。
構文
fixed | contentプレビュー
お名前
プリセット
右下の角をドラッグするとサイズを変えられます
コード
.box > :nth-child(2) {
field-sizing: content;
}コントロール
field-sizingcontent
お名前
解説
値の意味
fixed:初期値です。中の文字数に関係なく、ブラウザが決めた大きさになります。inputのsize属性や、textareaのrows・cols属性で大きさを変えられます。content:中の文字に合わせた大きさになります。inputは打った文字の幅に、textareaは一番長い行の幅と行数に合わせた大きさになります。
プレビューでは、見出しの下の入力欄(2 番目の子)に書いています。content では名前の幅まで縮み、文字を打ったり消したりすると幅が変わります。fixed では、文字数に関係なく同じ幅です。入力欄には max-width: 100% も書いてあり、箱の幅より広がりません。
よく使う場面
チャットやコメントの textarea を、書いた行数に合わせて高さが伸びるようにするときに使います。これまで JavaScript で高さを計算していた処理が、CSS だけで書けます。
気をつけること
- 空にすると、文字を打つ位置の印の分しか幅が無くなり、ほとんど見えなくなります。
min-widthで最小の幅を、max-widthで広がりすぎない上限を決めておきます。 - 空で
placeholderがあるときは、プレースホルダーの文字の幅になります。 widthやheightを書くと、そちらが優先されます。textareaにwidthを書いておくと、幅は変わらず、折り返した行数に合わせて高さだけが伸びます。contentのときは、size・rows・cols属性は大きさに効きません。- Chrome では、
selectに書くと選んでいる選択肢の幅になります。 - Chrome・Edge 123、Firefox 152、Safari 26.2 から使えます。それより古いブラウザでは書いていないのと同じで、決まった大きさのままです。