Html 是否有一个规则来记住标签是否是自动关闭的?
这项工作:Html 是否有一个规则来记住标签是否是自动关闭的?,html,Html,这项工作: <link rel="stylesheet" type="text/css" href="xxx.css" /> 但这并不是: <script type="text/javascript" src="xxx.js"/> 您实际上需要: <script type="text/javascript" src="xxx.js"></script> 为什么会出现这种不一致?这背后有什么理由可以帮助我记住它吗 我知道链接从来没有
<link rel="stylesheet" type="text/css" href="xxx.css" />
但这并不是:
<script type="text/javascript" src="xxx.js"/>
您实际上需要:
<script type="text/javascript" src="xxx.js"></script>
为什么会出现这种不一致?这背后有什么理由可以帮助我记住它吗
我知道链接
从来没有内容,脚本可以在
和
之间有一个内联脚本(然后没有src
)
但是:
语法将有足够的信息告诉解析器:这里没有内容,我现在就关闭它
那么,为什么不支持这样做呢?只有在标记中没有子元素时才使用自动关闭标记 例如,
…
中可能包含一些代码
但是
不能有任何子元素,所以它是自动关闭的
在此处查找自动关闭元素的列表:
- 区域
- 基地
- 溴
- 上校
- 嵌入
- 人力资源
- img
- 输入
- 凯根
- 链接
- 元
- param
- 来源
- 跟踪
- wbr
要记住的规则是除了上面列表中的标签外,几乎没有标签。请记住最重要的标记。只有在标记中没有子元素时才使用自动关闭标记 例如,
…
中可能包含一些代码
但是
不能有任何子元素,所以它是自动关闭的
在此处查找自动关闭元素的列表:
- 区域
- 基地
- 溴
- 上校
- 嵌入
- 人力资源
- img
- 输入
- 凯根
- 链接
- 元
- param
- 来源
- 跟踪
- wbr
要记住的规则是除了上面列表中的标签外,几乎没有标签。请记住最重要的一点。HTML是建立在SGML之上的。SGML使用DTD来描述元素 DTD可以限制内容元素的种类。这包括永远不会有内容的“空”元素(您称之为“自动关闭”的元素) 这与可以包含内容的元素不同,但恰好相反 因此:
是一个长度为零的段落,而
确实是允许的。如果内容类型将实体描述为application/xhtml+xml
而不是text/html
,那么浏览器应该接受该表单
基于XML的规则可以允许这样做,因为它们在一些元素上没有可选的结束标记规则,而这些元素是基于SGML的表单(以及构建在这些元素上但在SGML遵从性方面不严格的更高版本表单)所拥有的
(表单
/>
前面带有空格的/
是一个用于与两个表单兼容的表单,XML表单中的空元素需要/
,而另一个表单将/
组合视为可以忽略的内容)。HTML构建在SGML之上。SGML使用DTD来描述元素
DTD可以限制内容元素的种类。这包括永远不会有内容的“空”元素(您称之为“自动关闭”的元素)
这与可以包含内容的元素不同,但恰好相反
因此:
是一个长度为零的段落,而
确实是允许的。如果内容类型将实体描述为application/xhtml+xml
而不是text/html
,那么浏览器应该接受该表单
基于XML的规则可以允许这样做,因为它们在一些元素上没有可选的结束标记规则,而这些元素是基于SGML的表单(以及构建在这些元素上但在SGML遵从性方面不严格的更高版本表单)所拥有的
(表单
/>
前面带有空格的/
是一个用于与两个表单兼容的表单,XML表单中的空元素需要/
,而另一个表单将/
组合视为可以忽略的内容).也许你可以避免`/>`总是-也许你可以避免`/>`总是-这与我在问题中给出的原因相同,但这并没有说明为什么不支持
(作为脚本标记的额外语法版本)。为什么不允许每次没有内容时都使用自动关闭标签呢?我添加了一个到w3网站的链接。这与我在问题中给出的原因相同,但这并没有说明为什么不支持
(作为脚本标记的额外语法版本)。为什么不允许每次没有内容时都使用自动关闭标签呢?我添加了一个到w3网站的链接。从定义上来说,它应该是这样的。