2012-04-06 54 views
0

我想知道如何删除所有基于检查浏览器是否小于IE8的CSS样式。基于浏览器版本删除所有样式

因此,如果它检测到IE7然后删除所有样式?我想知道这是否可能通过一些jQuery?

请问这种修复最IE7的问题:

<!--[if lt IE 7]> 
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE7.js"></script> 
<![endif]--> 
+1

你在那里放入的内容检查IE版本是否是_less than_7,换句话说,IE6或更低版本。你的意思可能是'[如果IE 7]或'[如果IE IE 8]'。 – 2012-04-06 12:12:11

回答

1
<!--[if lt IE 8]> 
    <body class='oldIE'> 
<![endif]--> 
<!--[if gte IE 8]> 
    <body class='ok'> 
<![endif]--> 
<!--[if !IE]> 
    <body class='ok'> 
<![endif]--> 

在这里,你将需要前缀的所有你不IE7的样式与.ok

申请的另一种方法是

<!--[if lt IE 8]> 
    //include an old IE specific stylesheet or none at all 
<![endif]--> 
<!--[if gte IE 8]> 
    //include your stylesheets 
<![endif]--> 
<!--[if !IE]> 
    //include your stylesheets 
<![endif]--> 
+0

我结束了如果LT IE8使用,然后设置一些JavaScript来触发重定向到飞溅页面说IE7或<糟透了。坦白地说,任何使用IE7的人都不应该大声朗读以查看我的内容。 – 2012-04-06 13:25:46

2

我不知道你为什么要删除所有风格的浏览器版本。我想你对IE7有一些CSS问题,通常修复它的好方法,而不是删除所有的CSS,就是使用ie7.js:http://code.google.com/p/ie7-js/

这是它可以做的demo

另外,这个脚本还有一个适用于IE8和IE9的版本。

+0

我只是将它粘贴到标题中? – 2012-04-06 11:56:15

+0

检查我的编辑? .... – 2012-04-06 11:56:55

+1

ie7.js不会像你问的那样删除任何CSS。它只是试图使IE7像其他版本/浏览器一样...... – hohner 2012-04-06 11:58:23

0

最好的解决方法是删除特定类名,而不是擦整个CSS为元素:

// Identity browser and browser version 

if($.browser.msie && parseInt($.browser.version) == 7) { 

    // Remove class name 
    $('.class').removeClass('class'); 

    // Or unset each CSS selectively 
    $('.class').css({ 
     'background-color': '', 
     'font-weight': '' 
    }); 

} 
+0

这是甚至可行的,因为我有像UL.tiles 5样式例如。我基本上想让网页像互联网第一次启动时那样。或者只是将它们重定向到一个页面,IE7很糟糕。 – 2012-04-06 12:00:06

+0

如果存在样式表规则,则使用'.css'(编辑内联样式)“unsetting css”不执行任何操作。另外,并非所有的css规则都是基于类的。 – Esailija 2012-04-06 12:07:55