元素& lt; a>不允许作为元素<dl>在此上下文中-验证器错误
Element <a> not allowed as child of element <dl> in this context - Validator Error
在HTML 5(实验性)windows-1252编码下运行w3Validator后,我得到了以下错误-
第11行,第20列:元素a not允许作为元素dl的子元素上下文。(抑制进一步的错误)
<a href="#link"><dt>Link</dt><dd>Sub heading of the link</dd></a>
如果<a>
不能包含子元素<dl>
,那么代码应该如何使用?
注意:上面的代码是由js使用的,所以代码中不应该有大的变化。
更新:整个代码如下-
<div id="something">
<dl>
<a href="#link1"><dt>title1</dt><dd>Sub heading1</dd></a>
<a href="#link2"><dt>title2</dt><dd>Sub heading2</dd></a>
<a href="#link3"><dt>title3</dt><dd>Sub heading3</dd></a>
<a href="#link4"><dt>title4</dt><dd>Sub heading4</dd></a>
<a href="#link5"><dt>title5</dt><dd>Sub heading5</dd></a>
<a href="#link6"><dt>title6</dt><dd>Sub heading6</dd></a>
</dl>
</div>
目前张贴的所有答案都是错误的。
锚(或<a>
元素)默认是内联的,是的-但你可以通过使用一些基本的CSS来改变它:
a {
display: block;
}
除此之外,在HTML5中,块级锚是允许的。这意味着你可以做一些很酷的事情,比如:
<a href="#">
<h1>Foo</h1>
<p>Bar</p>
</a>
让你的代码验证为HTML5。(这段代码一直在浏览器中工作,只是在HTML5之前无效。)
真正的原因它不验证(因此,你的问题的答案)是非常简单的:<dt>
和<dd>
元素可能只出现为直接子的<dl>
元素。
定义列表有一个非常特殊的结构
<dl>
<dt>Definition title<dt>
<dd>Definition description </dd>
<dt><a href='#'>Definition title</a><dt>
<dd>Definition description </dd>
<dt>Definition title<dt>
<dd><a href='#'>Definition description</a></dd>
</dl>
唯一可以放置LINK的地方是在DT或DD中。如果我没记错的话,DD被认为是块级元素,在任何情况下都不会进入LINK中。
EDIT:正如@Mathias Bynens在评论中指出的那样,只有 DT和DD元素可以作为DL的直接子元素出现。
在HTML5
基本上这是块和内联元素的问题。惯例是不应该将块元素放在内联元素中,<a>
标记是内联的,<dl>
(以及应该在其中的<dt>
和<dd>
元素)是块。你所做的类似于把<strong>
或<a>
元素放在<form>
或<div>
周围,这显然是不对的。
对您的问题的"答案"是将<a>
标签放在单独的<dt>
和<dd>
标签中,并且在定义列表中只包含定义术语和定义定义标签。
ignore :没有意识到您正在尝试验证HTML 5。在这种情况下,答案是你不能把<dt>
和<dd>
以外的任何东西作为<dl>
的直接子元素。
- 元素在我的代码中不会.fadeTo.Don'I don’我不知道;s错误的JavaScript、JQuery、H
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- 使用jquery创建dom元素会导致ie9出现拒绝访问错误
- d3在数据更新时错误地附加了dom元素
- 未捕获错误:元素缓存中id为x的DOM元素与DOM中的元素不同
- D3-更新时元素数量正确,但值错误
- 当在ng视图中加载新路由时,Tabbing(tabindex)针对错误的元素
- Angular2-*ngFor和*ngIf在同一个元素上产生错误
- 错误:ReCAPTCHA占位符元素必须为空
- React.js错误;相邻的JSX元素必须被封装在一个封闭标记“中;
- ReactJS - 元素类型无效错误
- 类名的子元素错误
- jQuery 验证 - 调用某些元素的 .valid() 方法不会清除错误
- IE7/8中的jQuery动态元素错误
- PHP或Javascript:找不到元素错误
- Scrollable在angular2中不是已知的元素错误
- 从javascript编辑html输入元素错误
- React-Bootstrap弹出窗口上的非react元素-错误的位置和不变的错误
- 在firebug PHP ajax中没有发现任何元素错误
- Window.getComputedStyle 在 Firefox 中没有实现接口元素错误