在那之后我的代码是是有效的,但我有另一个发行人:浏览器呈现 "]>"文档中的字符。 如何解决这个问题? 最佳答案 您不应该在文-6ren">
gpt4 book ai didi

html - 在 DTD 浏览器中的 ATTLIST 声明后呈现自定义字符

转载 作者:行者123 更新时间:2023-11-28 04:59:18 25 4
gpt4 key购买 nike

我声明了rel="value" <li> 的属性DTD 中的元素是这样的:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" [<!ATTLIST li rel CDATA #IMPLIED>]>

在那之后我的代码是<li rel="value"></li>是有效的,但我有另一个发行人:浏览器呈现 "]>"文档中的字符。

如何解决这个问题?

enter image description here

最佳答案

您不应该在文档类型声明中使用内部子集,因为浏览器不理解它,或者根本不理解 DTD。

如果您使用一个简单的添加属性,出于某种原因,通常最好对它足够小心,或者“手动检查”。但是要执行基于 DTD 的验证,您需要构建一个外部 DTD,它基于您希望用作基础的 DTD,并向其中添加额外的标记。在这种情况下,您将复制 HTML 4.01 Transitional DTD 并替换

<!ATTLIST LI
%attrs;>

通过

<!ATTLIST LI
rel CDATA #IMPLIED
%attrs;>

(也就是说,您需要提供允许属性的完整列表,并添加您的自定义属性,而不是声明允许您的属性的属性列表[除非那是您真正想要的] .)

然后您将使用一个文档类型声明,该声明通过其 URL 引用您修改过的副本,其中

<!DOCTYPE HTML SYSTEM "dtdurl">

其中 dtdurl 是 DTD 的绝对 URL。更多信息:Creating your own DTD for HTML validation .

通常不建议添加您自己的属性,因为它们可能会与某些 future 版本中可能添加到 HTML 中的属性发生冲突。根据 HTML5 草案,名称以 data- 开头的属性用于特定于站点的用途,永远不会有任何公开定义的含义,因此 data-relrel.

关于html - 在 DTD 浏览器中的 ATTLIST 声明后呈现自定义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18035511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com