8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

在 HTML5 中关闭空元素时还需要正斜杠吗?

Abhijit Mondal Abhi 2月前

99 0

在 HTML5 中,我们是否仍然需要像 XHTML 那样的结束斜杠?如果我删除了 validator.w3.org,它不会抱怨,甚至不会发出警告。但有些在线文档...

在 HTML5 中,我们是否仍然需要像 XHTML 那样的结束斜杠?

<img src="some_image.png" />

如果我删除了它,validator.w3.org 不会抱怨,甚至不会发出警告。但一些在线文档似乎表明,img、link、meta、br 等标签仍需要末尾斜线。

帖子版权声明 1、本帖标题:在 HTML5 中关闭空元素时还需要正斜杠吗?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Abhijit Mondal Abhi在本站《html》版块原创发布, 转载请注明出处!
最新回复 (0)
  • @Gabe XHTML 1.0 Strict 需要它。我的意思是,网页通常可以正常加载,但它被视为无效。

  • 是的,但是 X 的存在不仅仅是因为 X 很酷,HTML 和 XHTML 之间存在很大差距。

  • img 标签是空元素,因此它们不需要结束标签。

    无效元素区域、基础、br、col、命令、嵌入、hr、img、输入、keygen、链接、元、参数、源、轨道、wbr

    ...

    空元素仅有一个开始标记;不能为空元素指定结束标记。

    W3C | WHATWG

    话虽如此,它并不是 HTML5 中的严格解析,因此不会造成任何重大损害。

  • 只是好奇,因为如果我输入“”并按回车键,我的编辑器 (Komodo) 就会缩进。它在 HTML5 模式下需要尾部斜杠,我想确保这是正确的行为。

  • 这是 HTML,不是 XHTML,所以不是必需的。幸运的是,解析器仍然可以很好地理解 XHTML 样式的结尾斜杠,因此将其保留在那里也没什么坏处。这意味着如果出于任何原因需要,可以更轻松地向后转换为 XHTML。

  • 虽然问题是关于结束斜线(例如
    )。

  • @FreeRadical 是正确的。这个答案在技术上是不正确的,因为它混淆了结束斜杠和结束标记,从而误解了它引用的规范段落。这导致了 @YannisDran 的困惑。@minitech 正确地陈述了什么是真实的。

  • 对于空元素, 结束斜杠是 可选的 img (我添加这个是因为当前接受的答案只说:\'不能为空元素指定结束标记\',并且没有解决空元素中的结束斜杠)。

    引用自 http://www.w3.org/TR/html5/syntax.html#start-tags (第 6 条):

    然后,如果该元素是空元素之一,或者如果该元素是外来元素,则可能有一个 \'/\' (U+002F) 字符。此字符对空元素没有影响,但对外来元素,它将开始标记标记为自闭合。

  • 这不是 HTML5 的问题。实际上,在早期版本的 HTML
    存在错误。

  • @jj 我引用了 HTML5 文档,所以我不明白为什么不认为它不是 HTML5。事实上,在其他版本中,这样的斜线是错误的。

  • 引用 12

    当然,我的意思是“HTML5 中是否仍需要结尾斜杠”这个问题问错了。也许有一天我会写一个完整的答案,并附上一些历史链接。如果我没记错的话,Ian Hickson(HTML 编辑器)决定在 HTML5 中允许使用结尾斜杠是一个艰难的决定。

  • sl1p 2月前 0 只看Ta
    引用 13

    空元素的结束斜杠是可选的。

    两者都是有效的 HTML5:

    <img src="some_image.png" />
    

    <img src="some_image.png">
    

    虚空元素包括:

    • area
    • base
    • br
    • col
    • embed
    • hr
    • img
    • input
    • link
    • meta
    • param
    • source
    • track
    • wbr

    除了有趣之外:

    空元素不能包含任何内容(因为没有结束标记,所以在开始标记和结束标记之间不能放置任何内容)。

    更多详细信息请访问: https://html.spec.whatwg.org/multipage/syntax.html#elements-2


    另请参阅此处的 SO 问题:
    HTML5 中的自闭合标签(空元素)

  • 谢谢,我制作了一个正则表达式来删除或添加结束斜杠;查找:<(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)([^>]*?)\s*?/?>;替换:<$1$2 /> 如果你是一个解析器,结束斜杠会更好,因为你会知道它是一个自闭合标签,而不是一个打开标签(你不会看:结束标签在哪里?)

  • CKM 2月前 0 只看Ta
    引用 15

    HTML 4.01 Transitional 中的尾部斜杠与 HTML 5 中的相同

  • 不是。HTML 从未要求过它,即使在 HTML5 之前也是如此。如果您打算将 XHTML 与 HTML 功能结合使用,那么它是必需的。

  • slow 2月前 0 只看Ta
    引用 17

    XHTML 与 HTML5 不同,对吗?如果我的 DOCTYPE 只是 \'html\',则不需要尾部斜杠,对吗?

  • @CaptSaltyJack - HTML5 涵盖普通 HTML 和 XHTML。XHTML 要求所有元素都关闭,但对于浏览器来说,文档类型对这种情况没有影响。有关更详细的解释,请参阅 .com/questions/2662508/…

  • 根据 开始标签, 它们是可选的。

返回
作者最近主题: