我试过检查其他答案,但我还是很困惑——尤其是在看到W3Schools的HTML5参考之后。
我认为HTML4.01应该"允许"单个标签只有和。然后,XHTML与和
一起出现(有人说这是为老浏览器提供的空间)。
现在我想知道在练习HTML5时应该如何格式化代码。
是、
还是
?
简单的就足够了。
其他的表单是为了与XHTML兼容;为了使编写与XHTML相同的代码成为可能,并且使它也可以作为HTML工作。一些生成HTML的系统可能基于XML生成器,因此不能只输出一个空的标记;如果您使用这样的系统,使用
是可以的,如果您不需要这样做,就不需要这样做。
然而,很少有人真正使用XHTML。您需要将您的内容作为application/xhtml+xml服务,以便将其解释为xhtml,而这在旧版本的IE中不起作用-这还意味着您所犯的任何小错误都将阻止页面在支持xhtml的浏览器中显示。因此,在Web上看起来像XHTML的大多数内容实际上都是以HTML的形式提供和解释的。有关更多信息,请参阅将XHTML作为被认为有害的文本/HTML提供服务。
- 但是,拥有一个有效的XML并不意味着服务于XHTML。它可能对各种局部预处理有用。
- 是的,但是您必须非常小心地将HTML作为XML处理。它们是不同的语言,并且每个语言中只有一个子集是兼容的。例如,在XML中,
与</br>相同,但后者不是有效的HTML。
- 布莱恩,你的想法是让你的HTML成为格式良好的XML,就是这样。当然,当把一个转换成另一个时,你必须确保它仍然有效,但是值得一提吗?:)
- 哦,当然。能够使用也是格式良好的XML的文档是很有用的;我不否认这一点。但这是不必要的,您需要付出更多的努力,而不仅仅是自我关闭标签,使其有效,并在XHTML和HTML中有相同的解释。
- 我也不否认这是不必要的;-)是的,还有更多的努力,但这些都超出了现在的叙述范围;-)
- XHTML对于创建"干净"的HTML(正确嵌套的元素、区分大小写、更严格的语法等)仍然很有用。关于它"有害"的抱怨在IMO中被严重夸大了,并且,与"有害"的建议相反,我会在任何一天使用XHTML来处理未完成的HTML5规范(好吧,直到最终确定并支持HTML5规范为止)。
- +1对于一个很好的答案,imho,xhtml只对让编码人员疯狂地寻找在伟大而快速的javascript文档周围的性能低效的方法有用。write和innerhtml函数在xhtml中不能再使用了。
- @查尔斯·博扬:你可以解释你的观点,而不是那么粗鲁。此外,我说:"imho"。我讨厌XHTML文档中的所有这些愚蠢行为!我真的很抱歉,HTML5将取代XHTML成为下一种网络语言,但您仍然可以享受使用XHTML的乐趣,继续在每个XHTML上增加2个字符,只是为了使您的网络文件更大。
- @Marco我认为document.write与实际的(x)HTML相比不是非常快(因为它必须被执行)。在任何情况下,javascript不一定在所有的计算机上都可用,因此过度依赖它们的网站并不是很灵活。另外,HTML没有函数。
- @偏转:我没有说document.write比XHTML快,我不知道也从未想过要比较它们的性能。我只想继续使用document.write和简单的,根据我对xhmtl的理解,我不能这样做。除了使用document.write的站点不能称为过度依赖JS的站点之外,在当今的webapp中,使用JS进行思考就像使用不带引擎的汽车一样。
- @马可:嗯,我不知道document.write不工作在XHTML -谢谢分享。我同意它是一愚蠢的webapps要做什么没有JavaScript,但我想说的是几乎100%依赖网站上的JavaScript保持更脆和CAN故障当用户禁用JavaScript(或手机或使用的是旧的东西)
- 请举您的源为'几人是使用XHTML的网页设计师和程序员:每一单conforms我专门到XHTML。
- "knickerless - noggins Take a外观:在WWW。很多使用XHTML的网页使用的HTML网页,很多(4)。但最近,在没有使用HTML5的网页一个XHTML的风味。海事组织,因为HTML5是XHTML给风味的"不在乎"。它更容易和不这样做的HTML的方式打字和想安静的外观相同。但真的,为什么你甚至照顾?它一物(偏好今天,没有什么更多的。我作为一个Web Developer可以读取两个。你应该可以,太。没有问题的W / E。
- "我不知道马可之前为什么你的论点是定向在我,因为我做的都是只读的。此外,我已经使用HTML5的,但它并不意味着什么,它都使用。我完全没有使用现代的Visual Studio是没有自动替换与
。每个人都是一个困难和这是为什么他们是粘到他们的专业。
- "knickerless - noggins是定向在你因为你说,每个人都知道使用XHTML。侧注:I i a vs2013 NetBeans不喜欢自己的极限。铌不做什么只是在它自己的方式,它应该是一个很好的编辑:)
- "knickerless - noggins我指定我的答案,在一阶的理解为XHTML页面的浏览器,你必须把它Content-Type: application/xhtml+xml。这是不工作在IE 8和前(这是最新的IE浏览器,当我回答了这5年前),所以没有人会是这样的网站不工作在IE中。这意味着,他们知道他们是使用XHTML页面;写作是使用XHTML的交集)与HTML和HTML,有人理解为,所有的实际purp他们决定其使用的是HTML。
- 这是旧的"count of IE版本出现在IE的"xhtml+xml不会工作?
- "sawtaytoes和早期的IE 8,根据caniuse.com
- 当定位在inserting HTML标签的字符串,它是最好使用
。但如果你的定位是在只读存储在XML格式的文件,在我的流况,Tb的。
- 这是一个有趣的文章"有害的"。作者说它"主,然而,它似乎是经常被视为"不良"的散文,作者用GET,因为想不出更好的方式来表达自己的观点。这是一个悲伤的评论对这两个问题的一些辩论和最经常的水平目前在我们的社会。"他说的是他有写作论文,被认为是和XD
我认为HTML5参考草案中的这句话提供了答案:
Some elements, however, are forbidden
from containing any content at all.
These are known as void elements. In
HTML, the above syntax cannot be used
for void elements. For such elements,
the end tag must be omitted because
the element is automatically closed by
the parser. Such elements include,
among others, br, hr, link and meta
HTML Example:
1
| <link type="text/css" rel="stylesheet" href="style.css"> |
In XHTML, the XML syntactic
requirements dictate that this must be
made explicit using either an explicit
end tag, as above, or the empty
element syntax. This is achieved by
inserting a slash at the end of the
start tag immediately before the right
angle bracket.
Example:
1
| <link type="text/css" href="style.css"/> |
Authors may optionally choose to use
this same syntax for void elements in
the HTML syntax as well. Some authors
also choose to include whitespace
before the slash, however this is not
necessary. (Using whitespace in that
fashion is a convention inherited from
the compatibility guidelines in XHTML
1.0, Appendix C.)
- 因此,答案是没有编码的完整的湿地和湿地的空间,但有(有或没有空间)是可选的?
- eikem:是的,没错。
- 我爱的方式,不是特别的规范性(在这个点)"的MEH-PPV,做你想要的!"
- 因为它是可选的,因为我喜欢它更多的/>readability是好的。
- 我喜欢我的原因没有明确的关闭标签和其他比它感觉正确理解当我读/写代码。我很高兴的是,HTML5参考选秀与我同意。
- 似乎对我相当的特异性。和
是HTML5是合法的。
- w3schools.com /标签/天_ br.asp AS AS可以是清晰明确的。
- "-"knickerless noggins HTML和XHTML之间的差异:在HTML中,天有没有结束的一天。"这不是一个很差的。这是为两个。
- 真的没有那么复杂:单斜杠字符结束后的一天是在适当的XML语法。如果你想把你的HTML或XML,如当使用XML工具,包括一个斜线。如果你真的在乎strictness XML,湿地是可选的。
- 这是唯一提出"它做什么"的答案,我认为这是正确的思考方式。是树上的一个叶节点,它通过分析器进入渲染器。HTML规范用于将这些内容转换为图形呈现。因此,它只需要知道"足够"就可以创建一条分界线。直到断线不仅仅表示一个无限小的点进入下一行,它真的没有关系,因为事实上它是一片叶子不会有歧义。我们过于关注规范,忘记了作为编码人员"它做什么"。
XML不允许打开标记,因此它使比其他两个稍差。另外两个大致相当于第二个(
),因为它与旧浏览器兼容。实际上,为了兼容性,最好使用/之前的空间,但我认为它只对具有属性的标记有意义。所以我想说要么是
要么是
,无论哪个符合你的审美观。
综上所述:这三个都是有效的,第一个()的"可移植性"要小一些。
编辑:既然我们都对规格很着迷,我认为值得指出的是,根据dev.w3.org:
Start tags consist of the following
parts, in exactly the following order:
A"<" character.
The element’s tag name.
Optionally, one or more attributes, each of which must be
preceded by one or more space
characters.
Optionally, one or more space characters.
Optionally, a"/" character, which may be present only if the
element is a void element.
A">" character.
- HTML实际上不是XML,只是非常接近它。
- 是的,不是。但在这里,/是一个共同的分母。HTML5特别允许使用/:"可选,一个"/"字符,只有当元素是一个空元素时才可能出现"。
- HTML是一种实际的标记语言,但XML不是。您可以使用XML来创建诸如RSS之类的语言。我说的对吗?P
- 您的意思是XML规范与HTML规范类似?
- HelloWorld,我认为HTML5规范接近于XML一致性。
- 我只想在XML和HTML中添加这个,ML代表标记语言。它们之间有如此多的重叠之处,是因为它们最初都是使用SGML(标准化的通用标记语言)定义的,但现在很少有人记得……
- 我真的很喜欢这个答案(还有
)。假设您必须编写一个regex或在HTML文档中进行搜索,那么如果所有标记都正确打开和关闭,您的生活就会轻松得多。
- @bennyneugebauer,如果您使用regex解析HTML,那么您或多或少要依赖运气而不是正确关闭的标记;-)
- @如果您选择这样做,那么HTML5绝对可以严格符合XML。请参阅HTML5常见问题解答。
在HTML(最多HTML 4)中:使用。
在HTML 5中:最好使用,但
和
也是可以接受的。
在xhtml中,最好使用
。也可以使用
或。
笔记:
- 在HTML5中无效,它被认为是两个换行符。
- XHTML区分大小写,HTML不区分大小写。
- 为了向后兼容,一些旧的浏览器会将XHTML解析为HTML,并在
上失败,而不是在
上失败。
参考文献:
- http://www.w3schools.com/tags/tag_br.asp
- 网址:http://en.wikipedia.org/wiki/xhtml
- 检查了链接,首选方法是,但它在哪里说
是不可接受的?
- 为了澄清,对于XML兼容语法,
和
(带空格)是相等的,两者都不优先。请参阅XML 1.0规范的空白(空格、制表符或换行符),在/>是可选的之前,不进行任何选择。
- 你能引用一个非XML语法的引用吗?这对我来说是个新闻。我记得,对严格的XML一致性的可选支持是HTML5的一个创始目标。也许我在whatwg.org的html和xhtml文档中遗漏了一些东西,或者w3c polyglot标记:w3c的HTML5词汇表的一个健壮概要。
- @巴兹堡,我在别处对你说的话再重复一遍。阅读HTML5中关于标签和元素的实际规范,您将永远不会找到要求或建议对这些标签使用结束斜杠的任何建议或建议。如果您想使用XML或XHTML,那么就不需要使用HTML,这是另一回事。不要对这些HTML标记使用右斜杠。在其他地方,规范说你可以把它放在那里,但它意味着什么也没有,什么也不做,浏览器被指示忽略它。所以它是毫无意义的,毫无用处的,把它当作毫无意义的和无用的。
- @Rob SO第8.1.2.1节。开始第8节的标记。W3C于2017年12月14日发布的HTML 5.2 W3C建议文件的HTML语法不是HTML的实际规范吗?请告知。
- @巴兹尔布尔克和大多数人一样,没有按照我指示的那样查看这些标签的确切规格,相反,您只是草率地提出例外,使它们成为规则,忽略了我之前所说的,也忽略了链接中斜线无效的部分。15年来,我向人们指出了这一点,甚至让W3C和Whatwg的编辑和作者,如马丁·福勒和伊恩·希克西支持我,但这始终是一场未知原因的艰苦战斗。
根据规范,HTML 5的预期表单是,但允许使用右斜杠。
XML要求所有标记都有相应的结束标记。因此,对于没有内部内容的标签,有一种特殊的简短语法。
HTML5不是XML,因此不应该提出这样的要求。HTML 4.01也不是。
例如,在HTML5规范中,所有使用br标记的示例都使用语法,而不是
语法。
实际上,HTML5中允许使用
。9 1.2.1,7。
- "HTML5不是XML,所以不应该提出这样的要求。"这是否正确取决于"HTML5"这个词的解释。如果我们说HTML5是一种语言,那么这种说法是正确的。但是,如果我们将HTML5作为规范来谈论,那么该语句是不正确的。HTML5规范定义了"HTML和XHTML的词汇表和相关的API"。我知道这有点吹毛求疵,我不是说这个答案是错误的,只是给读者提供了额外的信息。
我建议使用
,原因如下:
1)突出显示不同颜色XML语法的文本和XML编辑器将通过
正确突出显示,但如果使用
2)
与XHTML向后兼容,格式良好的HTML(即:XHTML)通常更容易验证错误和调试。
3)一些旧的解析器和一些编码规范需要在结束斜杠之前留出空间(即:
而不是
),例如WordPress插件编码规范:http://make.wordpress.org/core/handbook/coding-standards/html/
根据我的经验,我从来没有遇到过使用
有问题的情况,但是,在许多情况下
或者特别是在旧的浏览器和工具中可能有问题。
- 格式良好的HTML不是XHTML。
- 根据定义,XHTML是格式良好的HTML。XHTML遵循XML的规则,根据W3Schools的说法,"XML是一种标记语言,文档必须正确标记(格式良好)"……结合HTML和XML的优点,开发了XHTML。xhtml被重新设计为xml。"(参见w3schools.com/html/html_xhtml.asp)
- HTML可以是格式良好的,但不是有效的XML。W3学校并不总是最权威的参考。
- 我在1997年参加的大学计算机科学课程"网络编程"的教授也声称XHTML是格式良好的HTML。我不知道你从哪里得到信息,你能在网上引用任何官方消息来支持你的索赔吗?
- 并且是完全有效和格式良好的HTML。它们不是有效的XML标记。HTML语法下的HTML规范指出,void元素(like or)可能在最后的>前面有一个/字符。但它没有效果。如果存在,则忽略它。如果/是首选的语法,标准中会说should而不是may。
- @jmarkmurphy,我认为您可能不熟悉术语"格式良好"这一技术术语,它指的是XML和XHTML标准的要求,即所有标记都必须有结束标记,并且必须按正确的顺序嵌套。并且不满足XML和XHTML的要求,因为它们没有结束标记,例如:
或are valid,is not valid XHTML or XML.当然,HTML没有格式良好的要求,因此仅在HTML中有效。
如果你对可比性(不是兼容性,而是可比性)感兴趣,那么我会坚持使用
。
否则,就可以了。
- @Mindstaker写的是可比性,不兼容。
- 有人应该把这个滚回去。意思变了。
- 可比性是什么意思?我不明白。
在HTML5中,和
都是可以接受的,但是本着HTML的精神,应该使用。HTML5允许关闭斜杠,以便与以前的HTML 4.01和XHTML 1.0文档更兼容,从而更容易迁移到HTML5。当然,
也是可以接受的,但是为了与一些旧的浏览器兼容,在结束斜杠(/之前应该有一个空格。
- @我不知道你在哪里读到的,但是
是完全可以接受的,w3schools不是HTML的规范。参见HTML5规范,其中明确规定"那么,如果元素是一个空元素,或者元素是一个外来元素,那么可能只有一个"/"(U+002F)字符。[添加了强调]"
- 与其他答案一样,这个答案错误地低估了HTML5中严格的XML一致性的合法性。对XML的支持不是临时的转换或迁移功能。可选的XML一致性支持是HTML5的一个创始目标。对于使用XML工具处理HTML内容的人来说,这是一个非常重要的特性。
如果您在常规网站上输出HTML,则可以使用或
,两者在您以文本/HTML形式提供HTML5时都有效。
如果您将HTML5作为XHTML(即Content-Type-Application/XHTML+XML,带有XML声明)提供服务,那么您必须使用这样的自结束标记:
。
如果不这样做,有些浏览器可能会完全拒绝呈现您的页面(尤其是火狐非常严格地只呈现有效的XHTML+XML页面)。
如1所述。
也适用于HTML5,该HTML5碰巧生成为XML,但作为没有XML声明的常规文本/HTML使用(例如,从生成网页的XSL转换或类似的东西)。
为了消除混乱:HTML5中不需要在斜线前放一个空格,也不会对页面的呈现方式产生任何影响(如果有人可以引用一个例子,我会收回这个例子,但我不相信这是真的-但IE当然会对所有形式的标记做很多其他奇怪的事情)。
http://validator.w3.org上的优秀验证器对于检查什么是有效的非常有用(尽管我不确定您是否也可以依赖它来检查内容类型)。
- 等等,text/html mimetype是严格的xml?
- 如果使用文本/HTML,则不应将其与XML声明一起提供,但内容可以是有效的XML(例如,从输出XML的对象(如XSLT输出或序列化为XML的对象)生成)。
- 仍然不理解:如果文本/html应该有一个
,什么时候应该使用未关闭的?
- 哦,对不起,如果是通过文本/HTML的话,这两种语言在技术上对HTML5都有效。您可以通过validator.w3.org上的(主要是)很棒的验证器来确认这一点。我上面的措词很差,我现在看到了,就要编辑了。
- 我想是网景导航3或4不喜欢
,当然在这个时代没什么好担心的。
和
都可以,但我更喜欢
,因为它更符合逻辑。只要有一个开始标记,就期望有一个结束标记是合乎逻辑的。因此,如果在没有结束标记的情况下不使用开始标记,代码就更容易阅读。
所有浏览器(可能是一些非常老的不重要的浏览器除外)将显示完全相同的内容。但是,不是xhtml的兼容。
和
的呈现方式不同。有些浏览器将
解释为并插入两个换行符。
- 什么?你知道哪些浏览器吗?
- 在测试IE5/NS4时代的浏览器时发现了这一点。如果我没记错的话,就是在标准遵从模式下。但那是很久以前的事了…
- 对于严格的HTML4浏览器(实际上只是HTML4验证器),
表示>。
是足够的,但在xhtml中,根据whatwg和w3c,
是首选的。
引用HTML 5.2 W3C建议第8.1.2.1节,2017年12月14日
Start tags must have the following format:
…
After the attributes, or after the tag name if there are no attributes, there may be one or more space characters. (Some attributes are required to be followed by a space. See §8.1.2.3 Attributes below.)
Then, if the element is one of the void elements, or if the element is a foreign element, then there may be a single U+002F SOLIDUS character (/). This character has no effect on void elements, but on foreign elements it marks the start tag as self-closing.
如果您使用Dreamweaver CS6,那么它将自动完成为
。
要在W3C上验证HTML文件,请参阅:http://validator.w3.org/
- 为什么投反对票?--太少太晚了?
- @朱利克斯真的,为什么投反对票?t这是本页上为数不多的正确答案之一。HTML5绝对是符合XML的,可以选择,在XML语法中,单个标记必须用斜杠结束。在规范中用黑白文字写这些简单的事实,怎么能被误解呢?
在验证中,这个问题实际上取决于您试图通过什么!DOCTYPE进行验证。
我个人最喜欢的是4.01 Trans,在这里我只使用
,它清除了验证期间可能出现的警告和错误。
严格是一种复杂得多的野兽,它讨厌以东x1〔24〕,实际上只想要以东x1〔10〕。
在HTML5或代码世界的"松散"中,确实没有正确的答案,因为detects every example you put up在那里是正确的……
最后,我认为所有有关is what validation YOU PREFER或the person that you are working for prefers的事情…随着lackadaisical在HTML5中代码严格性的移动,我们看到一些非常懒惰的编码人员
imho出于以下原因,最好使用常规符号(
)而不是豁免符号()。
一致性
在HTML中,可能有一些SVG和SVG只支持常规符号(例如)。
可砍性
像react和nativescript这样的框架使用XML表示法并非如此。您的标记代码将更容易解析。
清晰
常规符号更容易阅读和理解,即使是深夜。
规格
和
都是有效的HTML标记。
结论
如果使用成熟的文本编辑器,请将其配置为使用常规符号(EMMET称之为XHTML)。例如,在Visual Studio代码中,只需在设置中添加以下行:
1
| "emmet.syntaxProfiles": {"html":"xhtml"} |
- 严格来说,它们都是短符号:分别是HTML短符号和XML短符号。完整的符号是</br>,它在x(ht)ml中有效,但在ht ml中无效。
- HTML5没有引入。它一直是HTML格式的。引入XHTML
- @谢谢你。我已经更新了答案。
- 要正确地了解这方面的历史,您需要深入研究SGML。
在html 和xhtml
中。
我建议你使用
。
在HTML5中,不再需要斜线:、。
- 斜线从未是必需的,也从未在任何HTML规范中指定,甚至从未在规范中用作示例。
- @Rob我不知道您从哪里获得HTML规范,但我从whatwg和w3c组织获得。这两种规范都明确地将严格的XML一致性定义为HTML5的可选特性。这具体包括用/>关闭单个标签。见第8.1.2.1和2节。并且可以在whatwg.org上看到html和xhtml文档,以及w3c polyglot标记:w3c上HTML5词汇表的一个健壮概要。
- @Basilburque请阅读HTML中这些标签的确切规范,不要提出此处不涉及的XML或XHTML。在使用、要求甚至建议使用结束斜杠的互联网历史上,您将永远不会在任何HTML规范中找到任何书面措辞或示例。
- @Rob我所能做的就是重复:W3C发布了一个名为HTML5.2的文档,其中第8.1.2.1节。start tags清楚地表明,带斜线或带斜线的自结束标记是有效的,在第6点中:然后,如果元素是void元素之一,或者如果元素是外部元素,则可能只有一个u+002f solidus字符(/)。此字符对void元素没有影响,但对外部元素,它将开始标记标记标记为自动关闭。我链接的其他文档解释说,如果将HTML5表示为XML,则需要斜杠。
- @巴兹堡,我从没说过它是无效的。我说它没有任何意义,也没有任何目的,就像你,你自己,引用。此外,您还提出了XML作为在HTML中使用它的理由。不要那样做!他们不是一回事!当HTML解析器需要解释XML内容时,我们称之为"标签汤"。
我所知道的是,
以白线表示中断,而在某些情况下只是提供中断。当我设置一个IPN脚本(PHP)并发送邮件并检查收件箱时,我就遇到了这种情况。不知道为什么,但我得到的信息只是使用两个
and 看起来很整洁。
看看这里的邮件:http://snag.gy/clxua.jpg
文本的前两部分由
分隔,因此空白行、底部的最后三行文本和最后一部分由分隔,并给出新行。
工作得很好。XHTML等更严格的版本要求您添加结束语,而不包含DOCTYPE的真正老版本的HTML则使成为非空标记,如。
总结:是好的。其他的也不错。
大多数情况下,在HTML中,标记是成对的。但是对于换行符,您不需要一对标签。因此,为了表明这一点,HTML使用了
格式。
是正确的。使用那个格式。
标记在HTML中没有结束标记在XHTML中,EDOCX1[0]标记必须正确关闭,如:EDOCX1[16]
在XML中,每个标记都必须关闭。XHTML是XML的扩展,因此必须遵循XML的所有规则才能使XHTML有效。因此,甚至像这样的空标记(没有子节点的节点)也应该关闭。XML有一个简短的形式,称为空节点的自动关闭标记。你可以写信给 as
。因此,在XHTML中使用了
。
HTML在这方面非常宽泛,没有这样的规则。因此,在HTML中,像 等空节点是不使用结束正斜杠编写的。
HTML
1 2
| <meta name="keywords" content="">
<link rel="canonical" href="http://www.google.com/"> |
XHTML
1 2 3 4
| <br />
<hr />
<meta name="keywords" content="" />
<link rel="canonical" href="http://www.google.com/" /> |
并非所有的标签都可以自动关闭。例如,xhtml dtd不允许使用像这样的标签。
正如许多其他方面所涵盖的,和
都是可以接受的。
我想权衡的是
的可读性和向后兼容性更好,而不是用向最终用户发送更少的字符。
既然谷歌使用,我也会这样做。
(当然要记住,他们可能会为我提供,因为我使用的是他们知道支持的铬。在IE中,他们可能仍在服务于
嗯……有谁知道一家供应商、用户代理或浏览器制造商100%遵守W3C规范????因此,如果HTML5说它支持所有三个break元素版本,那么您可以打赌供应商支持相同甚至更多的sloppier版本!
在这场争论中唯一重要的是一致地使用代码,在可能的情况下也会遵循XML规范和HTML规范。这意味着您应该使用break标记的正确XML版本,并鼓励您的所有团队都这样做:
同样的空格斜杠格式应该适用于代码中的img、a、hr和meta标记。为什么?因为:
它与旧的XHTML用户代理/浏览器向后兼容
浏览器供应商无论如何都支持XML版本,因此HTML5规范是没有意义的。
今天、过去和将来大多数用户代理的草率实现都将接受它。
如果您需要返回到从标记创建XHTML/XML文档,它允许您的标记与XML标准进行比较。
对于所有Web开发人员来说,继续使用遵循XML的可靠标记实践是"良好的编码实践",包括所有小写的编码、引用的属性、转义的XML字符等。为什么?将来,如果必须切换到XML数据,您将自动编码并以XML进行思考。
我们只能希望,在未来的万维网中,我们不再采用私营供应商实施的标准,转而采用可靠的、经过验证的标记,这种标记能够更快地解析数据,更快地在线路上移动数据,并使我们未来的互联网成为使用XML的更标准化媒介。
此外,在机器人和机器的世界里,机器人没有HTML5为我们解决的相同的人机界面编码问题,它们很乐意回到XML数据系统,在转换为XML数据时,解析此类UI网页的速度更快。
没有结束标记的元素称为空标记。在HTML4和HTML5中,不需要结束标记,可以省略。
在XHTML中,标记是如此严格。这意味着必须以开始标记开始,以结束标记结束。
- 不正确。在HTML5中,单个标记与开始-结束标记对一样有效。参见HTML 5.2规范。
在某些浏览器中,和
呈现方式不同,因此选择其中一种呈现方式不会损害您的项目,但确实需要大量的查找..替换以影响某些浏览器中的页面呈现,这可能会给您自己带来额外的工作,甚至在更改不会影响测试浏览器中的任何内容但会破坏它时会造成尴尬在客户的首选浏览器中。
我更喜欢,因为它是我自erwise和netscape navigator(早期Web浏览器)以来使用的,但没有理由不选择
。它可能对某些预处理、可比性等有用。
即使您的选择归根结底是喜欢一个外观而不是另一个,或者您(或者您最喜欢的HTML编辑器,如Dreamweaver)可能希望您的代码符合XML。这取决于你。
简短的旁注:
不要与br混淆,但除此之外,您还可以考虑在HTML中使用wbr标记:分词机会标记,它指定在文本中可以添加换行符的位置。
如需进一步阅读,请阅读HTML5规范。
- 参见HTML5规范,其中明确规定"那么,如果元素是一个空元素,或者元素是一个外来元素,那么可能只有一个"/"(U+002F)字符。[emphasis added]"当然,是一个空元素,正如您在引用中的链接中看到的那样。