禁用IE 8及更早版本的css。

时间:2013-05-15 作者:AirRon Happe

我正在试图找到一种方法来禁用IE8或更少版本中的任何东西的212样式表。是否有一个条件代码可以放在我的函数php文件中,使默认的Twentylex样式表(及其子主题子表)在这些特定浏览器中被忽略?

我想从一块空白的石板上开始我的IE only样式表,并且只应用非常非常简单的样式。

提前感谢

2 个回复
SO网友:s_ha_dum

Deregister twentytwelve-ie, 其(当前)注册于function.php on line 157.

function dereg_ie_styles_wpse_99631() {
  wp_deregister_style(\'twentytwelve-ie\');
}
add_action( \'wp_enqueue_scripts\', \'dereg_ie_styles_wpse_99631\', 1000);
但这不仅仅是IE8。注册为小于或等于IE 9。

如果您想删除IE8或更低版本的所有样式表,那么您将经历一段颠簸的旅程。IE的条件样式表加载由浏览器解析的条件标记处理,即IE读取的标记,而不是其他浏览器读取的标记。服务器上的PHP不必担心什么浏览器正在读取页面。

要有条件地删除主样式表,您的选项有限。

第一种是用户代理嗅探,它不是很可靠。你会读到$_SERVER[\'HTTP_USER_AGENT\'] like wp_is_mobile does, 检查IE User Agent strings 然后有条件地删除样式表wp_deregister_script.

function dereg_ie_styles_wpse_99631() {
  wp_deregister_style(\'twentytwelve-ie\');
  if ( strpos($_SERVER[\'HTTP_USER_AGENT\'], \'MSIE\') ) {
    wp_deregister_script(\'twentytwelve-style\');
  }
}
add_action( \'wp_enqueue_scripts\', \'dereg_ie_styles_wpse_99631\', 1000);
这是完全未经测试的,我认为,ill-advised 但你在这里。

你也许可以用Javascript编写一些东西,但我还没有尝试过。Javascript可能在识别IE方面做得更好,但呈现时间延迟可能会很明显。

SO网友:ArleyM

您也可以只使用CSS/HTML来实现这一点!

在HTML中,您可以重用主题附带的条件HTML标记,就像这样。我已经为这个例子修改了这些:

<!--[if lte IE 8]><html class="old-ie"><![endif]-->
<!--[if !(IE 6) | !(IE 7) | !(IE 8) ]><!--><html><!--<![endif]-->
然后在CSS中,您可以这样做:

.old-ie * { display:none; }
使用我在HTML示例中使用的相同条件标记,您实际上也可以调用不同的CSS链接标记。

结束

相关推荐

使用分页线制作的页面/站点的CSS样式

我知道如何在wordpress中更改页面的HTML,但由于某些原因,我找不到我要找的页面的CSS。我可以找到大量由页面行生成的代码(是否在其中?)。我正在开发的网站已经被另一位为该网站进行基本编码和样式设计的作者使用过。我只想对页面的CSS做一些小的更改。在哪里可以找到该代码?