2010-07-08 59 views

回答

11

語法有效一些地方並不意味着相同的XHTML,所以不要使用他們。

在HTML 4 <foo />(其中FOO是定義爲EMPTY的元素的名稱)是指相同<foo>>這意味着相同<foo>&gt;(儘管幾乎沒有瀏覽器正確地支持的語法,使用的Emacs-W3但是打破了與標準的兼容性,轉而正確地呈現所謂的HTML兼容XHTML 1.0文檔)。

這一點,因此,在地方,你可以有一個&gt;如隨地有效你被允許在其他地方的<img>但不是(如<hr>那是<body>的子元素(嚴格))。

與可選開始和結束標籤規則的交互會增加更多複雜性。在過渡性文件,這是有效的:

<link …/> 
<h1>Hello, world</h1> 

,並表示:

<link> 
</head> 
<body> 
&gt; 
<h1>Hello, world</h1> 

這簡寫語法可能是有用的,或至少是節省時間,喜歡的事情:

<title/The quick brown fox/ 

而不是更詳細:

<title>The quick brown fox</title> 

...但是the syntax has never been well supported和規範說應該避免。

+0

你知道Emacs-W3是否支持完整的NET語法? – Alohci 2010-07-08 09:37:49

+0

@Alohci - 不知道,當我把我的XHTML文檔中的所有字符丟棄到2000ish時,我感到震驚(這導致我學習了很多關於NET如何在HTML中工作的內容) – Quentin 2010-07-08 09:41:22

+0

Lynx支持簡寫語法到今天。 – grawity 2013-01-29 17:20:25

2

實際解決......根據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. 
+1

是的,正如Rowland Shaw指出的那樣,**這是可以接受的,但無效**。 – fmark 2010-07-08 08:51:23

+2

@fmark - 你有它倒退,這是有效的(有時),但不能接受。上面引用的驗證器消息是警告,而不是錯誤。 – Quentin 2010-07-08 08:52:20

+0

@DavidDorward - 根據HTML規範,看起來你是對的。我站好了! – fmark 2010-07-08 09:19:43

-1

HTML Compatibility Guidelines

前的一個空格尾隨/>空元素,例如<br />,<hr /><img src="karen.jpg" alt="Karen" />。另外,對空元素使用最小化標記語法,例如, <br />,因爲XML允許的替代語法<br></br>在許多現有的用戶代理中給出了不確定的結果。

+0

使HTML瀏覽器處理XHTML的指導原則與HTML中的有效內容沒有多大關係(因爲它們處理瀏覽器的操作,而不是他們應該做的事) – Quentin 2010-07-08 08:54:46

+0

同意。我的回答更像是對一個相關主題的有趣評論,而不是一個明確的答案。我想我應該在下次做出評論。 – Sjoerd 2010-07-08 09:48:06