Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

自结束标签省略末尾斜杆的风格

  在 HTML5 中对自结束标签的末尾是没有要求添加斜杆的,因为 HTML5 中的自结束标签数量是有限的,而且不存在自定义的自结束标签,所以即使没有末尾的斜杆也能区分哪些标签是自结束的。目前很多代码风格规范都建议不写自结束标签末尾的斜杆,对这点我是不赞同的。

一个诡异的逻辑

  下图截自某份代码风格规范

  这个逻辑不是很矛盾吗?反正我觉得这比一国两制还矛盾。

为什么大家喜欢省略它?

  我觉得大家喜欢省略它,很大一部分原因是因为 HTML5 规范中的示例省略了自结束标签末尾的斜杆。我觉得不该拿这玩意儿说是,规范中的示例其实各种问题,我喷过不止一次了。当年 IE 的 innerHTML 返回的是大写风格的 HTML 标签,于是很多猴子认为这是规范写法,把代码风格也做成大写。大家太过于依赖所谓权威了,规范也是人做的。

为什么在自结束标签末尾加斜杠?

  大多数标记语言都是如此,即使是之前的 XHTML 也是如此建议,这种写法是标记语言的基本用法。对所有标记语言都采用统一的风格才能让代码更具有一致性。
  自结束标签末尾的斜杆本身就是决定它是自结束标签的依据,HTML 中虽然自结束标签是很有限的,但省略自结束标签末尾的斜杆之后还有多少人能区分哪些是自结束的?也许<br><input>之类的东西大家可以知道。但其它呢?找个5年以上开发经验的前端猴子也未必能说出下面这些标签哪些是自结束的。 <keygen> <picture> <video> <source>   斜杆可省略只是 HTML 自己决定的东西,SVG、MathML 等都不允许省略,而且这些标记语言同样可以嵌入 HTML 使用。如果针对 HTML 使用了省略斜杆的风格,在把 SVG 嵌入到 HTML 中使用时就会发现,文档中既有省略斜杆的 HTML5,又有不省略斜杆的 SVG,最终一致性完全丧失。

网名:
54.144.24.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^