我有一個帶有一些可點擊的<div>
元素的頁面,我想將其更改爲<button>
s,以便通過jQuery更容易地識別它們。但是,當我將<div>
s更改爲<button>
s時,它們的大小會發生變化。 (我的造型他們作爲固定的寬度和高度,但按鈕呈現在不同的寬度和高度比格一樣。)爲什麼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>
我希望看到相同大小的兩個箱子,但底部框(在<button>
)明顯更小。在Windows(Chrome,FireFox,IE,Opera)和Android(內置瀏覽器和Dolphin)上,我嘗試使用的所有瀏覽器的行爲都是一致的。
我嘗試添加display: block;
的風格,認爲這可能使他們既渲染使用同樣的規則(即,使01呈現像div
因爲它是一個塊元素現在),但沒有任何效果 - 按鈕保持較小。
隨着我增加邊框寬度,視差增加。它看起來好像按鈕的border
是裏面的它的width
,而不是width
之上,並且與<div>
一樣超出其width
。據我瞭解,這違反了box model,雖然W3C確實說:
是正常/記錄/預期的行爲爲button
有它的邊界在其寬度和高度的內部,而不是外部的?我可以依靠這種行爲嗎?
(我的頁面使用了HTML5的doctype,如果這是相關的。)
你能依靠這種行爲來保持一致嗎?我不知道你是否可以,但如果我正在定製我的控件,我不會。 – BoltClock