2010-07-08 58 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