Php 如何识别IE8及以下版本以发布唯一代码?

Php 如何识别IE8及以下版本以发布唯一代码?,php,html,regex,internet-explorer-8,conditional-comments,Php,Html,Regex,Internet Explorer 8,Conditional Comments,我打算在我的CMS标题中添加一些代码,提醒所有使用IE8及以下版本的用户,建议升级他们的浏览器 在PHP中,我得到了以下代码,,它显示了IE的所有版本 我添加了以下行: .ieNotice { display: block !important;} 我已经在Firefox和Chrome上正确地看到了这一点,但它仍然显示了我为IE 9、10和11创建的横幅。你不应该依赖用户代理字符串,它可能会被用户欺骗。尤其是因为您已经在使用 好的。。。即使那不起作用。。。“怪癖模式”的条件注释不是只显示图像和

我打算在我的CMS标题中添加一些代码,提醒所有使用IE8及以下版本的用户,建议升级他们的浏览器

在PHP中,我得到了以下代码,,它显示了IE的所有版本

我添加了以下行:

.ieNotice { display: block !important;}

我已经在Firefox和Chrome上正确地看到了这一点,但它仍然显示了我为IE 9、10和11创建的横幅。

你不应该依赖用户代理字符串,它可能会被用户欺骗。尤其是因为您已经在使用

好的。。。即使那不起作用。。。“怪癖模式”的条件注释不是只显示图像和IE8及以下链接的后备方法吗?我错过了什么

您似乎有一个错误的印象,即条件注释只在怪癖模式下工作。它们本身不受限制;无论使用哪种文档模式,9版之前(含9版)的IE都会尊重它们,从10版开始的IE以及其他浏览器都会完全忽略它们,就像任何常规HTML注释一样


如前所述,服务器端检查是完全不必要的,甚至可能由于UA欺骗的可能性而中断,因此应该将其删除。您的条件注释将按设计自行工作。

页面的
的外观使我认为它位于页面的
正文中<代码>为什么您甚至需要检查UA字符串?有条件的评论为你过滤——你不必担心任何其他浏览器或IE的更新版本会看到它们的内容。这就是条件注释的全部要点。这是在
头部
还是
身体
?它在身体里,现在在头部。我已经删除了UA字符串检查。我同意Sam的观点。可能更有意义的是在PHP文件中更改IE的条件块显示的消息(文件)。我理解你的意思,Mofi,我很乐意这样做。不幸的是,上级给我的指示束缚了我的手脚。我已经做了一些更改,但它仍然没有按预期运行。正确!所以,我做了一些改变,但仍然没有体验到我希望体验到的,因为IE 9、10和11错误地显示了横幅。我已经在上面发布了我的编辑。请确保在
styles-ie-lte8.css
之前首先调用默认样式表,并且放置
可能也很有用!重要信息
在IE8版本中,以防万一。同时仔细检查一种样式是否有
display:none和另一个具有
显示:块如果两者相同,则不会发生任何事情。您是对的!我意识到我在问题中输入了错误的代码,我已经做了修复。IE8样式表有
.ieNotice{display:block!important;}
而不是
display:none。。。但是,我仍然没有得到专门为IE8及以下版本显示的图像和链接。默认样式表有
.ieNotice{display:none;}
和style-ie-lte8.css有
.ieNotice{display:block!important;}
?它在所有浏览器上仍然显示相同的内容?另外值得注意的是,MSIE处理的任何形式如下:
谢谢。我已经做了改变,但出于某种原因,它仍然显示在9,10和11的横幅。我已经在上面发布了我的编辑。任何帮助都会很好。
<!--[if lte IE 8]>
<link rel="stylesheet" type="text/css" href="/skin/frontend/default/hellowired/css/styles-ie-lte8.css" media="all" />
<![endif]-->
.ieNotice { display: block !important;}