我应该用/>附上标签吗?或不在HTML5中?

时间:2011-11-16 08:50:36

标签: html5

首先,我查看了html5rocks.com来源。看起来像受信任的网站他们在那里关闭标签。

 <link rel="shortcut icon" href="/favicon.ico" />

然后我看了HTML5demos,但他们没有

 <link rel="stylesheet" href="css/html5demos.css">

5 个答案:

答案 0 :(得分:8)

完全是可选的。但是,如果您想要使用XML解析器处理HTML5文件,那么我倾向于包含它们。

答案 1 :(得分:5)

您所指的内容在HTML5规范中称为 Void Elements ,根据规范,可能具有/字符或不,就在他们关闭>字符之前。

请参阅HTML5 Specification中的8.1.2.1 Start tags6项,其中包含:

  

然后,如果元素是void元素之一,或者元素是外来元素,则可能存在单个U + 002F SOLIDUS字符(/)。此字符对void元素没有影响,但在外部元素上,它将开始标记标记为自动关闭。

答案 2 :(得分:3)

在HTML5中是可选的。您决定是否使用它。

我个人觉得包含/更具可读性。

答案 3 :(得分:1)

即使它是可选的,我也不愿意使用/,它使我的意见中的代码更具可读性。否则,我必须继续阅读以确定是否有实际标签的结束标签。

答案 4 :(得分:1)

HTML5中的

Void Elements可以使用/>>关闭。 Foreign Elements(即,MathML名称空间和SVG名称空间中的元素)可以自动关闭,执行要求使用/>完成开始标记。< / p>

由于HTML5规范没有提供更好的指导方式,因此在决定使用\>>关闭虚空元素时,我们必须考虑其他方面。以下是我在为项目做出此决定时需要考虑的以下几个方面:

  1. 可维护性

    我个人觉得发现错误更容易,特别是标记配对错误,并且如果它使用/>标签关闭Void Elements,通常会理解该文件。当还有外来元素时更是如此,因为那些必须使用/>标签关闭。

    我还发现许多语法突出显示规则集不是100%符合HTML5标准,并且可能会被而不是混淆使用/>标签关闭与没有单独的元素结束标签。当然,这取决于编辑器,并且许多IDE具有更强大的语法突出显示其他更简单的编辑器,因此您的体验可能会有所不同,但如果可维护性和易编辑性很重要,这是一个经常被忽视的因素。

  2. 页面尺寸

    如果您有大量的Void Elements,并且页面性能对您的应用程序至关重要,删除不需要的字符将有助于减少页面的有效负载大小。这意味着您的响应可以在较少数量的数据包中发送,这意味着所需的round-trips更少,这样可以提高整体响应速度。

    然而,对于99%的应用程序,许多其他事情需要花费您的时间和精力进行优化,这会对页面加载时间产生更大的影响,而不是删除无关的{{1来自Void Elements的字符。

  3. 机器可读性

    与语法突出显示规则不同的灵活性一样,您可能会发现您可能希望用来处理HTML页面的HTML和/或XML处理库也是如此。您可能会发现处理库可以更好地支持更接近XML的语法,如果您希望其他开发人员处理您的HTML,那么拥有最广泛支持的语法将允许他们使用更多的工具。

  4. <强>结论
    如果在一天结束时,您确定仍然需要减少页面大小,则可以通过删除额外的/个字符来获取,我认为最佳路由是将所有HTML通过一个过滤器,可以解析HTML并自动删除HTML5规范允许的字符。这样做的好处是牺牲了可维护性,同时仍然可以减少页面大小。如果您知道该请求旨在由其他代码解析,您甚至可以选择通过此过滤器传递输出,这样您就可以保持机器的可读性方面。

    缺点是您的管道中有一个额外的处理步骤,这增加了复杂性,可能会或可能不会抵消您获得的任何页面加载速度增益。

    最终,您应该测量页面的速度和有效负载大小,并将这些测量结果与您希望优先考虑上述方面的方式相结合,并为您的特定项目进行调用。没有一个尺寸适合所有答案,但正确的选择可能某种中间立场。