1

我正在开发一个将在几种不同的上下文中使用的网页,虽然我通常会不惜一切代价避免浏览器嗅探和条件语句,但这次没有办法绕过它。

我正在尝试一种简单的方法,我希望我能得到一些关于这是否是个好主意的反馈。

如果用户代理是 IE,我正在测试用户代理,然后在 html 中的元素上回显一个类(在我的例子中是一个 div)。

<?php echo (strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'msie') !== FALSE) ? ('classforie') : (''); ?>

然后在我的css中,我正在做一些类似的事情;

.classone { display: inline-block; }
.classone.classforie { zoom: 1; display: inline; }

注意,CSS 不是重要的部分,我只是为了举例而编造的。我只是想知道以这种方式做事是否是一种好习惯?

4

2 回答 2

5

不,使用条件注释。用户代理嗅探是不可靠的。

于 2011-02-07T22:46:10.510 回答
1
.classone.classforie { zoom: 1; display: inline; }

绝对不能在 IE6 中工作。

我通常看到它完成的方式是在 BODY 标签上输出类。我认为 IE6 和 HTML 标签上的类可能存在一些问题。

然后你会有这样的东西:

.msie .classone { zoom: 1; display: inline; }
于 2011-02-07T22:46:52.003 回答