小编典典

HTML 属性的长度有限制吗?

all

HTML 中的属性值有多长?

data-foo="bar"在一个新应用程序中使用 HTML5 样式数据属性 ( ),在一个地方存储大量数据(超过 100
个字符)非常方便。虽然我怀疑这个数量是可以的,但它提出了多少是太多的问题?


阅读 71

收藏
2022-05-31

共1个答案

小编典典

HTML 4

从 HTML 4 的角度来看,属性是一种 SGML 构造。它们的限制在HTML 4 的 SGML
声明
中定义:

         数量 SGMLREF
                  ATTCNT 60 -- 增加 --
                  ATTSPLEN 65536 -- 这些是最大值 --
                  LITLEN 65536——在声明中允许——
                  NAMELEN 65536 -- 在实际中避免固定限制 --
                  PILEN 65536 -- HTML UA 的实现 --
                  TAGLVL 100
                  泰格伦 65536
                  GRGTCNT 150
                  玻璃钢 64

这里讨论的值是“ATTSPLEN”,它是元素属性规范列表的限制(应该是该元素所有属性的总大小)。然而,上面的注释提到应该避免固定限制,因此在大多数实现中,除了可用内存之外,可能没有真正的限制。

HTML 5

看起来 HTML 5 对属性值的长度没有限制

正如规范所说,“这个版本的 HTML 因此返回到非 SGML
基础。”

稍后,在描述如何解析 HTML 5 时,出现以下段落( 强调 添加):

下面描述的算法 对生成的 DOM 树的深度或标签名称、属性名称、 属性值、文本节点等* 的长度 没有限制
。虽然鼓励实现者避免任意限制,但认识到实际问题可能会强制用户代理施加嵌套深度限制。
***

因此,(理论上) HTML 5 属性的长度/大小没有限制

2022-05-31