css - 在HTML中使用input_tag、a_tag、div_tag和button_tag作为按钮的规则和优势

标签 css ruby-on-rails html button

在 HTML 中使用 a_tag、div_tag 和 button_tag 作为按钮有什么规则?

我是 Ruby on Rails 用户。 Rails 默认给 input_tag 和 button_tag 作为按钮。使用 button_tag 本身之外的其他标签有什么好处?我什么时候应该使用每一个?

提前致谢。

最佳答案

在不引入任何属性的情况下,有一个 HTML 按钮元素:

<button></button>

还有一个通用的表单输入元素,可以设置为呈现为按钮:

<input />

这两个元素都接受三个按钮类型的属性,让用户代理确定它们的行为(作为按钮):

<button type="button">Regular button</button>
<input type="button" value="Regular button" />

<button type="submit">Form submit button</button>
<input type="submit" value="Form submit button" />

<button type="reset">Form reset button</button>
<input type="reset" value="Form reset button" />

设置这些属性后,这两个元素的行为相同。这两个元素之间的主要区别是 button 元素可以包含 HTML,而 input 元素只能包含通过其 value 属性传入的文本(参见 <button> vs. <input type="button" />. Which to use?):

<button type="button">
    <span>This is perfectly valid</span>
</button>

<input type="button" value="No HTML permitted here" />

(作为旁注,button 元素接受任何 不是 交互式内容(例如,另一个按钮或复选框)的 phrasing content 后代。

但是,从可访问性的 Angular 来看,任何接受 role 属性的 HTML 元素都可以简单地通过声明 role="button":

<a role="button"></a>
<div role="button"></div>
<span role="button"></span>
...

这些都是完全有效的,合规的用户代理会将所有这些都视为按钮。

如何使用它们完全取决于上下文。如果您的按钮在表单中,您将要使用 input 元素;如果您的按钮在您的页面上是独立的,您将要使用 button 元素;如果您的按钮在超链接列表中找到,您也可以只使用 role 为“button”的 a 元素,但您可以只使用 button 如果你愿意,也可以在这里。请记住,type 属性的 submitresetbutton 值仅在 button< 上有效input 元素,并且在添加到具有“按钮” Angular 色 的任何其他元素时将不起作用。

关于css - 在HTML中使用input_tag、a_tag、div_tag和button_tag作为按钮的规则和优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20873274/

相关文章:

html - 如何在 CSS 中组合通配符和非选择器

javascript - 如何调整 Jquery Mobile 中所有元素的大小以适应 iframe?

ruby-on-rails - 拦截并处理 helper 中丢失的翻译

javascript - 如何将表单操作设置为 javascript :; on ruby on rails

javascript - 使用 HTML 填充 <Table> 行

c++ - 如何在 C/C++ 代码中使用 HTMLElement 类

javascript - 为什么这个程序每次重新加载页面时都会在消息表中插入值?

ruby-on-rails - 任何新的 Facebook API Rails 包装器的教程?

javascript - mp3 下载 Ionic 框架 |安卓 | HTML5

javascript - 如何使用 JQuery 检测鼠标悬停并在动态元素上添加动画