h1和跨度

Ric*_*ard 8 html tags

在我的html中使用h1-h6标签时,我不断在w3c验证器上收到错误消息.我是新手,我已经尝试了很多次来解决这个问题,但我做不到.

该文本在我的网站上显示完全正常,但不会验证.我该如何解决这个问题?错误信息如下;

第34行,第4列:文档类型不允许元素"h1"在这里; 缺少"object","applet","map","iframe","button","ins","del"start-tag

<h1><span> My website </h1>< span> <----这是我得到错误的代码.

提到的元素不允许出现在您放置它的上下文中; 其他提到的元素是唯一允许存在的元素,并且可以包含所提到的元素.这可能意味着您需要一个包含元素,或者您可能忘记关闭前一个元素.

此消息的一个可能原因是您尝试放置块级元素(例如"

"或"")内联元素(例如"",""或"").

在任何情况下,使用标头标签的最佳方法是什么?我究竟做错了什么?

Que*_*tin 22

  • span是一个内联元素
  • h1是块元素
  • 内联元素不能包含块元素
  • 元素不能被其他元素部分包含

因此,从DTD的角度来看:

<h1><span>…</span></h1> <!-- This is fine -->
<div><h1>…</h1></div>   <!-- This is fine -->
<h1><span>…</h1></span> <!-- This is wrong -->
<span><h1>…</h1></span> <!-- This is wrong -->
Run Code Online (Sandbox Code Playgroud)

问题的正确解决方案实际上取决于您尝试使用跨度的内容.

(请注意,上面对块和内联元素的讨论有些简化.请参阅如何阅读完整故事的HTML DTD,特别是有关内容模型的部分)


lon*_*day 9

您正以错误的顺序关闭代码:

<H1><span> My website </h1></span>
Run Code Online (Sandbox Code Playgroud)

应该

<h1><span>My website</span></h1>
Run Code Online (Sandbox Code Playgroud)