css hack同时针对Safari和Chrome进行攻击

时间:2013-03-01 11:24:50

标签: css google-chrome safari

我需要为各种浏览器定位特定的CSS样式。

我设法找到了一种单独定位的方法: 仅限Firefox 仅限IE9 仅限IE8 仅限IE7

但是......我无法单独定位Chrome和Safari。我找到了几种适用于Chrome和Safari的技术。一些技术应该针对一个或另一个......但是它们相互重叠,所以最后一个适用于两者。

我已经设置了一个JS小提琴来展示各种技巧,并显示浏览器匹配颜色。任何人都可以帮我找到定位SEPARATELY Safari和Chrome的秘诀吗?

http://jsfiddle.net/lbriquet/MP4qZ/

这是CSS:

#tester {
font-weight:bold;
padding:10px;
margin:5px;
color: #FFF;
border:#00F solid 4px\9; /* IE8 and below */    
*border:#FF0 solid 4px; /* IE7 and below */
-bracket-:hack(;
    border:#0FF solid 4px;  /* Chrome only*/
);
}
:root #tester{
border:#0F0 solid 4px \0/IE\9; /* IE9 +IE10pp4 */
}
@-moz-document url-prefix() { #tester { border:#F00 solid 4px;  /* Firefox only*/ } }

@media all and (-webkit-min-device-pixel-ratio: 0) { #tester { border: #F0F solid 4px; /* Safari */  } }


/* iPads (portrait and landscape) ----------- */
@media only screen
and (min-device-width : 768px)
and (max-device-width : 1024px) {
#tester {
    border: #F90 solid 4px; 
}
}

这是html:

<span id="tester">Browser match</span>

任何帮助将不胜感激! :)

1 个答案:

答案 0 :(得分:0)

你需要一些JS:

var is_chrome = window.chrome;
var is_safari = (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1);

if (is_chrome) {
    $('#tester').addClass('chrome');
}
else if (is_safari) {
    $('#tester').addClass('safari');
}

#tester.chrome {
   /* your CSS here */
}
#tester.safari {
   /* your CSS here */
}

此处示例:http://jsfiddle.net/7h5rh/1/