强制浏览器忽略HTML 5功能

时间:2012-01-16 01:11:41

标签: html5 firefox

我有一个遗留网站,可以在FF 3.6,IE 7到8等中正确呈现,但在FF 9中失败。

问题是网站使用的旧的(HTML 5之前的)第三方JS框架(Woodstock)为某些HTML元素添加了HIDDEN属性,所以当我在firebug中查看HTML时,我看到了代码像:

<table id="foo" hidden="">

这些页面正在提供:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

这适用于为HTML 4设计的浏览器,它没有HIDDEN属性。但支持HTML 5的最新浏览器会解释此属性并隐藏我需要显示的元素。

修改(不支持的)第三方框架以避免使用HIDDEN属性将非常困难。

是否可以强制浏览器将页面呈现为HTML 4,而不是对HTML 5功能进行任何解释?其他建议欢迎......

2 个答案:

答案 0 :(得分:6)

IE之外的浏览器只实现一个HTML(好吧,除了怪癖模式)。

但是,所有hidden属性都会触发UA样式表中的某些样式规则。您可以添加自己的样式规则来覆盖它们。这些规则需要多么复杂取决于框架添加元素的元素,但一种全面的方法是从HTML5规范或http://mxr.mozilla.org/mozilla-central/source/layout/style/html.css复制各种display规则,但涉及hidden的内容,只需将它们放在页面链接到的样式表中即可。

答案 1 :(得分:2)

是的,您应该声明正确的DOCTYPE。如果它是真正的HTML4,您应该将其声明为HTML4,而不是XHTML。

有关您可以使用的不同类型,请参阅http://www.w3.org/QA/2002/04/valid-dtd-list.html