将 gecko、opera、msie、webkit 等指向他们自己的附加样式表的当前最佳实践是什么?
浏览器嗅探已经结束?我在网上找到的大部分内容都是 2008 年的旧帖子,或者关于正确与错误的理论争论,或者如何使用等等。
必须有更复杂的东西我们可以使用。一些 jquery 或 php 说,(伪代码),“IF moz,@import url(moz.css)”或其他。
从用户代理中检测浏览器并为该浏览器包含适当的 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() 函数的详细文章。
检测特定的浏览器是一个坏主意,因为不同的版本可能具有您可能不知道的不同功能。更好的解决方案是使用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>