对 html 标签使用大写字母是否很糟糕?

Posted

技术标签:

【中文标题】对 html 标签使用大写字母是否很糟糕?【英文标题】:Is it bad to use uppercase letters for html tags?对 html 标签使用大写字母是不是很糟糕? 【发布时间】:2013-11-17 11:30:29 【问题描述】:

最佳做法是什么?

 <html> or <html>

为什么我们应该坚持一个特定的案例?

然而,所有浏览器似乎都能解释这两种情况并返回预期的输出。

【问题讨论】:

浏览器也接受 UglYCAse……只是全部小写,没有什么好讨论的了。 为什么不只是所有的 UglYCAse ? 我认为这是见仁见智的问题。我个人觉得小写更容易阅读。 这是个人选择,但我没有遇到任何网页将大写 html 标签。 @dystroy:是的,这是一个见仁见智的问题,因为它没有区别,但关键是 OP 不知道这一点;这里的很大一部分问题是它是否真的有所作为。 【参考方案1】:

小写的“要求”是 xHTML 的遗留物,它明确要求它。

另一方面,Plain old HTML 不遵循 XML 严格的结构要求,因此对大小写的使用没有固定要求。

但是,无论如何,开发人员都倾向于坚持使用小写字母作为约定,主要是因为在您处理它时它更容易阅读,并且更容易输入。但这只是一个约定;没有什么强迫它。如果您有带有大写标签的现有代码,它们将起作用,并且没有什么能阻止您继续以这种方式编写标签。

还有一点需要注意:在所有浏览器中,当浏览器加载 HTML 文档并对其进行解析时,它会将其转换为 DOM(文档对象模型)。如果您随后使用浏览器的内置开发人员工具检查该站点,则当您查看 DOM 时,DOM 中的所有元素都将显示为小写,无论它们在实际源代码中是如何编写的。

因此,如果您坚持使用小写字母,您会发现使用开发人员工具更容易,因为您在 DOM 视图中看到的代码将与您编写的源代码更加一致。

【讨论】:

另一方面,如果你对 DOM 元素的 tagName 属性进行等号比较,你必须记住要大写。 此外,根据您使用的网络服务器,它可能会将标签在到达客户端的过程中转换为小写,原因与浏览器内置工具相同。 提醒 HTML5 完全但可选地支持 XML 语法。对于我们这些使用 XML 相关工具的人来说,我们必须意识到 XML 是区分大小写的。有些人使用全小写来避免意外的大小写不匹配错误。【参考方案2】:

规范中唯一相关的部分说:

HTML 标记和属性名称不区分大小写。 XHTML 标记和属性名称区分大小写,并且必须小写

任何标准中未提及的内容:

通常认为小写更容易阅读 小写是最常见的(也是人们习惯使用的) 一直按住 shift 键或切换 CAPS LOCK 很痛苦

【讨论】:

【参考方案3】:

可能很小,我没有证据支持它,但我敢打赌,使用小写标签会略微提高页面的 gzip/deflate 可压缩性,因为大多数文本也可能是小写的。

【讨论】:

【参考方案4】:

前端框架可能依赖小写约定

其他答案是正确的,但是编写小写 HTML 的另一个原因(可能比“坚持约定”更重要)是某些前端框架将依赖此约定来区分 HTML 和用户定义的组件或模板(通常以大写字母开头)。 React、Svelte 和 Astro 是其中的一些示例,如下所示。

这意味着如果您使用的是前端框架,则可能无法使用大写字母编写 HTML 标签。如果您不使用前端框架,那么将来使用它可能会更加困难。

示例:

React

当一个元素类型以小写字母开头时,它指的是一个 内置组件,如 &lt;div&gt;&lt;span&gt; 并生成字符串 'div''span' 传递给React.createElement。以 a 开头的类型 像&lt;Foo /&gt; 这样的大写字母编译为React.createElement(Foo) 和 对应于您的 javascript 文件中定义或导入的组件。

我们建议使用大写字母命名组件。如果您确实有一个以小写字母开头的组件,请在 JSX 中使用之前将其分配给大写变量。

Svelte

小写标签,如 ,表示常规 HTML 元素。大写的标签,例如&lt;Widget&gt;&lt;Namespace.Widget&gt;,表示一个组件。

Astro

请注意,Astro 组件必须以大写字母开头。 Astro 将使用它来区分原生 HTML 元素(forminput 等)和您的自定义 Astro 组件。

【讨论】:

【参考方案5】:

使用一种特殊情况很重要,以防止混淆。但是使用大写或小写不会改变任何事情。

【讨论】:

【参考方案6】:

我更喜欢小写,因为这是 HTML 5.2 规范所使用的: https://www.w3.org/TR/html52/introduction.html#a-quick-introduction-to-html

HTML 4.0 规范以大写形式显示 HTML 标记,但规范本身在其 HTML 代码中使用小写标记: https://www.w3.org/TR/html40/struct/global.html

Java 的 javax.swing.text.html.Html.Tag 类使用小写(尽管 Java 常量是大写的,这与 Java 的命名约定一致)。

Go 的 godoc 工具使用小写。

【讨论】:

【参考方案7】:

基本上 HTML 是不区分大小写的。输入 HTML 标签或 HTML 标签属性时可以使用小写或大写,但 XHTML 需要小写。在为将来的升级做准备时,请使用小写的 HTML 标记和 HTML 标记属性

【讨论】:

以上是关于对 html 标签使用大写字母是否很糟糕?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以设置 html5 音频标签的样式?

是否可以设置 html5 音频标签的样式?

xcode - 大写标签输出

C# - 在标签中逐字显示文字?

很实用的html meta标签实现页面跳转

如何使用Python将K均值中的彩色分组标签返回到数据集?