在 HTML5 中對自結(jié)束標簽的末尾是沒有要求添加斜桿的,因為 HTML5 中的自結(jié)束標簽數(shù)量是有限的,而且不存在自定義的自結(jié)束標簽,所以即使沒有末尾的斜桿也能區(qū)分哪些標簽是自結(jié)束的。目前很多代碼風格規(guī)范都建議不寫自結(jié)束標簽末尾的斜桿,對這點我是不贊同的。
一個詭異的邏輯
下圖截自某份代碼風格規(guī)范
這個邏輯不是很矛盾嗎?反正我覺得這比一國兩制還矛盾。
為什么大家喜歡省略它?
我覺得大家喜歡省略它,很大一部分原因是因為 HTML5 規(guī)范中的示例省略了自結(jié)束標簽末尾的斜桿。我覺得不該拿這玩意兒說是,規(guī)范中的示例其實各種問題,我噴過不止一次了。當年 IE 的 innerHTML 返回的是大寫風格的 HTML 標簽,于是很多猴子認為這是規(guī)范寫法,把代碼風格也做成大寫。大家太過于依賴所謂權(quán)威了,規(guī)范也是人做的。
為什么在自結(jié)束標簽末尾加斜杠?
大多數(shù)標記語言都是如此,即使是之前的 XHTML 也是如此建議,這種寫法是標記語言的基本用法。對所有標記語言都采用統(tǒng)一的風格才能讓代碼更具有一致性。
自結(jié)束標簽末尾的斜桿本身就是決定它是自結(jié)束標簽的依據(jù),HTML 中雖然自結(jié)束標簽是很有限的,但省略自結(jié)束標簽末尾的斜桿之后還有多少人能區(qū)分哪些是自結(jié)束的?也許
或
之類的東西大家可以知道。但其它呢?找個5年以上開發(fā)經(jīng)驗的前端猴子也未必能說出下面這些標簽哪些是自結(jié)束的。