私はいくつかのクリック可能な<div>
要素とページを持っている、と私はそれが簡単にjQueryを介して、それらを識別できるように、代わりに<button>
秒にそれらを変更したいです。しかし、私は<button>
秒、彼らのサイズ変更に<div>
Sを変更したとき。 (私は固定幅と高さとしてそれらをスタイリングんだけど、div要素はよりもボタンが異なる幅と高さでレンダリング)divと同じスタイルのボタンが異なるサイズでレンダリングされるのはなぜですか?
は、ここで問題を再現jsfiddleです:http://jsfiddle.net/AjmGY/
は、ここに私のCSSです:
.styled {
border: 4px solid black;
background: blue;
width: 100px;
height: 100px;
}
そして、私のHTML:
<div class="styled"></div>
<button class="styled"></button>
私は同じ大きさの2つのボックスを見ることを期待しますが、下のボックス(<button>
)は顕著に小さい。この動作は、私がそれを試着すべてのブラウザで一貫して、両方のWindows(クローム、FireFoxの、IE、オペラ)とAndroid(内蔵のブラウザとイルカ)。
私は、彼らが同じルールを使用してレンダリングの両方(すなわち、それは今でブロック要素だからbutton
がdiv
ようにレンダリングします)が、それは効果がなかったなるかもしれないことを考えて、スタイルにdisplay: block;
を追加しようとしました - ボタンは小さいままです。
私は境界線の幅を増やすと、格差は増加します。ボタンのborder
は、むしろ上記と<div>
と同様にそのwidth
を超えたよりも、内部そのwidth
であるかのように見えます。
user agents may render borders for certain user interface elements (e.g., buttons, menus, etc.) differently than for "ordinary" elementsを:W3Cが言うんが、私の知る限りそれを理解するように、これは、box modelに違反します。
button
の外枠ではなく、幅と高さの内側に境界線を設定するのは正常/文書化/予想された動作ですか?この行動に頼ることはできますか?
は(それが関連するかどうマイページでは、HTML5のDOCTYPEを使用しています。)
この動作は一貫していますか?あなたができるかどうかわかりませんが、私がコントロールをカスタマイズしているなら、私はしません。 – BoltClock