この例 からわかるように、input
はその親div
を「オーバーフロー」しているようです。 input
を親からオーバーフローさせずに、パディングを追加したいと思います。
すべてのブラウザ(IE、Firefox、Chromeなどを含む)に最適なソリューション/回避策を知りたいです。
この回答 が表示されますが、気に入らない場合は、次のようにbox-sizing
CSS3プロパティを使用できます。
input {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
パディングはオブジェクトの幅を増やします。 1つのオプションは、入力から左/右のパディングを削除し、テキストインデントを使用することですが、これにより右のパディングが削除されます。
.inside{
background: blue;
border: none;
padding-bottom: 10px;
padding-top: 10px;
text-indent: 10px;
width: 100%;
}
または、パディングにハードコードされたピクセル幅を使用する代わりに、パーセンテージを使用して、幅からその値を差し引くこともできます。
.inside{
padding: 3%;
width: 94%;
}
内部divの幅を100%
として指定しないでください。 divは、その親コンテナの幅に自動的に適合します。 デモ
入力はdiv内にあるように見えますが、左上隅にあります。入力はdivの幅の100%を占めるため、divの赤い背景を覆い隠します。 divが長いので、下に突き出て、入力が上にあるように見えます。以下をせよ: