2017-07-07 33 views
0

Chrome正在改变我的HTML结构,似乎没有任何理由,删除第二级锚标签生成预期的html,并用div或任何其他标签替换它也可以精细。 FiddleChrome malforma li> a> ul> li> a HTML

编写的代码:

<ul> 
    <li> 
    <a href="/"> 
     Whatup 
     <ul> 
     <li> 
      <a href="/test/">Yo</a> 
     </li> 
     </ul> 
    </a> 
    </li> 
</ul> 

解释代码:

<ul> 
    <li> 
    <a href="/"> 
     Whatup 
    </a> 
    <ul> 
     <a href="/"></a> 
     <li> 
     <a href="/"></a> 
     <a href="/test/">Yo</a> 
     </li> 
    </ul> 
    </li> 
</ul> 

示例工作代码:

<ul> 
    <li> 
    <a href="/"> 
     Whatup 
     <ul> 
     <li> 
      <div>Yo</div> 
     </li> 
     </ul> 
    </a> 
    </li> 
</ul> 
+1

您不能在HTML中嵌套链接。 Chrome并没有改变这个“没有理由”,而是为了纠正你犯的错误。 – CBroe

+0

和FYI,_validating_你的代码可以帮助你找出这样的东西,然后再问。 https://validator.w3.org/nu/ – CBroe

回答

0

您有另一个a内部列表。这是什么导致内部ul跳出外部a,因为在另一个a(否则,浏览器不知道如何处理单击内部a)内不能有a

换句话说,它不是Chrome,它会损坏您的HTML - 您的HTML格式不正确。

+0

谢谢,我认为我的HTML可能会以某种方式变形,但它甚至不会对我产生一个> *> a是无效的,这是非常有意义的。我会接受你的答案,当我可以 –

+0

@Nbody Nbody:公平地说,很难通过查看标记来发现。这就是为什么定期验证您的标记是一个好习惯。 – BoltClock

0

您的HTML无效。你应该使用a validator

从规范the a element

内容模型:透明的,但必须有没有交互式内容后裔。

链接是交互式内容(人们需要点击它们来加载新页面)。

浏览器试图从错误中恢复。