一句话概括主题:[code]<button>[/code]具有[code]<input type="button" ... >[/code]相同的作用但是在可操控性方面更加强大。
[url=http://www.w3.org/TR/html4]HTML 4.01规范[/url]的[url=http://www.w3.org/TR/html4/interact/forms.html]Forms部分[/url]指名表单有以下几种控制类型:buttons, checkboxes, radio buttons, menus, text input, file select, hidden controls, object controls. 其中除了buttons/menus/object controls之外,都是由[code]<input>[/code]完成。
我这里说的是[code]<button>[/code]和[code]<input>[/code]。
[h2][code]<button>[/code]和[code]<input>[/code][/h2]
规范中指名:可以用[code]<button>[/code]和[code]<input>[/code]来做表单按扭。不同的按钮类型请参考这些元素的详细定义。要注意的是[code]<button>[/code]比[code]<input>[/code]支持更丰富的表现功能。
[h3]一些区别[/h3]
大家都知道[code]<input>[/code]可以这样用(实际上是一定要这样用):[code]<input type="submit" value="OK" />[/code],一定要这样闭合。而不是:[code]<input type="submit" value="OK" ></input>[/code]。因为起始标签为[b]必须[/b],而关闭标签是[b]禁止[/b]的。
[code]<button>[/code]比[code]<input>[/code]更厉害的地方就在于它可以[b]包含内容[/b]。它的值并不是写在[code]value[/code]属性里,而是包含在标签中。如:[code]<button>OK</button>[/code]。[code]<button>[/code]的起始标签和关闭标签都是[b]必须的[/b]。这样你便获得了样式化的主导权。
你可以这样写:[code]<button><strong>OK</strong>, I do.</button>[/code],甚至是插入图片:[code]<button><img src="button.gif" alt="" />, it's great.</button>[/code]。有点类似于[code]<input type="image">[/code],但是显然强大多了。
最后要注意的是,被[code]<button>[/code]包含的图片,不能使用热点地图,即不能[code]<img src="foo.gif" usemap="..." />[/code],这是不合法的。当然也不能再包含诸如[code]input[/code], [code]select[/code], [code]textarea[/code], [code]label[/code], [code]button[/code], [code]form[/code], [code]fieldset[/code], [code]iframe[/code],和[code]isindex[/code](不推荐使用)元素了。