<button>标签有哪些缺点?

64
我开始使用一份诊断性的CSS样式表,例如:http://snipplr.com/view/6770/css-diagnostics--highlight-deprecated-html-with-css--more/ 其中一条建议的规则是用颜色突出显示type为submit的input标签,并推荐使用<button>作为更语义化的解决方案。您遇到过关于<button> with type submit的优缺点(例如浏览器兼容性)吗?
仅为明确起见,我理解<button>的规范,它有定义的开始和结束,可以包含各种元素,而input是单元素且不能包含其他元素。我想知道的实质上是它是否存在问题。我想知道当前<button>的可用性如何。不幸的是,下面的第一个答案似乎暗示在除了表单之外的用途中它是有问题的。 2015年编辑 情况已经改变!我现在有了6年处理按钮的经验,浏览器也从IE6和IE7中发展出来了。因此,我将添加一篇回答详细说明我发现了什么以及我建议的内容。

4
你有没有注意到,人们从来不会说“如果你想要Opera9”或者“如果你想要Firefox 2”之类的话……哈哈,IE6/7除外 :( - ANeves
6
这是因为IE6和7拥有相当大的市场份额,而Opera9和Firefox 2则没有。非常简单的事情。 - user229044
另一个我最终发现的按钮标签的怪癖是:如果你将它包裹在链接中,在某些浏览器中可以工作,而在其他能力较弱的浏览器(ie6、ie7、ie8)中则不能。虽然这可能不仅仅适用于按钮,但在哪里还有其他地方可以使用这种技术呢? - Kzqai
这个问题需要更新。 - Randy L
1
@the0ther,我尽力更新了。 - Kzqai
显示剩余2条评论
11个回答

-2

看起来使用<button>的主要原因是允许对该按钮进行CSS标记,并能够使用图像样式化该按钮:(请参见此处:http://www.javascriptkit.com/howto/button.shtml

然而,我认为在(X)HTML + CSS中更常见的方法是使用div并完全使用图像和:hover伪类进行样式化(模拟按钮按下...每个答案不能添加多个链接,所以只需谷歌“div button”即可看到很多示例),并使用JavaScript进行表单提交或AJAX调用...如果您不使用HTML表单并且使用AJAX进行所有提交,则这也更有意义。


2
第二种方法似乎对于渐进增强来说不太友好,对吗? - Kzqai
使用<div>标签时无法完成<button>标签的功能,因此在使用/不使用<div>标签时,CSS并不能成为一个好的证明。 - Brad Koch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接