防止HTML添加li元素

防止HTML添加li元素,html,tidy,Html,Tidy,我使用HTMLTidy来输出漂亮的HTML源代码,并作为最终的编码检查 然而,它采用了一个非常简单的列表,例如: <ul id="navigation"> <a href="index.php"><li>Summary</li></a> <a href="#"><li>Upload</li></a> <a hre

我使用HTMLTidy来输出漂亮的HTML源代码,并作为最终的编码检查

然而,它采用了一个非常简单的列表,例如:

<ul id="navigation">
            <a href="index.php"><li>Summary</li></a>
            <a href="#"><li>Upload</li></a>
            <a href="accounts.php"><li>Accounts</li></a>
        </ul>
把它变成这个怪物:

 <ul id="navigation">
        <li style="list-style: none">
          <a href="index.php"></a>
        </li>
        <li id="active">Summary
        </li>

        <li style="list-style: none">
          <a href="#"></a>
        </li>
        <li>Upload
        </li>
        <li style="list-style: none">
          <a href="accounts.php"></a>
        </li>
        <li>Accounts
        </li>

      </ul>
  • 摘要
  • 上传
  • 帐目
我如何优雅地告诉它不要管我的清单


我搜索过这些,但是我经常发现它们的命名不直观或解释不正确。

它实际上是试图更正标记以使其符合标准,您的
  • 标记应该围绕
    标记,而不是相反,也许如果你解决了这个问题,它就不会试图在列表中添加额外的项目

    不过,您可以删除样式部分,只需修改css即可:

    ul.navigation li
    {
        list-style: none;
    }
    

    它实际上是在试图纠正您的标记以使其符合标准,您的
  • 标记应该围绕
    标记,而不是相反,如果您解决了这个问题,它可能不会尝试向列表中添加额外的项

    不过,您可以删除样式部分,只需修改css即可:

    ul.navigation li
    {
        list-style: none;
    }
    

    唯一的答案是:首先给它一个有效的标记。
    ul
    的唯一合法子元素是
    li
    a
    元素不能是
    ul
    的子元素

    <ul id="navigation">
        <li><a href="index.php">Summary</a></li>
        <li><a href="#">Upload</a></li>
        <li><a href="accounts.php">Accounts</a></li>
    </ul>
    

    唯一的答案是:首先给它一个有效的标记。
    ul
    的唯一合法子元素是
    li
    a
    元素不能是
    ul
    的子元素

    <ul id="navigation">
        <li><a href="index.php">Summary</a></li>
        <li><a href="#">Upload</a></li>
        <li><a href="accounts.php">Accounts</a></li>
    </ul>
    
    移动您的
    
    
    移动您的
    
    
    您的列表是无效的标记;
    ul
    元素只能包含
    li
    元素。Tidy实际上是在应用最明智的通用方法来修复这种损坏的标记:它将任何非
    li
    内容转换为
    li
    元素,而列表bulleter被抑制

    因此,手动更改标记,如

    <a href="index.php"><li>Summary</li></a>
    
    
    


  • 这可能就是你想要的。这可能需要更改CSS或JavaScript代码,如果他们需要当前标记。

    您的列表是无效标记;
    ul
    元素只能包含
    li
    元素。Tidy实际上是在应用最明智的通用方法来修复这种损坏的标记:它将任何非
    li
    内容转换为
    li
    元素,而列表bulleter被抑制

    因此,手动更改标记,如

    <a href="index.php"><li>Summary</li></a>
    
    
    


  • 这可能就是你想要的。这可能需要更改CSS或JavaScript代码,如果他们希望使用当前标记。

    请注意……整洁的代码只是试图使其成为必须的样子。我意识到这一点,但我不担心使用此文件进行验证,我只想使我的整个li可点击,我没有遇到无法呈现此内容的浏览器。而且我已经声明了
    列表样式:none可以呈现它,因为他们试图处理错误的标记。如果你需要的链接是坚实的,你可以将它们设置为使用
    显示:内联块
    ,如果我理解正确,它应该做你想做的。请注意…整洁的代码只是试图使它成为它必须的样子。我意识到这一点,但我不担心用这个文件验证,我只是想让我的整个李的点击,我没有遇到一个浏览器,无法呈现这一点。而且我已经声明了
    列表样式:none可以呈现它,因为他们试图处理错误的标记。如果您需要将链接设置为实心,可以将其设置为使用
    display:inline block
    ,如果我理解正确,则可以执行您想要的操作。