将gecko,opera,msie,webkit等指向他们自己的附加样式表的最佳实践是什么?
浏览器嗅探出来了吗?我在网上找到的大部分内容都是2008年以来的旧帖子,或者是关于正确与错误,或者如何使用或其他的理论争论。
我们可以使用更复杂的东西。一些jquery或php说,(伪代码),“IF moz,@ import url(moz.css)”或其他什么。
答案 0 :(得分:0)
从useragent中检测浏览器并为该浏览器添加适当的css。
$browser = get_browser($_SERVER['HTTP_USER_AGENT'], true);
switch ($browser['browser']) {
case "IE": //load ie specific css
break;
case "Firefox":
case "Mozilla": //load gecko specific css
break;
case "Safari": //load safari css
break;
case "Opera": //load opera css
break;
default:
echo '<link href="default.css" rel="stylesheet" type="text/css" />';
}
这是get_browser()函数的detailed article。
答案 1 :(得分:0)
检测特定浏览器是一个坏主意,因为不同版本可能具有您可能不知道的不同功能。更好的解决方案是使用类似Modernizr的内容来检测功能,并相应地设置样式。
如果你必须检测不同的渲染引擎,不管是什么原因,在PHP中使用browser_info()
方法相对简单:
<head>
...
<!-- Stylesheets for all browsers -->
<link rel="stylesheet" href="style.css" />
<?php
$browser = get_browser(null, true);
switch($browser['browser']){
case 'Firefox':
// User is using Firefox
$style = 'firefox.css';
break;
case 'Safari':
// User is using Safari
$style = 'safari.css';
break;
}
if(isset($style)){
// Specific browser stylesheet set - add to page
?>
<link rel="stylesheet" href="<?php echo $style;?>" />
<?php } ?>
</head>