【问题标题】:Random Letter html Tag随机字母 html 标签
【发布时间】:2022-01-10 19:01:29
【问题描述】:

我想知道您是否可以使用随机字母作为 html 标记。就像, f 不是标签,但我在一些代码中尝试过它,它就像一个跨度标签一样工作。对不起,如果这是一个不好的问题,我只是好奇了一段时间,我在网上找不到任何东西。

【问题讨论】:

    标签: html tags


    【解决方案1】:

    我想知道您是否可以使用随机字母作为 html 标记。

    是和不是。

    “是”- 它可以工作,但它不是正确:当你有类似<z> 的东西时,它只能工作,因为网络(HTML+ CSS+JS) 具有一定程度的 向前兼容性 内置:浏览器将呈现它们无法识别的 HTML 元素,基本上与 <span> 相同(即 inline 元素无法识别)除了reify 文档的文本范围之外,不要做任何事情。

    但是,to use HTML5 Custom Elements correctly 您需要遵守自定义元素规范,其中规定:

    自定义元素的名称必须包含破折号 (-)。所以<x-tags><my-element><my-awesome-app> 都是有效名称,而<tabs><foo_bar> 则不是。这个要求是为了让 HTML 解析器可以将自定义元素与常规元素区分开来。它还确保了向 HTML 添加新标签时的前向兼容性。

    所以,如果你使用<my-z>,那么你会没事的。


    The HTML Living Standard document, as of 2021-12-04,确实在其自定义元素名称的要求列表中明确引用了前向兼容性:

    https://html.spec.whatwg.org/#valid-custom-element-name

    • 它们以 ASCII 低 alpha 开头,确保 HTML 解析器将它们视为标签而不是文本。
    • 它们不包含任何 ASCII 大写字母,确保用户代理始终可以不区分 ASCII 大小写的方式处理 HTML 元素。
    • 它们包含一个连字符,用于命名空间和确保向前兼容性(因为将来不会向 HTML、SVG 或 MathML 添加带有连字符的本地名称的元素)。
    • 它们始终可以使用 createElement()createElementNS() 创建,它们的限制超出了解析器的限制。
    • 除了这些限制之外,还允许使用多种名称,以便为<math-α><emotion-?> 等用例提供最大的灵活性。

    所以,举个例子:

    • <a>, <q>, <b>, <i>, <u>, <p>, <s>
      • :这些单字母元素已被 HTML 使用。
    • <z>
      • :不包含连字符 - 的元素名称不能是自定义元素,并且将被当今的浏览器解释为无效/无法识别的标记,但它们将(很大程度上)视为相同<span> 元素。
    • <a:z>
      • :除非您使用的是 XHTML5,否则在 HTML5 中使用冒号来使用 XML 元素命名空间不是
    • <-z>
      • - 元素名称必须以从 az 的小写 ASCII 字符开头,因此不允许使用 -
    • <a-z>
      • 是的 - 这很好。
    • <a-><a-->
      • 不确定 - 这两个名字很奇怪:
        • HTML 规范规定名称必须符合语法规则[a-z] (PCENChar)* '-' (PCENChar)*
          • * 表示“零个或多个”,这很奇怪,因为这意味着连字符不需要后跟另一个字符。
          • PCENChar 代表元素名称中允许的大量可见字符,奇怪的是这包括 -,因此根据该规则 <a--> 应该是有效的。
            • 但请注意,-- 是更大的 SGML 系列(包括 HTML 和 XML)中的保留字符序列,可能会导致奇怪。 YMMV!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-20
      • 2014-02-01
      • 2022-06-10
      • 2012-06-24
      • 1970-01-01
      • 1970-01-01
      • 2014-07-31
      相关资源
      最近更新 更多