修复了在Firefox中使用锚定标签包装块内容的问题>=3.5

修复了在Firefox中使用锚定标签包装块内容的问题>=3.5,firefox,html,Firefox,Html,锚定标记在历史上只允许包含内联内容 HTML5特别允许锚定标记包含块级内容,现代版本的Opera/Chrome/Safari正确地实现了这一行为,但Firefox没有 这个问题之前已经被确定,也许最好的解决办法是只在锚定标记中包含默认的内联标记,然后在CSS中使它们display:block,但这不允许在锚定中使用新的html5标记 是否有人有特定于Firefox的修复程序,允许在Firefox中正确呈现以下内容 <a href="some/page.html"> <ar

锚定标记在历史上只允许包含内联内容

HTML5特别允许锚定标记包含块级内容,现代版本的Opera/Chrome/Safari正确地实现了这一行为,但Firefox没有

这个问题之前已经被确定,也许最好的解决办法是只在锚定标记中包含默认的内联标记,然后在CSS中使它们
display:block
,但这不允许在锚定中使用新的html5标记

是否有人有特定于Firefox的修复程序,允许在Firefox中正确呈现以下内容

<a href="some/page.html">
   <article>
      <section>
         <p> Lorem ipsum... </p>
      </section>
      ...
   </article>
</a>

如果有更好的方法来构造html,从而达到相同的目的,那将是理想的,但是基于CSS的解决方案,甚至是普通的Javascript解决方案都会很好


显然,有很多方法可以使用Javascript和
onclick
div
作为链接进行单击,但这会隐藏链接目标并丢失标记的一些语义值。

只需使用一些不引人注目的Javascript将onclick处理程序添加到带有display:block-containing-block元素的锚元素中即可。不要编辑你的HTML5


仅供参考,这在Firefox 4 Beta中已得到修复(已实现完整的HTML5解析器)。

解决这一问题的一种方法是使用span元素将内容包装在锚点中。因此,您的代码如下所示:

<a href="some/page.html">
   <span>
       <article>
          <section>
             <p> Lorem ipsum... </p>
          </section>
          ...
       </article>
    </span>
</a>


当然,这不再是有效的HTML5,但如果你真的需要让它工作,这个黑客应该这样做。

谢谢,很高兴听到这个问题已经解决了。不幸的是,锚定标记内的块级内容也会在FF 3.*上产生布局问题(预先关闭锚定标记,将内容推到锚定标记外),因此仅修复onclick行为仍然会留下显示/渲染问题。