为html标签使用大写字母是不是很糟糕?

pow*_*own 42 html lowercase uppercase

什么是最佳做法?

 <HTML> or <html>
Run Code Online (Sandbox Code Playgroud)

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

但是,所有浏览器似乎都会解释这两种情况并返回预期的输出.

Spu*_*ley 46

小写的"需求"是xHTML的遗产,它明确要求它.

另一方面,普通的旧HTML不遵循XML的严格结构要求,因此不具有使用案例的固定要求

然而,无论如何,开发人员倾向于坚持使用小写作为惯例,主要是因为当你正在使用它时,它更容易阅读,并且更容易打字.但这只是一个惯例; 没有什么可以强迫它的.如果你有现有的大写标签代码,它们就会起作用,而且你无法阻止你继续以这种方式编写标签.

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

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

  • 另一方面,如果在DOM元素的tagName属性上执行等于比较,则必须记住在UPPER情况下执行此操作. (13认同)

Que*_*tin 24

规范的唯一相关部分说:

  • HTML标记和属性名称不区分大小写.
  • XHTML标记和属性名称区分大小写,必须为小写

任何标准中未提及的东西:

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


Mar*_*ter 6

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

其他答案是正确的,但编写小写 HTML 的另一个原因(可能比“遵守约定”更重要)是一些前端框架/库将依赖这种小写约定来区分 HTML 和用户定义的组件或模板(通常以大写字母开头)。ReactSvelteAstro是这方面的一些示例,如下所示。

这意味着,如果您使用前端框架,则可能无法使用大写字母编写 HTML 标签。如果您不使用前端框架,并且在 HTML 中使用大写字母,那么将来使用前端框架可能会困难得多。

例子:

反应

当元素类型以小写字母开头时,它引用内置组件(例如<div>or )<span>,并生成字符串'div' or 并'span'传递给React.createElement。以大写字母开头的类型,例如<Foo />编译到React.createElement(Foo)并对应于 JavaScript 文件中定义或导入的组件。

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

斯韦尔特

小写标签(如 )表示常规 HTML 元素。大写的标签(例如<Widget><Namespace.Widget>)表示组件。

阿斯特罗

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


tre*_*mby 5

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