检查 Internet Explorer。PHP 与条件注释?

Check for internet explorer. PHP vs. ie conditional comments?

提问人:Jeff 提问时间:10/31/2009 最后编辑:Jeff 更新时间:11/1/2009 访问量:763

问:

因此,我决定将我的 CSS 分解为一个仅限 ie6 和 ie7 的文件。我将在此文件中包含仅针对 ie6 和 ie7 的 CSS 规则,例如:

div {
    *color: red; /* target ie7 and below */
    _color: green; /* target ie6 and below */
}

如果可能的话,我更喜欢使用 PHP with 来检测浏览器,而不是条件注释。$_SERVER['HTTP_USER_AGENT']

我知道访问者可以“欺骗”他们的用户代理并声称是他们想要的任何浏览器,但是使用 PHP 而不是条件注释来检测浏览器的一般意见是什么?

php css 用户代理

评论

0赞 Macha 10/31/2009
如果必须使用浏览器嗅探,请默认发送好页面,并且仅将阉割版本发送到已知的不良浏览器。
2赞 Martha 11/1/2009
欺骗他的用户代理的人显然想要获得特定的 CSS。为什么要对用户进行事后猜测?

答:

4赞 Daniel A. White 10/31/2009 #1

是否希望在每次请求页面时都进行字符串比较?我不会。我会把这个留给浏览器。

评论

1赞 Jeff 10/31/2009
那么,这是投票赞成吗?字符串比较非常平凡和微小。ie-conditionals
4赞 mauris 10/31/2009 #2

恕我直言 - 使用 IE 条件注释。与服务器上的处理相比,它们的速度要快得多!想想看,如果你的服务器上有 100 个客户端在处理这个问题,那么与委派给这 100 个客户端进行渲染和处理相比,你的服务器速度会变慢。

即使你缓存它并且不是每次都在服务器上渲染它,它也不值得服务器负载。

评论

0赞 Jeff 10/31/2009
谢谢莫里斯,但我已经有了一个剧本。只是想知道使用PHP与条件注释的意见。=)
1赞 mauris 10/31/2009
使用 IE 条件注释。与服务器上的处理相比,它们的速度要快得多!想想看,如果你的服务器上有 100 个客户端在处理这个问题,那么与委派给这 100 个客户端相比,你的服务器速度会变慢。
0赞 Jeff 11/1/2009
我之所以选择条件注释,是因为该变量是“混蛋”,正如 AnonJr 在下面的评论中所说的那样。$_SERVER
0赞 Jason 11/1/2009 #3

作为替代方案,这对我来说效果很好,您可以使用css_browser_selector.js。有了它,你的样式表看起来会更像这样:

.ie7 div {
    color: red; /* target ie7 */
}

.ie6 div {
    color: green; /* target ie6 */
}