关于html5:
,
, 还是
?

HTML 5: Is it <br>, <br/>, or <br />?

我试过检查其他答案,但我还是很困惑——尤其是在看到W3Schools的HTML5参考之后。

我认为HTML4.01应该"允许"单个标签只有。然后,XHTML与
一起出现(有人说这是为老浏览器提供的空间)。

现在我想知道在练习HTML5时应该如何格式化代码。

1
<!DOCTYPE HTML>


还是


简单的就足够了。

其他的表单是为了与XHTML兼容;为了使编写与XHTML相同的代码成为可能,并且使它也可以作为HTML工作。一些生成HTML的系统可能基于XML生成器,因此不能只输出一个空的标记;如果您使用这样的系统,使用
是可以的,如果您不需要这样做,就不需要这样做。

然而,很少有人真正使用XHTML。您需要将您的内容作为application/xhtml+xml服务,以便将其解释为xhtml,而这在旧版本的IE中不起作用-这还意味着您所犯的任何小错误都将阻止页面在支持xhtml的浏览器中显示。因此,在Web上看起来像XHTML的大多数内容实际上都是以HTML的形式提供和解释的。有关更多信息,请参阅将XHTML作为被认为有害的文本/HTML提供服务。


我认为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.)


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(最多HTML 4)中:使用

    在HTML 5中:最好使用,但

    也是可以接受的。

    在xhtml中,最好使用
    。也可以使用

    笔记:


    • 在HTML5中无效,它被认为是两个换行符。
    • XHTML区分大小写,HTML不区分大小写。
    • 为了向后兼容,一些旧的浏览器会将XHTML解析为HTML,并在
      上失败,而不是在
      上失败。

    参考文献:

    • http://www.w3schools.com/tags/tag_br.asp
    • 网址:http://en.wikipedia.org/wiki/xhtml


    根据规范,HTML 5的预期表单是,但允许使用右斜杠。


    XML要求所有标记都有相应的结束标记。因此,对于没有内部内容的标签,有一种特殊的简短语法。

    HTML5不是XML,因此不应该提出这样的要求。HTML 4.01也不是。

    例如,在HTML5规范中,所有使用br标记的示例都使用语法,而不是
    语法。

    实际上,HTML5中允许使用
    。9 1.2.1,7。


    我建议使用
    ,原因如下:

    1)突出显示不同颜色XML语法的文本和XML编辑器将通过
    正确突出显示,但如果使用

    2)
    与XHTML向后兼容,格式良好的HTML(即:XHTML)通常更容易验证错误和调试。

    3)一些旧的解析器和一些编码规范需要在结束斜杠之前留出空间(即:
    而不是
    ),例如WordPress插件编码规范:http://make.wordpress.org/core/handbook/coding-standards/html/

    根据我的经验,我从来没有遇到过使用
    有问题的情况,但是,在许多情况下
    或者特别是在旧的浏览器和工具中可能有问题。


    如果你对可比性(不是兼容性,而是可比性)感兴趣,那么我会坚持使用

    否则,就可以了。


    在HTML5中,
    都是可以接受的,但是本着HTML的精神,应该使用。HTML5允许关闭斜杠,以便与以前的HTML 4.01和XHTML 1.0文档更兼容,从而更容易迁移到HTML5。当然,
    也是可以接受的,但是为了与一些旧的浏览器兼容,在结束斜杠(/之前应该有一个空格。


  • 如果您在常规网站上输出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上的优秀验证器对于检查什么是有效的非常有用(尽管我不确定您是否也可以依赖它来检查内容类型)。



    都可以,但我更喜欢
    ,因为它更符合逻辑。只要有一个开始标记,就期望有一个结束标记是合乎逻辑的。因此,如果在没有结束标记的情况下不使用开始标记,代码就更容易阅读。

    所有浏览器(可能是一些非常老的不重要的浏览器除外)将显示完全相同的内容。但是,不是xhtml的兼容。



    的呈现方式不同。有些浏览器将
    解释为
    并插入两个换行符。


    是足够的,但在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/


    在验证中,这个问题实际上取决于您试图通过什么!DOCTYPE进行验证。

    我个人最喜欢的是4.01 Trans,在这里我只使用
    ,它清除了验证期间可能出现的警告和错误。

    严格是一种复杂得多的野兽,它讨厌以东x1〔24〕,实际上只想要以东x1〔10〕。

    HTML5或代码世界的"松散"中,确实没有正确的答案,因为detects every example you put up在那里是正确的……

    最后,我认为所有有关is what validation YOU PREFERthe person that you are working for prefers的事情…随着lackadaisicalHTML5中代码严格性的移动,我们看到一些非常懒惰的编码人员


    imho出于以下原因,最好使用常规符号(
    )而不是豁免符号()。

    一致性

    在HTML中,可能有一些SVG和SVG只支持常规符号(例如)。

    可砍性

    像react和nativescript这样的框架使用XML表示法并非如此。您的标记代码将更容易解析。

    清晰

    常规符号更容易阅读和理解,即使是深夜。

    规格


    都是有效的HTML标记。

    结论

    如果使用成熟的文本编辑器,请将其配置为使用常规符号(EMMET称之为XHTML)。例如,在Visual Studio代码中,只需在设置中添加以下行:

    1
    "emmet.syntaxProfiles": {"html":"xhtml"}


    在html 和xhtml
    中。

    我建议你使用


    在HTML5中,不再需要斜线:


    我所知道的是,
    以白线表示中断,而在某些情况下只是提供中断。当我设置一个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不允许使用像