[解決済み] 入力中のパディングは幅を100%にする
2022-05-15 13:02:39
質問
オブジェクトにパディングを設定すると、たとえ明示的に設定されていてもその幅が変わってしまうということはわかりました。この背後にある論理を論じることができる一方で、それはいくつかの要素でいくつかの問題を引き起こします。
ほとんどの場合、子要素を追加して、100% に設定された要素の代わりにその要素にパディングを追加すればよいのですが、フォーム入力の場合、それは不可能な手順です。
これを見てください。
body {
font-size: 14px;
margin: 0px;
padding: 0px;
}
DIV.formfield {
clear: both;
margin: 0px;
padding: 10px;
}
DIV.formlabel {
margin-top: 20px;
padding: 5px;
font-weight: bold;
text-align: left;
}
DIV.formvalue {
background-color: #eee;
border: 1px solid red;
padding: 10px;
margin: 0px;
}
DIV.formvalue.correct {
border: 1px solid green;
}
textarea.textarea {
width: 100%;
min-height: 80px;
}
input.input {
width: 100%;
padding: 5px;
}
input.input2 {
width: 100%;
}
input.input3 {
width: 100%;
padding: 5px;
margin: -5px;
}
input.input4 {
width: 100%;
padding: 10px;
margin: -10px;
}
input.input5 {
width: 100%;
padding: 10px;
box-sizing: border-box;
}
<div class='formfield' id='field_text'>
<div class='formlabel'>No padding</div>
<div class='formvalue'>
<textarea class='textarea' cols='80' rows='10' name='text'>No padding here</textarea>
</div>
<div class='formlabel'>Also no padding</div>
<div class='formvalue'>
<input type='text' class='input2' name='apa' value='Or here...' />
</div>
<div class='formlabel'>5px padding, which extends the parent element, d'oh!</div>
<div class='formvalue'>
<input type='text' class='input' name='apa' value='I dont want to extend outside the square!' />
</div>
<div class='formlabel'>5px padding and -5px margin, this does the trick, almost...</div>
<div class='formvalue'>
<input type='text' class='input3' name='apa' value='I dont want to extend outside the square!' />
</div>
<div class='formlabel'>10px padding and -10px margin, things are falling apart on the right side</div>
<div class='formvalue'>
<input type='text' class='input4' name='apa' value='I dont want to extend outside the square!' />
</div>
<div class='formlabel'><img src="/bilder/icons/badges/ok.png" width="16" height="16" border="0"> 10px padding and box-sizing: border-box</div>
<div class='formvalue correct'>
<input type='text' class='input5' name='apa' value='I dont want to extend outside the square!' />
</div>
</div>
2つ目の入力はパディングが5pxに設定されていますが、これはデフォルトの設定よりも非常に好ましいです。しかし残念ながら、これによって入力はすべての方向に 10px 大きくなり、100% の幅に 10px が追加されることになります。
問題は、input の内部に子要素を追加できないため、修正できないことです。そこで質問なのですが
幅を 100% に保ったまま、入力の内側にパディングを追加する方法はありますか? フォームが異なる幅の親でレンダリングされるため、親の幅を事前に知らないので、100%にする必要があります。
どのように解決するのですか?
CSS3 を使用すると、プロパティ ボックスサイズ の幅を計算する方法を変更することができます。 入力 .
input.input {
width: 100%;
box-sizing: border-box;
}
詳しくはこちらでご覧いただけます。 http://css-tricks.com/box-sizing/
関連
-
[CSSチュートリアル】CSSのクラスとidの共通命名規則
-
[CSSチュートリアル】クールなネオン効果を実現するピュアCSS(デモあり)
-
[css3]グレーモードやブラックモードを実現するCSS3フィルター(フィルター)サンプルコード(Webページ用
-
[CSSチュートリアル]CSS気まぐれボーダーアニメーション効果
-
[css3]css3によるフレックスレイアウト幅の解決方法が有効でない件
-
[CSSチュートリアル】背景画像画面の適応的な実装を実現するCSS
-
[CSSチュートリアル】SVGを使ったCSSアニメーションでエネルギーフローを表現する
-
[解決済み] コンテナの幅に応じたフォントの拡大縮小
-
[解決済み] CSS 100% height と padding/margin の関係
-
[解決済み] 100%幅のテキストボックスがコンテナからはみ出さないようにすることはできますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[CSSチュートリアル]CSSで簡単!高周波な異形ボタンを実現する方法
-
[CSSチュートリアル】シングルセレクトの折りたたみメニュー機能を実現するCSS
-
[CSSチュートリアル】CSS擬似要素::マーカー解説
-
[CSSチュートリアル】波動効果を生み出すCSSのアイデア
-
[CSSチュートリアル]css display table adaptive height, widthの問題解決
-
[CSSチュートリアル】子要素のmargin-topが親要素の移動を引き起こす問題解決
-
[css3]Apple携帯電話のロック解除のためのCSS3サンプルフォントシャインエフェクト
-
[CSSチュートリアル】CSSで実現できるのなら、わざわざJavaScriptを使う必要はない
-
[CSSチュートリアル】CSS複合セレクタの具体的な使用方法
-
[解決済み] 100%幅のテキストボックスがコンテナからはみ出さないようにすることはできますか?