HTML5中的结束标记
在HTML5中,用HTML5中的结束标记,html,Html,在HTML5中,用关闭标记是否仍然合适 这显然也适用于所有其他单个标记。我意识到这实际上并不影响东西的工作方式,但这里的最佳实践是什么 txt的某些行//你是如何看到很多人这么做的 然后是一些//XHTML样式!我还应该这样做吗? 哦,我还没做完//没有人做得对吗?正确的?! 在HTML5中,/是有效且被忽略的,其中br就是其中之一,因此这完全取决于您,尽管就个人而言,我会改掉这个习惯,因为这是一件遗留的事情。(事实上它是一个void元素,正如您所说;是毫无意义的)我认为最好遵守XHTML标准,
关闭
标记是否仍然合适
这显然也适用于所有其他单个标记。我意识到这实际上并不影响东西的工作方式,但这里的最佳实践是什么
txt的某些行
//你是如何看到很多人这么做的
然后是一些
//XHTML样式!我还应该这样做吗?
哦,我还没做完
//没有人做得对吗?正确的?!
在HTML5中,/
是有效且被忽略的,其中br
就是其中之一,因此这完全取决于您,尽管就个人而言,我会改掉这个习惯,因为这是一件遗留的事情。(事实上它是一个void元素,正如您所说;
是毫无意义的)我认为最好遵守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
如果您是为HTML5编码的,那么客户端/浏览器应该支持严格的标准。更重要的是,您要保持一致性,如果您使用
,那么解析器将为您处理无效或自动关闭的标记
决定一种方法并坚持下去,我们决定使用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>
这样我们就不必使用冗余语法(我认为):
仅仅因为html5让我们省去了结束标记,即使是
标记,它也不正确
我希望您决定使用xhtml“sytle”语法,以保持自己的理智 来自:
- 以下是HTML中void元素的完整列表:
区域
,基础
,br
,col
,命令
,嵌入
,人力资源
,img
,输入
,链接
,元
,参数
,源代码>,跟踪
,wbr
- Void元素只有一个开始标记;不得为空心图元指定结束标记
- 开始标记由以下部分组成,顺序如下:
- A
字符
由此看来,我们可以使用
或
。但是,结束标记
无效,因此不要使用
在中运行以下命令也表明了这一点
<!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>
测试孔隙元素
txt的某些行
然后是更多的
我还没做完
因此,请使用
或
,只要确保一致地使用它们即可
编辑:正如Brad所指出的,
也是有效的XHTML,因此最好选择这种形式。这会告诉你什么?在
和
之间其实并不重要,也就是说,在
中,你发送了一个被浏览器忽略的额外字符。那么,为什么还要使用带宽呢?这一切都说明了问题。@Greg不是真的,请看我在接受答案下面的评论。至于带宽,请使用gzip内容,如果您能看到差异,请尝试。或者你是不是碰巧在谷歌或亚马逊工作,在那里单比特的差异实际上很重要?@Brad-W3C验证程序还没有为HTML5做好准备。在验证直接输入时,选项Validate HTML fragment只有以下两个选项:HTML4.01、XHTML1.0。这可能是件好事根据您链接到的规范:“Void元素只有一个开始标记;不能为Void元素指定结束标记”,因此我猜答案是使用
或
是无效的HTML。如果使用XHTML 1.0 Transitional
它将验证
。正确的说法是,在使用XHTML 1.0过渡doctype时,不使用HTML验证仍然会使用W3验证程序抛出错误。我收到消息“您可能忽略了关闭一个元素,或者您可能是想“自行关闭”一个元素,也就是说,以“/>”而不是“>”结束。我在这里遗漏了什么吗?好的,我在
和
之间有一个空格,无法验证。也许您应该编辑您的答案以删除本例中的空格。我根据建议删除了答案中的空格,只是好奇为什么有效的XML会是一种优势?我应该说有效的XHTML。有些人喜欢特别严格。我已将答案更新为XTML,而不是XML。@Greg,因为这样您就可以使用更严格的解析器来告诉您的标记是否有效。我无法计算由于错误的嵌套或类似的事情(XML验证器会告诉我),我被有效但逻辑上错误的HTML标记咬了多少次。我在HTML5中的最后一个项目使用HTML而不是XHTML,这将是我的最后一个项目。该死的
<video id=“vid1” controls="controls">
<!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>