根據http://www.w3.org/TR/html401/interact/forms.html#h-17.4,輸入元素應該以單個>
而不是/>
結尾。儘管大多數瀏覽器可以處理以/>
結尾的輸入元素,但是根據HTML語法規則,這樣的輸入元素是否有效?換句話說,像<input ... />
和<br />
這樣的元素在有效HTML 4?自閉合輸入標籤在HTML 4中有效嗎?
(這個問題是關於HTML和XHTML不!!!)
根據http://www.w3.org/TR/html401/interact/forms.html#h-17.4,輸入元素應該以單個>
而不是/>
結尾。儘管大多數瀏覽器可以處理以/>
結尾的輸入元素,但是根據HTML語法規則,這樣的輸入元素是否有效?換句話說,像<input ... />
和<br />
這樣的元素在有效HTML 4?自閉合輸入標籤在HTML 4中有效嗎?
(這個問題是關於HTML和XHTML不!!!)
語法有效在一些地方但並不意味着相同的XHTML,所以不要使用他們。
在HTML 4 <foo />
(其中FOO是定義爲EMPTY的元素的名稱)是指相同<foo>>
這意味着相同<foo>>
(儘管幾乎沒有瀏覽器正確地支持的語法,使用的Emacs-W3但是打破了與標準的兼容性,轉而正確地呈現所謂的HTML兼容XHTML 1.0文檔)。
這一點,因此,在地方,你可以有一個>
如隨地有效你被允許在其他地方的<img>
但不是(如<hr>
那是<body>
的子元素(嚴格))。
與可選開始和結束標籤規則的交互會增加更多複雜性。在過渡性文件,這是有效的:
<link …/>
<h1>Hello, world</h1>
,並表示:
<link>
</head>
<body>
>
<h1>Hello, world</h1>
這簡寫語法可能是有用的,或至少是節省時間,喜歡的事情:
<title/The quick brown fox/
而不是更詳細:
<title>The quick brown fox</title>
...但是the syntax has never been well supported和規範說應該避免。
實際解決......根據W3C HTML 4驗證,最好不要使用文字元素名稱的這種風格在HTML 4:
NET-enabling start-tag requires SHORTTAG YES
<br />
The sequence <FOO /> can be interpreted in at least two different ways,
depending on the DOCTYPE of the document. For HTML 4.01 Strict, the '/' terminates
the tag <FOO (with an implied '>'). However, since many browsers don't interpret it
this way, even in the presence of an HTML 4.01 Strict DOCTYPE, it is best to avoid
it completely in pure HTML documents and reserve its use solely for those written in XHTML.
從HTML Compatibility Guidelines:
前的一個空格尾隨/
和>
空元素,例如<br />
,<hr />
和<img src="karen.jpg" alt="Karen" />
。另外,對空元素使用最小化標記語法,例如, <br />
,因爲XML允許的替代語法<br></br>
在許多現有的用戶代理中給出了不確定的結果。
你知道Emacs-W3是否支持完整的NET語法? – Alohci 2010-07-08 09:37:49
@Alohci - 不知道,當我把我的XHTML文檔中的所有字符丟棄到2000ish時,我感到震驚(這導致我學習了很多關於NET如何在HTML中工作的內容) – Quentin 2010-07-08 09:41:22
Lynx支持簡寫語法到今天。 – grawity 2013-01-29 17:20:25