无法仅针对 opera 40.0 应用特定 CSS

Unable to apply specific CSS only for opera 40.0

我尝试了几个堆栈溢出链接,其中 CSS 歌剧黑客是:-

@media not all and (-webkit-min-device-pixel-ratio:0) {  /*opera*/
    selector{

}
}

在 opera ver40.0 中它不起作用。我也试过关于这个 post 的答案:- How to make CSS visible only for Opera

然后我分别为chrome、firefox、ie和opera写了几个媒体查询是这样的:-

 @media not all and (-webkit-min-device-pixel-ratio:0) {  /*opera*/
    #selector {  
       margin-top:-20px;
    }  
} 


@media screen and (-webkit-min-device-pixel-ratio:0) { /*chrome*/

  #selector{
    margin-top:-10px;
}
}

@media not all and (-moz-windows-compositor) { /*firefox*/
        #selector{
        margin-top:-10px;
    }
 }

@media screen and (min-width:0[=12=]) { /* IE */

    #selector{
    margin-top:-10px;
    }

}

它适用于 chrome,即 firefox,但在 opera 中则不起作用。当我在 Opera 中检查开发人员工具时,它取而代之的是 CSS of chrome。现在你可能想知道为什么不为 chrome 使用它,但我不能,因为 margin-top 在歌剧中使用 -10px 渲染方式很远,所以我只需要 -20px 在歌剧中。

由于没有仅基于 CSS 的黑客可用,javascript 浏览器检测对我有用,然后我使用 jquery 覆盖 css,如下所示: -

var isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;

if(isOpera){
    $(selector).css('margin-top','-30px');
}