在查看大多数网站(包括SO)时,大多数网站使用:
<input type="button" />
而不是:
<button></button>
两者之间的主要区别是什么?是否有合理的理由使用其中一个而不是另一个?是否有合理的理由使用组合它们?使用<button>是否存在兼容性问题,因为它没有被广泛使用?
在查看大多数网站(包括SO)时,大多数网站使用:
<input type="button" />
而不是:
<button></button>
两者之间的主要区别是什么?是否有合理的理由使用其中一个而不是另一个?是否有合理的理由使用组合它们?使用<button>是否存在兼容性问题,因为它没有被广泛使用?
当前回答
下面是一个描述差异的页面(基本上,您可以将html放入<button></button>)另一页描述了为什么人们避免使用<button></button>(提示:IE6)
使用<button/>时的另一个IE问题:
当我们谈论IE时有几个与按钮宽度。它会神秘地尝试时添加额外填充添加样式,意味着必须添加把事情搞得一团糟控制
其他回答
这篇文章似乎很好地概括了两者的区别。
从页面:
使用BUTTON元素创建的按钮与按钮一样使用INPUT元素创建,但是它们提供了更丰富的渲染可能性:BUTTON元素可能有内容。例如,按钮包含图像的元素函数类似于类型设置为的INPUT元素“image”,但BUTTON元素类型允许内容。Button元素-W3C
<button>很灵活,因为它可以包含HTML。此外,使用CSS进行样式设置要容易得多,而且样式设置实际上适用于所有浏览器。然而,Internet Explorer(Ew!IE!)存在一些缺点。Internet Explorer使用标记的内容作为值,无法正确检测value属性。表单中的所有值都会发送到服务器端,无论是否单击按钮。这使得将其用作<button type=“submit”>变得棘手和痛苦。
另一方面,<input type=“submit”>没有任何值或检测问题,但您不能像使用<button>那样添加HTML。它也很难进行样式设置,并且样式设置在所有浏览器中的响应并不总是很好。希望这有所帮助。
在<button>元素中,您可以放置内容,如文本或图像。
<button type="button">Click Me!</button>
这是该元素与使用<input>元素创建的按钮之间的区别。
就CSS样式而言,<button type=“submit”class=“Btn”>示例</button>更好,因为它可以让您使用CSS:before和:after伪类,这会有所帮助。
由于在某些情况下使用类样式时,<inputtype=“button”>的视觉呈现与<a>或<span>不同,因此我避免使用它们。
值得注意的是,目前的最高答案是2009年写的。IE6现在已经不受关注了,所以<button type=“submit”>Wins</button>风格一致性在我看来是最重要的。
我只想在这里的其他答案中添加一些内容。输入元素被视为空元素或void元素(其他空元素包括area、base、br、col、hr、img、Input、link、meta和param。您也可以在此处检查),这意味着它们不能包含任何内容。除了没有任何内容外,空元素不能有任何伪元素,如::after和::before,我认为这是一个主要缺点。