0

将 gecko、opera、msie、webkit 等指向他们自己的附加样式表的当前最佳实践是什么?

浏览器嗅探已经结束?我在网上找到的大部分内容都是 2008 年的旧帖子,或者关于正确与错误的理论争论,或者如何使用等等。

必须有更复杂的东西我们可以使用。一些 jquery 或 php 说,(伪代码),“IF moz,@import url(moz.css)”或其他。

4

2 回答 2

0

从用户代理中检测浏览器并为该浏览器包含适当的 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() 函数的详细文章。

于 2012-11-24T07:23:13.510 回答
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>
于 2012-11-24T07:23:39.043 回答