在HTML5中,使用<br>
关闭<br />
代码仍然合适吗?
这显然也适用于所有其他单个标签。我意识到这实际上并不会影响工作原理,但这里的最佳做法是什么?
someLines of txt <br> // How you see a lot of people doing it
and then some <br /> // XHTML style! Should I still be doing this?
ow im not done yet.. <br> </br> // No one does this right? RIGHT?!
答案 0 :(得分:34)
以下是HTML中的void元素的完整列表:
area
,base
,br
,col
,command
,embed
,hr
,img
,input
,keygen
,link
,meta
,param
,source
,track
,wbr
Void元素只有一个开始标记;不得为void元素指定结束标记。
开始标记由以下部分组成,完全按以下顺序排列:
<
字符。/
字符,仅当元素为void元素时才可以出现。>
字符。从这看起来我们可以使用<br>
或<br/>
。但是,结束标记</br>
不有效,因此请勿使用<br> </br>
。
通过HTML Validation Service运行以下内容表明了这一点。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Testing void elements</title>
</head>
<body>
some lines of txt <br>
and then some more <br />
I'm not done yet... <br> </br> <!-- This line generates an error -->
</body>
</html>
因此请使用<br>
或<br/>
,只需确保始终如一地使用它们。
修改:正如Brad所说,<br />
也是有效的XHTML,所以也许最好选择此表单。
答案 1 :(得分:5)
恕我直言我认为最好遵守XHTML标准,甚至关闭@Alex所指出的所谓void
元素。如果您的代码也是有效的XML,那么您可以找到更好的工具支持来管理您的代码
<br> // not valid XML without a closing tag
<br /> // valid XML and I prefer this
<br></br> // valid XML but unnecessary clutter
在任何情况下,如果您应该通过HTML Validation Service运行代码。只要它是有效的,那么你只会处理编码风格,每个人都会对这个问题有个人倾向。
<强> [编辑] 强>
为了澄清我的回答,我建议使用这些XHTML
标题中的任何一个......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
如果您正在为HTML5编码,那么客户端/浏览器应该支持严格的标准
答案 2 :(得分:2)
更为重要的是,如果你使用<!DOCTYPE html>
那么无效或自我关闭的标签就像你说的那样,解析器会为你处理。
确定一种方法并坚持下去,我们决定采用xhtml风格的语法,但我们并没有实际使用xhtml。即使解析器比其他需要能够理解你的标记的人更宽容,所以如果你有一个标准并且每个人都购买了它,那么每个人都在用相同的赞美诗唱歌。
为什么我们需要约定?因为以下所有内容都有效:
<META CHARSET=UTF-8>
<META CHARSET=UTF-8 />
<META CHARSET="UTF-8">
<META CHARSET="UTF-8" />
<meta charset=utf-8>
<meta charset=utf-8 />
<meta charset="utf-8">
<meta charset="utf-8" />
<MeTa CHARset=utF-8>
要考虑的另一件事是html5属性,我们决定在一组属性的末尾使用布尔样式属性,并且总是在其他属性周围使用引号,例如:
<video id=“vid1” data-someting="my_val" controls>
这样我们就不必使用冗余语法(在我看来):
<video id=“vid1” controls="controls">
仅仅因为html5让我们遗漏了结束标记,即使是</p>
标记,它也没有做到正确。
我希望你决定使用xhtml'sytle'语法来实现自己的理智!
答案 3 :(得分:1)
/
有效&amp; html 5中void elements忽略了br
,其中<br> </br>
是一个,所以它完全取决于你,尽管我个人认为这是一种传统的习惯。 (事实上,它是一个虚空元素意味着正如你所说的那样; {{1}}是荒谬的)
答案 4 :(得分:0)
从链接的文章中了解 self-closing tags 后,我了解到 <br>
、<br/>
或 <br />
在 HTML5 中都是有效的。
但是,如果您编写 <br/>
或 <br />
,那么它们最终会被浏览器转换为 HTML5 中的 <br>
。
此外,如果您编写 <br></br>
,它们的浏览器不会生成一些错误,但会将其读取为 2 个 <br>
标签。
someLines of txt <br> // This is completly valid and recommended
and then some <br /> // XHTML style! should be written like this in XHTML but in HTML5 you can just write <br>
ow im not done yet.. <br> </br> // Even if you do this then no error will generate. Instead browser will read it as 2 <br> tags
方法如下:
<p>This is paragraph with <br><br> and <br/><br/> and then <br /><br />.</p>
<p>closing br is wrong way <br></br> but browser read it as 2 br.</p>
它在浏览器中的外观: