inputやtextarea要素のpadding分、要素全体の幅が伸びる問題の対処

カテゴリ:Webサイト

記事の種類:デザイン変更

inputやtextareaの入力フォーム、selectメニューをちょっとエレガント?なデザインに変更しました。

これまでは装飾はなくデフォルト状態で表示していましたが、色の変更やpaddingなどを調整してかなり見やすくなったと思います。もっと早くやっておけばよかったです。

ちなみに、inputやtextareaのpaddingを増やすとその分だけ幅が増えてしまう(要素全体の幅がwidth+paddingになる)問題が起こりました。調べるとこれは仕様のようで、widthを100%にしていても、paddingの分増えるため、幅が100%以上になってしまい、親領域から入力フォームがはみ出して不格好になってしまいます。

解決策として、box-sizing: border-box;というCSSがあり、これを指定すると要素全体がwidthやheightで指定した幅になるように調整してくれます。非常に大変助かりました。

box-sizingのデフォルト値はcontent-boxでbox-sizing: border-box;を指定していない場合、要素のコンテンツ領域がwidthの幅となります。したがってpaddingやborder分、textareaがはみ出ているのがわかります。

一方、border-boxはborderまで含めたサイズがwidthの幅になります。(これをデフォルトにして欲しい)

毎回、ちょっといじると何かのトラブルに遭遇する、Web開発の世界は奥が深いですね。

公開日時:2024年08月25日 14:42:08
最終更新日時:2024年08月25日 15:20:10

Webサイトに戻る

このページのトップに戻る