我应该使用 HTML 中的什么标签,没有特殊含义,只携带元数据?

IT技术 javascript html metadata
2021-02-22 21:00:07

是否有任何无意义的 HTML 标签来携带额外的元数据,例如指定块/区域的 JavaScript 属性?喜欢:

<div class="item">
   <meaninglesselement data-id="123">
   <meaninglesselement data-type="sometype">
   <meaninglesselement data-validate="true">

   ...
</div>

我知道我可以将data-*属性移动到,div class="item"但我想要一个干净代码的解决方案,即使会有很多参数。

2个回答

如果整个文档的元数据可能对访问者或机器人有用,则应使用meta元素您只能使用定义注册的name(但您可以在 wiki 中注册新的)。

对于仅用于脚本等的元数据,您可以在现有元素上使用data-*属性(例如body),或者您可以使用script元素

script元素允许作者在他们的文档中包含动态脚本和数据块该元素不代表用户的内容

[…]

当用于包含数据块(相对于脚本)时,数据必须内嵌,数据格式必须使用type属性给出src不能指定属性,script元素的内容必须符合要求为使用的格式定义。

您可以将此元素放在head或 文档正文中,也可以在其中使用短语内容(如span)。

有一个用作数据块(而不是脚本)的信息示例:

 <script type="text/x-game-map">
 ........U.........e
 o............A....e
 .....A.....AAA....e
 .A..AAA...AAAAA...e
 </script>

所以你可以使用 HTML 或 JSON 或任何你需要的格式。

如果您想使用 HTML,它可能 (***) 如下所示:

<div class="item">
  <script type="text/html">
    <div data-id="123"></div>
    <div data-foo="bar"></div>
    <div>foobar</div>
  </script>
</div>

***(我不确定它是否必须是“完整的”符合标准的 HTML 文档,或者是否也允许像我的示例中那样使用“片段”)

使用脚本+JSON 解决更复杂的数据结构的好方法
2021-05-12 21:00:07

数据适用于div,属性应该在div上。如果您想将代码格式化为每行一项,那么您可以。

<div class="item"
     data-id="123"
     data-type="sometype"
     data-validate="true">

没有设计用于存储文档正文中的元数据的元素。

2021-04-21 21:00:07
这比用多个元素做同样的事情更糟糕吗?
2021-04-24 21:00:07
@PauliSudarshanTerho -有,但他们不是,问题是问的是工作的工具。
2021-05-02 21:00:07
那个看起来不错,但是当可能的属性数量很大并且每个属性都插入了 PHP/SMARTY(属性条件的值甚至存在)时,那么这个单个标签的大小可能有几个“屏幕”
2021-05-06 21:00:07
我会接受这个答案,因为事实上,我们可以在后端准备所有必要的属性/值对,只需将单个foreach写入属性
2021-05-08 21:00:07