我正在制作导航栏,但是W3验证器给了我以下错误:
元素a在此上下文中不允许作为元素ul的子元素。 (抑制此子树中的更多错误。)
使用这样的代码:
<ul id="main-nav">
<a href="'.$index.'"><logo></logo></a>
<li><a href="'.$index.'" title="Home page ">Home</a></li>
</ul>
我试图更改菜单,但我无法修复它。什么是简单的修复?
E:徽标标签显示徽标
ul#main-nav logo{
background: url('images/logo.jpg') no-repeat;
width: 250px;
height: 54px;
display: block;
text-indent: -9999px;
float:left;
}
答案 0 :(得分:1)
问题在于您的<a>
元素,而不是<li>
。 <ul>
唯一有效的孩子是<li>
。来自W3 Docs:
允许的内容
零个或多个
li
元素
您应该按如下方式更新您的代码:
<ul id="main-nav">
<li><a href="'.$index.'"><logo></logo></a></li>
<li><a href="'.$index.'" title="Home page ">Home</a></li>
</ul>
顺便说一下,没有名为<logo>
的标签......如果您希望徽标出现在列表之外,请使用:
<a href="'.$index.'"><logo></logo></a>
<ul id="main-nav">
<li><a href="'.$index.'" title="Home page ">Home</a></li>
</ul>
答案 1 :(得分:1)
问题在于这一行:<a href="'.$index.'"><logo></logo></a>
唯一可以是ul
标记的子元素的元素是li
标记;
禁止所有其他标签。
试试这个:
<a href="'.$index.'"><logo></logo></a>
<ul id="main-nav">
<li><a href="'.$index.'" title="Home page ">Home</a></li>
</ul>
答案 2 :(得分:1)
ul的子项必须是'list-item'即li,在您的情况下,您输入了超链接,因此出错。 This 可能有帮助。