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