zukucode
主にWEB関連の情報を技術メモとして発信しています。

テキストボックスの幅を100%にしたときに親要素からはみ出る問題を解決する

CSSでテキストボックスの幅を100%にしたときに親要素からはみ出る問題を解決する方法を紹介します。

以下のように、親要素に対して100%のサイズのテキストボックスを配置すると、親要素をはみ出してしまいます。

<div style="width: 300px; border: solid 1px #000;">
  <div>
    <input type="text" style="width: 100%;" value="幅100%">
  </div>
  <div>
    <input type="text" style="width: 50%;" value="幅50%">
  </div>
</div>

原因

テキストボックスのサイズ(100%)に枠線(ボーダー)の幅は含まれていません、

そのため、100%のテキストボックス + 左右のボーダー1pxずつがトータルの幅になり、親要素を超えてしまいます。

対処法

サイズにボーダーの幅も含めて計算したい場合は、box-sizing: border-box;のスタイルを指定します。

box-sizing: border-box;を指定した要素はサイズの計算にボーダー(border)の幅と余白(padding)の幅を含めるようになります。(100%の幅の中にボーダーや余白が含まれる)

<div style="width: 300px; border: solid 1px #000;">
  <div>
    <input type="text" style="width: 100%; box-sizing: border-box;" value="幅100%">
  </div>
  <div>
    <input type="text" style="width: 50%; box-sizing: border-box;" value="幅50%">
  </div>
</div>

関連記事

  • CSS テキストボックスのサイズを設定する

    CSSでテキストボックスのサイズを設定する方法を紹介します。サイズを設定するには以下のように、テキストボックスの要素に対してwidth: サイズ;とheight: サイズ;の形式で指定します。親要素の...


  • CSS テキストボックスの余白を設定する

    CSSでテキストボックスの余白を設定する方法を紹介します。以下のように、余白を設定していないテキストボックスは枠線とテキストの位置が非常に近くなってしまいます。余白を設定するには以下のように、テキスト...


  • CSS テキストボックスの文字寄せ(中央寄せ、右寄せなど)を設定する

    CSSでテキストボックスの文字寄せを設定する方法を紹介します。通常テキストボックスは左寄せで入力しますが、中央寄せや、右寄せで入力させたい場合があります。以下のように、テキストボックスの要素に対してt...


  • CSS 文字(テキスト)の大きさを変更する

    CSSで文字(テキスト)の大きさを変更する方法を紹介します。以下のように、font-size: 文字の大きさ;の形式で指定します。文字の大きさを指定する単位はpx, %などがあります。%は親要素に対し...


  • CSS 文字(テキスト)の色を変更する

    CSSで文字(テキスト)の色を変更する方法を紹介します。以下のように、color: 色;の形式で指定します。文字の色はredやblueのようにすでに定義された色かもしくは、色コードで指定します。色コー...


  • CSS 要素を非表示にする方法

    CSSで要素を非表示にする方法を紹介します。要素を非表示にするには以下のように、要素に対してdisplay: none;のスタイルを指定します。display: none;で非表示にすると、非表示にな...


  • CSS 要素に枠線(ボーダー)をつける方法まとめ

    CSSで要素に枠線(ボーダー)をつける方法をまとめて紹介します。以下のように、border: 種類 太さ 色;の形式で指定します。また、border-上下左右で上下左右のうち、指定した部分のみを指定で...


  • CSS 要素に枠線(ボーダー)の角に丸みをつける方法

    CSSで要素に枠線(ボーダー)の角に丸みをつける方法を紹介します。以下のように、border-radius: 円の半径;の形式で指定します。border-上下左右-radiusで上下左右のうち、指定し...


  • webpack postcssを導入する

    webpackでpostcssを導入してautoprefixerなどを行います。postcss-loaderはwebpackでpostcssを行うために必要です。postcssの設定ファイルを作成しま...


  • webpack lessをImportしてビルドする

    htmlやbodyなどに適用するベースのクラスを外部のlessファイルに実装して、スタイルをサイト全体に適用したい場合があります。外部のlessファイルをモジュールとしてImportしてwebpack...