2011-12-16 117 views
1

我使用HTML Tidy输出漂亮的HTML源代码并作为最终编码检查。防止HTML Tidy添加li元素

但是它走的是一条非常简单的列表,如:

<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> 

如何优雅地告诉它独自离开我的名单?

我已经搜索了这些configuration options,但我经常发现它们没有直观地命名或正确解释。

回答

1

唯一的答案:给它有效的标记开始。 ul唯一合法的子元素是lia元素不能是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> 

如果你想整个li是点击,风格a元素作为display: block

#navigation li a { 
    display: block; 
} 
2

它实际上是试图纠正你的标记,使其符合标准,你的<li>标签应该围绕<a>标签,而不是其他的方式,也许如果你修好了,那么它不会尝试添加额外的项目到名单。

你可以尽管删除样式的一部分,只需修改你的CSS有:

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

Spot on ...整齐的代码只是试图让它变得如此。 – 2011-12-16 11:06:50

0

将您<a>标记为<li> -s:

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

你的清单无效的标记;元素可能只包含li元素。 Tidy实际上是应用最明智的通用方法来修复这种破碎的标记:它将任何非li内容变成禁止列表标记的li元素。

人工手动像

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

更改标记来

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

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