在 HTML5 中对自结束标签的末尾是没有要求添加斜杆的,因为 HTML5 中的自结束标签数量是有限的,而且不存在自定义的自结束标签,所以即使没有末尾的斜杆也能区分哪些标签是自结束的。目前很多代码风格规范都建议不写自结束标签末尾的斜杆,对这点我是不赞同的。
一个诡异的逻辑
下图截自某份代码风格规范
这个逻辑不是很矛盾吗?反正我觉得这比一国两制还矛盾。
为什么大家喜欢省略它?
我觉得大家喜欢省略它,很大一部分原因是因为 HTML5 规范中的示例省略了自结束标签末尾的斜杆。我觉得不该拿这玩意儿说是,规范中的示例其实各种问题,我喷过不止一次了。当年 IE 的 innerHTML 返回的是大写风格的 HTML 标签,于是很多猴子认为这是规范写法,把代码风格也做成大写。大家太过于依赖所谓权威了,规范也是人做的。
为什么在自结束标签末尾加斜杠?
大多数标记语言都是如此,即使是之前的 XHTML 也是如此建议,这种写法是标记语言的基本用法。对所有标记语言都采用统一的风格才能让代码更具有一致性。
自结束标签末尾的斜杆本身就是决定它是自结束标签的依据,HTML 中虽然自结束标签是很有限的,但省略自结束标签末尾的斜杆之后还有多少人能区分哪些是自结束的?也许
或
之类的东西大家可以知道。但其它呢?找个5年以上开发经验的前端猴子也未必能说出下面这些标签哪些是自结束的。