いくつかのフォーム要素でかなり正確なスタイリングをしようとしています。この問題は私に多くの悲しみを引き起こしています。<input>には不思議なボトムパッドが付いています
Iフィールドのサイズは、純粋にテキストによって決定されるように、入力フィールドは、任意のより数ピクセルパディングを有する終わる(display: block
で)<input>
からpadding
、margin
、border
とoutline
を除去しようとします他のブロックレベルの要素はまったく同じ方法でスタイルされています。ここでは例です: http://jsfiddle.net/nottrobin/b9zfa/
<input class="normalised testSubject" value="hello" />
<div class="normalised testSubject">hello</div>
はレンダリング:その例で
<input>
が19px
の計算高さを取得しながら、<div>
は16px
の計算高さを取得します。
Chrome 16、Firefox 9、およびOpera 11では同じ動作をするので、明らかにエンジンに依存しません。
手作業で高さを追加することで問題を解決できますが、設計をresponsiveのままにしておきたいので、これをしたくありません。
ここで何が起こっているのか理解できたら助けてくれるのですが、どのようにして<input>
がそれに続くブロックレベルの要素と同じ高さになるかを確実に確認できますか?
'.normalised' CSSから' line-height:1em'を削除して同じ高さにします。これは 'div'を' input'フィールドと同じ高さにします。この修正された[フィドル](http://jsfiddle.net/uday99/b9zfa/4/) – uday
@Daveを参照してください:私はそれを確認したクロム17。 –
@ EnvanMulawskiありがとう。 :) – uday