JS無しCSSのみでテキストエリアを可変させる
2024.08.23 09:00
2024.08.23 09:40

HTMLフォームのテキストエリアは複数行のテキストを入力できるパーツですが、
通常だと縦の高さが一定で、たくさん文字を入れると隠れる仕様でした。
それをJSでなんとかしていたのが今までだったのですが、
ついにCSSのみで実現できるようになったみたいです!
では早速試してみましょう。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
<style type="text/css">
.textarea {
field-sizing: content;
min-height: 100px;
min-width: 200px;
max-width: 400px;
}
</style>
</head>
<body>
<textarea rows="5" class="textarea"></textarea>
</body>
</html>
見ての通りめちゃくちゃシンプルですね。
textareaの方は特に新しいことはしておらず、クラスを当てているだけです。
cssには「field-sizing: content;」を当てています。
これだけで可変するようになります。便利すぎますね。
今までとちょっと違うのは、
明示的にサイズを指定する必要があるというところです。
何もしないと、めちゃくちゃ小さいフォームになってしまいます。
あと、まだ実験段階なので、対応していないブラウザが多いことですかね。
いずれにしても対応していなければただ可変しないだけなので、
「必ず可変してくれなきゃ困る!」という状況以外は入れ得なんじゃないでしょうか。
CSSがどんどん便利になっていいですね。
今回は以上です!