2011-11-01 97 views
47

例如:使用自閉DIV標籤可以嗎?

<div id="myDiv" /> 

東西將被做填充此div使用Javascript。

這是有效的HTML嗎?

+1

我會誠實地說不。我覺得只有某些標籤可以在xhtml中自動關閉。這些包括


,,。如果它工作,然後隨意使用它。 –

回答

36

否.HTML 4.x沒有任何自閉標記的概念。

它在XHTML中有效。

+1

這是正確的 - 對於我們這些使用AngularJS或類似框架的人來說,自閉DIV將會在IE8中破壞應用程序。 – Stone

+0

那你叫什麼img標籤呢? –

+1

只要謹防使用jQuery作爲SOMETIMES,當您在某個地方有自動關閉標籤時,它將無法正常工作。 –

11

Div的無效自閉標籤。有一個空div這將是更好地做到這一點:

<div id="myDiv"></div> 
0

不,這是有效的XML(不是HTML),而據我所知,如果文檔與應用程序發送纔會被接受/ xml mimetype。

但是,它可能適用於XHTML和XHTML Doctype聲明。

9

根據XML聲明和XHTML 1.0和1.1文檔定義,這樣做很好:可以在緊跟空結束起始標記(/)後使用空結束標記(>),並且您的代碼相當於<div id="myDiv"></div>

完全不同的是,任何特定的消費者是否能夠正確地處理這個問題。

HTML 4.01使用的SGML聲明允許標記縮短,但它對於空結束標記具有不同的語法;那裏你可以寫<div id="abc"/this is a non-empty div/。同樣,里程可能會因瀏覽器支持而有所不同。 (我的錢是「none」。)

未來的HTML版本(HTML5?如果該名稱仍然存在)不再作爲SGML語言實現,因此他們只是允許他們說他們所做的事,而不求助於一個正式的語法。

+3

+1瞭解更多詳情。也許相應的鏈接將會有所幫助^^ –

+1

@Howdy_McGee:檢查W3C,它們具有DTD以及HTML 4.01的SGML聲明(多個版本)以及XML的(強制性)SGML聲明。在Linux上,查看'/ usr/share/xml'和'/ usr/share/sgml'。 –

1

我通過W3C validator運行這些代碼兩個街區。將代碼複製並粘貼到「通過直接輸入驗證」選項卡下的輸入中,以查看自己的結果。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <head> 
    <title>title</title> 
    <meta http-equiv="content-type" content="text/html;charset=UTF-8" > 
    </head> 
    <body><div id="Mydiv" /></body> 
</html> 

具有過渡HTML 4.01的Doctype的代碼塊未通過驗證過程。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en"> 
    <head> 
    <title>Test</title> 
    <meta http-equiv="content-type" content="text/html;charset=UTF-8" /> 
    </head> 
    <body><div id="Mydiv" /></body> 
</html> 

當我加入了XHTML 1.0過渡的doctype,改變了元標記自關閉標籤,並在HTML的xmlns行補充說,通過驗證。

所以要回答你的問題的前半部分,它是在XHTML 1.0 Transitional文檔類型下的有效HTML。無論您是否可以使用javascript來正確填充它,我都不確定。

相關問題