一、定義和用法
<button> 標簽定義的是一個按鈕。
在 button 元素內(nèi)部,可以放置文本或圖像。這是<button>與使用 input 元素創(chuàng)建的按鈕的不同之處。
二者相比較, <button> 控件提供了更為強大的功能和更豐富的內(nèi)容。<button> 與 </button> 標簽之間的所有內(nèi)容都是按鈕的內(nèi)容,其中包括任何可接受的正文內(nèi)容,比如文本或多媒體內(nèi)容。例如,我們可以在按鈕中包括一個圖像和相關的文本,用它們在按鈕中創(chuàng)建一個吸引人的標記圖像。
唯一禁止使用的元素是圖像映射,因為它對鼠標和鍵盤敏感的動作會干擾表單按鈕的行為。
請始終為按鈕規(guī)定 type 屬性。Internet Explorer 的默認類型是 "button",而其他瀏覽器中(包括 W3C 規(guī)范)的默認值是 "submit"。
二、瀏覽器支持
所有主流瀏覽器都支持 <button> 標簽。
重要事項:如果在 HTML 表單中使用 button 元素,不同的瀏覽器會提交不同的值。Internet Explorer 將提交 <button> 與 <button/> 之間的文本,而其他瀏覽器將提交 value 屬性的內(nèi)容。請在 HTML 表單中使用input元素來創(chuàng)建按鈕。
三、注意事項
在使用<button>標簽時很容易想當然的當成 <input type="button">使用,這很容易產(chǎn)生以下幾點錯誤用法:
1、通過$('#customBtn').val()獲取<button id="customBtn" value="test">按鈕</button> value的值
在IE(IE內(nèi)核)下這樣用到得的是值是“按鈕”,而不是“test”,非IE下得到的是“test”。 參加上面標紅的第一句話。
這一點要和<input type="button">區(qū)分開。
通過這兩種方式$('#customBtn').val(),$('#customBtn').attr('value')在不同瀏覽器的獲得值,如下:
Browser/Value | $('#customBtn').val() | $('#customBtn').attr('value') |
Firefox13.0 | test | test |
Chrome15.0 | test | test |
Opera11.61 | test | test |
Safari5.1.4 | test | test |
IE9.0 | 按鈕 | 按鈕 |
驗證這一點可以在測試下面的代碼
2、無意中把<button>標簽放到了<form>標簽中,你會發(fā)現(xiàn)點擊這個button變成了提交,相當于<input type="submit"/>
這一點參見上面第二句標紅的話就明白什么意思了。
不要把<button>標簽當成<form>中的input元素。
驗證這一點可以在測試下面的代碼
一句話概括主題:<button>具有<input type="button" ... >相同的作用但是在可操控性方面更加強大。
HTML 4.01規(guī)范的Forms部分指 名表單有以下幾種控制類型:buttons, checkboxes, radio buttons, menus, text input, file select, hidden controls, object controls. 其中除了buttons/menus/object controls之外,都是由<input>完成。
我這里說的是<button>和<input>。
<button>和<input>
規(guī)范中指名:可以用<button>和<input>來做表單按扭。不同的按鈕類型請參考這些元素的詳細定義。要注意的是<button>比<input>支持更豐富的表現(xiàn)功能。
一些區(qū)別
大家都知道<input>可以這樣用(實際上是一定要這樣用):<input type="submit" value="OK" />,一定要這樣閉合。而不是:<input type="submit" value="OK" ></input>。因為起始標簽為必須,而關閉標簽是禁止的。
<button>比<input>更厲害的地方就在于它可以包含內(nèi)容。它的值并不是寫在value屬性里,而是包含在標簽中。如:<button>OK</button>。<button>的起始標簽和關閉標簽都是必須的。這樣你便獲得了樣式化的主導權。
你可以這樣寫:<button><strong>OK</strong>, I do.</button>,甚至是插入圖片:<button><img src="button.gif" alt="" />, it's great.</button>。有點類似于<input type="image">,但是顯然強大多了。
最后要注意的是,被<button>包含的圖片,不能使用熱點地圖,即不能<img src="foo.gif" usemap="..." />,這是不合法的。當然也不能再包含諸如input, select, textarea, label, button, form, fieldset, iframe,和isindex(不推薦使用)元素了。
更多建議: