如何使CSS仅在Opera浏览器中可见

32

有没有办法只让Opera浏览器看到一些CSS规则?


2
你想这样做的原因是什么?正如一些人所指出的那样,这通常不是解决CSS问题的最佳方法(IE除外)。如果我们了解了潜在的问题,也许我们可以建议更合适的解决方案。 - roryf
这个在 Opera 12 上还能用吗? - I.G. Pascual
@roryf 我知道你的问题已经快4年了,但是为了回答这个问题,其中一个原因是在这里引用的错误情况:http://my.opera.com/community/forums/topic.dml?id=1436202,在某些版本的Opera 12中,如果某人的字体库出现问题,会混淆字体。是的,这是一个罕见的事件,但是我的客户偶然发现了这个问题。随机文本元素出现了混乱,我不能告诉她,“哦,某些Opera用户将不得不忍受它”。 - David Stinemetze
13个回答

1

我能想到的唯一方法是检查用户代理,并且只有在 Opera 浏览器时才引用样式表。由于用户代理可能被篡改,这种方法可能不是100%可靠。


0

@certainlyakey 对我来说非常好用:

@media all and (-webkit-min-device-pixel-ratio:10000), not all and (-webkit-min-device-pixel-ratio:0) { #id {css规则} }

我有一个页面上有一个按钮,在Opera中文本无法正确呈现。该按钮出现多次(添加到购物车)。应用此修复后,它完美地工作了。


0

绝对不推荐这种做法。

在Google上查找JavaScript或PHP浏览器嗅探器。有些可能已经过时,您需要添加Opera 9.5+的检测。

浏览器嗅探器(用于样式)通常是不好的实践。

此外,请注意,Opera 9.5+允许用户将其浏览器伪装成IE,使任何类型的嗅探都无效。

编辑:正如您在另一个答案中看到的那样,有window.opera.version()。我不知道window.opera对象包含这些信息。但是,当某人将Opera设置为以IE或其他浏览器的身份出现时,您应该查看是否仍然可以使用此对象。


“伪装成IE”的选项是否包括隐藏window.opera变量?如果没有,通过JavaScript仍然可以检测到。 - Ben Blank
如果只有window.opera对象可用,您无法区分Opera 9.5+和早期版本。提问者特别引用了Opera 9.5+,因此我不确定他是否只关心9.5+还是必须针对9.5+。将编辑我的答案。 - user136565
当然啦,我不知道还有 window.opera.version() 这个方法…… 这说明了我对 Opera 的关注程度。:) - user136565

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接