html - 输入是否需要 "type"?

标签 html css input

所以我又陷入了一场哲学辩论中;

当您只需要文本输入时,是否应该为input 指定type

type 的默认值当然是 text,因此省略默认属性即可完成您想要的并在标记中节省 12 个字节。

但是,我不禁觉得这有哪里不对。一个真实的场景是实现一个库,例如 Formalize ;它不会触及没有显式 type 的元素。

给我的替代方案是使用 :not([type]) 来终止 IE8 支持,或者将文本输入样式应用于所有 input然后为 submit 和其他不应看起来像文本框的内容全部撤消它们。当在标记中编写 type 会简单得多时,这两者对我来说听起来都很笨拙。

这也让我感到困惑,只是假设浏览器将在时间结束之前知道您的意思,而无需明确定义它。例如,随着 Windows 的成长,我只是假设 Times New Roman 是所有网页上的默认字体。然后我安装了 Ubuntu,男孩让我感到惊讶。

不定义 type 是一种不好的形式吗?是否有任何令人信服的理由不对其进行定义?对于不指定 type 并依赖于我提到的默认值,是否还有其他问题?此默认设置是否适用于旧版浏览器?非特定 input 的可访问性如何?

最佳答案

type <input> 不需要属性元素。如您所述,它默认为 text .然而,尽管这些是由 HTML 定义的语义,但一些工具并不遵守这一点。因此,明确指定它会更安全。

It also rubs me the wrong way to just assume that the browser will until the end of time just know what you mean without explicitly defining it.

它由 HTML 规范明确定义。一个<input>没有 type 的元素属性默认为 text 类型.除非浏览器以这种方式处理事情,否则它不会正确地呈现 HTML。您所做的唯一假设是这是未指定的行为。阅读规范。

For example, growing up with Windows I just assumed Times New Roman was the default font on web pages everywhere.

区别在于没有规范将其定义为默认值。

关于html - 输入是否需要 "type"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16507740/

相关文章:

javascript - jquery 适用于静态 html,但不适用于动态 html

javascript - HTML页面中元素的加载、渲染和执行顺序是怎样的?

html - 使图像完全填充 div 而无需平铺

Python:读入包含分数或 float 的文件以将其视为 float

python-3.x - Python删除输入行

javascript - 将变量设置为输入值 (jQuery)

java - 统计每个客户的访问次数

css - 如何根据百分比填充svg路径?

css - ReactJS Griddle 覆盖内联样式

c# - 将 CSS 标签名称存储在数据驱动菜单的数据库中……这是错误的吗?