<li>导航栏中的元素问题</li>

时间:2014-01-09 15:57:38

标签: html

我正在制作导航栏,但是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;
}

3 个答案:

答案 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 可能有帮助。