HTML5 – 包含在Firefox中的问题?

我这样做的时候……
<li>
    <a href="#">
      <img src="#" width="#" height="#" alt="#" />
      <ol class="#">
        <li>#</li>
        <li>#</li>
        <li>#</li>
      </ol>
    </a>
 </li>

它像Firefox一样在Firefox中渲染…

<li>
    <a href="#">
      <img src="#" width="#" height="#" alt="#" />
    </a>
      <ol class="#">
      <a href="#"></a>
        <li>a href="#">#</a></li>
      <a href="#"></a>
        <li>a href="#">#</a></li>
      <a href="#"></a>
        <li>a href="#">#</a></li>
      </ol>
    <a href="#"></a>
 </li>

似乎在Webkit中正确呈现.有任何想法吗?

解决方法

虽然HTML5现在允许< a>在包含块级元素(例如ol)的元素中,Firefox的解析器传统上不接受,而是将它们转换为单独的< a>序列.在块级元素内部,它们只包含内联级别元素,这就是您所看到的.

因为Firefox是唯一一个主要的浏览器制作者,Mozilla人接受了HTML5的更改,同意改变他们的解析器以允许< a>包装块内容的元素. (这只是HTML5的许多解析器更改之一,尽管它似乎可能是最重要的一个)

这种变化发生在Firefox 4中,所以你不会在那里看到问题,但Firefox 3.x仍然使用旧的行为.

解决方法,包括使用< div>使用onclick属性而不是< a>,并使用JavaScript将块包装在< a>中元素,但没有非JS解决方案.鉴于(a)页面应该仍然可用,并且(b)Firefox 3.x应该在不太遥远的未来消亡,一个合理的选择就是接受现在的奇怪的Firefox 3行为.

相关文章

HTML5和CSS3实现3D展示商品信息的代码
利用HTML5中的Canvas绘制笑脸的代码
Html5剪切板功能的实现
如何通过HTML5触摸事件实现移动端简易进度条
Html5移动端获奖无缝滚动动画实现
关于HTML5和CSS3实现机器猫的代码