why <br /> and not <br/>?
This is one of those things that you read once, say "aha!" and then forget. Exactly my case.
Why is the line-break tag in xhtml preferentially written with a space <br />
and not in the also ok format <br/>
? I remember the reason was interesting, and as you can imagine it's not easy to find with google.
For sure it's not an issue of xml well-formedness. From W3C
[44] EmptyElemTag ::= '<' Name (S Attribute)* S? '/>'
Empty-element tags may be used for any element which has no content, whether
or not it is declared using the keyword EMPTY. For interoperability, the
empty-element tag should be used, and should only be used, for elements which
are declared EMPTY.
Examples of empty elements:
<IMG align="left" src="http://www.w3.org/Icons/WWW/w3c_home" />
<br></br>
<br/>
So the space at the end is optional.
If I recall correctly it's simply because some older browsers had problems with a self-closing tag without a space before the slash. I doubt it's an issue nowadays, but a lot of developers (myself included) got into the habit of including the space.
Edit: Ah, here we are:
http://www.w3.org/TR/xhtml1/#guidelines
Include a space before the trailing / and > of empty elements, eg <br />
, <hr />
and <img src="karen.jpg" alt="Karen" />
. Also, use the minimized tag syntax for empty elements, eg <br />
, as the alternative syntax <br></br>
allowed by XML gives uncertain results in many existing user agents.
w3c specifies this as the grammar:
EmptyElemTag ::= '<' Name (S Attribute)* S? '/>'
That means open bracket, a name, a number of (space and attribute) tokens, an optional space, a slash, and an end tag. According to this, both are correct.
Some older browsers didn't parse the element correctly without the space, so most web developers use <br />
. I don't remember which browsers offhand, but I believe they're just about extinct.
EDIT : The browser was Netscape 4.
链接地址: http://www.djcxy.com/p/2552.html上一篇: 关闭斜线之前的空间?