3 回答

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個(gè)贊
嚴(yán)格來說,該<div>
元素是HTML中的非空/非空元素,即,它并非旨在自封閉。盡管<div />
是有效的XHTML(由于/>
表示有一個(gè)自動(dòng)關(guān)閉(或?yàn)榭眨┑腦ML元素),但普通的HTML解析器和某些驗(yàn)證器將其解釋為未封閉的開始標(biāo)記,因此是無效的HTML 4.01和HTML5。1個(gè)
實(shí)際上,通過W3C驗(yàn)證程序(作為HTML5)運(yùn)行給定的HTML片段會(huì)導(dǎo)致以下錯(cuò)誤消息:
在非無效HTML元素上使用的自動(dòng)關(guān)閉語法(/>)。忽略斜杠并將其視為開始標(biāo)記。
因此,您所看到的。
根據(jù)HTML5規(guī)范(在第一個(gè)鏈接中):
非void元素必須具有結(jié)束標(biāo)記,除非此參考文獻(xiàn)的HTML元素部分中該元素的子部分指出可以省略其結(jié)束標(biāo)記。
之后,該<div>
元素的小節(jié)指出:
div元素必須同時(shí)具有開始標(biāo)簽和結(jié)束標(biāo)簽。
這使得<div>
與眾不同<p>
或<li>
已知并非總是需要結(jié)束標(biāo)記。
如果<p>
在未關(guān)閉的位置后緊接一個(gè)<p>
,它將隱式關(guān)閉前一個(gè)<p>
。同樣適用<li>
。這是因?yàn)槟荒苤苯訉⒍鄠€(gè)段落或列表項(xiàng)嵌套在一起。但是,<div>
可嵌套到任何深度。因此,打開<div>
標(biāo)簽不會(huì)關(guān)閉先前未打開的<div>
標(biāo)簽。
這就是為什么您看到自己所看到的。
1 在真正的XHTML頁面中(通過充當(dāng)序列化為XML application/xhtml+xml
),第一個(gè)<div />
元素將不會(huì)擴(kuò)展以包裝第二個(gè)<div>text</div>
元素。取而代之的是,作為XHTML,它將遵循XML規(guī)則并將其自身包含為一個(gè)空元素,而不是遵循HTML標(biāo)記湯規(guī)則并被自身解釋為開始標(biāo)記。

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊
標(biāo)簽此時(shí)需要一個(gè)單獨(dú)的關(guān)閉器-可能會(huì)附加。
請注意,在正確的語法中,即使是自閉標(biāo)簽也需要一個(gè)額外的空間(<br />
,不是<br/>
)

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
這是因?yàn)閭鹘y(tǒng)的HTML解析器從未編程過自動(dòng)關(guān)閉元素/>
。驗(yàn)證器認(rèn)為這/>
是>
因?yàn)镠TML解析器正是這樣做的?,F(xiàn)在不能在HTML5解析器中更改此行為,因?yàn)樗鼤?huì)破壞太多依賴于皇家混亂(即HTML標(biāo)記湯)的網(wǎng)站。但是,正如我在第一個(gè)腳注中提到的那樣,如果您真的想在頁面中自動(dòng)關(guān)閉“空”元素(而不是真正的void元素),請將您的頁面序列化為XML,您將可以自由使用(實(shí)際上是必需的)遵循XML規(guī)則。
添加回答
舉報(bào)