Juk*_*ela 58
一个button元素是文档正文文本地方级标记可能会出现有效的任何地方.这样的元素不需要与元素有任何关系form.当前权威参考是HTML 4.01规范,正式规则在DTD中,但您可以使用快捷方式并使用W3C标记验证器来检查文档是否有效.
如果未与表单关联,则button元素与span元素(与div默认情况下为块级别)没有太大差别,但button具有特殊的默认呈现.浏览器和辅助软件可以把button另有特别呢,这是最安全的方法button仅适用于那些应该在点击时触发一些动作元素.相反,这些元素通常最好使用button标记来表示,尽管您也可以通过其他方式创建视觉上类似按钮的元素(主要是图像或CSS).
在表单之外,button元素具有type=button默认值(并且通常type对于它来说通常是唯一合理的).这意味着它只能通过JavaScript产生效果.这不会使它以任何方式无效.但是,您可以考虑通过JavaScript生成这样的按钮,而不是将它们作为静态HTML内容,这样当禁用脚本时,就不会有(有效但是)令人困惑的按钮不执行任何操作.
要在下面的评论中解决澄清问题:
甲button type=button元素类似于input type=button; 区别在于后者没有内容,但是从value属性中获取按钮中显示的文本,而button内容可以是"丰富的"(带有标记).
对于任一元素,如果使用它们会导致服务器操作(通常通过Ajax调用),那么我们确实可以询问页面如何在禁用JavaScript的情况下工作.但是这个问题可能是无关紧要的(也许页面是一个应该用JavaScript运行的应用程序),并且在任何情况下都没有正式的错误.
它们为什么存在?为了方便作者和遗留原因,我想说.类似地,人们可能会问为什么HTML根本没有事件属性,如果没有客户端脚本就无法工作,并且可以将事件处理程序分配给JavaScript中的元素.但是在早期,这是不可能的,即使在目前,使用button元素或onclick属性比在JavaScript中做事更方便(并且,为了使元素看起来像一个按钮,CSS).还有一点是,button并input type=button为元素创建依赖于浏览器的外观,并且可能有人认为,对于大多数用户来说,任何具有浏览器默认样式按钮样式的东西都被视为按钮.
是.很久以来.
来自whatwg.org:
可以使用此元素的上下文:
在预期措辞内容的地方.
在ajax时代,大多数输入不仅仅是通过提交表单来发送.大多数按钮仅用于在使用可识别的小部件时执行单击操作.