Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 链接不同浏览器的单独/有条件/唯一样式表_Php_Jquery_Css - Fatal编程技术网

Php 链接不同浏览器的单独/有条件/唯一样式表

Php 链接不同浏览器的单独/有条件/唯一样式表,php,jquery,css,Php,Jquery,Css,将gecko、opera、msie、webkit等指向它们自己的附加样式表的当前最佳实践是什么 浏览器嗅探失败了?我在网上找到的大部分都是2008年的旧帖子,或者是关于是非的理论争论,或者是如何使用等等 一定有更复杂的东西我们可以用。jquery或php上写着(伪代码),“IF moz,@import url(moz.css)”之类的东西。从useragent检测浏览器,并为该浏览器包含适当的css $browser = get_browser($_SERVER['HTTP_USER_AGENT

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

浏览器嗅探失败了?我在网上找到的大部分都是2008年的旧帖子,或者是关于是非的理论争论,或者是如何使用等等


一定有更复杂的东西我们可以用。jquery或php上写着(伪代码),“IF moz,@import url(moz.css)”之类的东西。

从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" />';
}
$browser=get\u browser($\u SERVER['HTTP\u USER\u AGENT',true);
开关($browser['browser'])){
案例“IE”://加载特定于IE的css
打破
案例“Firefox”:
案例“Mozilla”://加载特定于壁虎的css
打破
案例“Safari”://加载Safari css
打破
案例“Opera”://加载Opera css
打破
违约:
回声';
}

下面是一个on get_browser()函数

检测特定的浏览器是个坏主意,因为不同的版本可能有不同的功能,而您可能不知道这些功能。一个更好的解决方案是使用类似的方法来检测特征,并相应地设置样式

如果出于任何原因必须检测不同的渲染引擎,那么在PHP中,使用以下方法相对简单:


...

这看起来正是我需要的,但你能更具体一点吗?我对代码一窍不通。检测opera和gecko的确切代码片段是什么,并将它们指向它们自己的相关样式表?您必须使用类似get_browser的browser_info()函数($_SERVER['HTTP_USER_AGENT',true);您将了解它是什么类型的浏览器,但要使用此功能,您需要在脚本中做一些更改。据我所知,“switch”一词使我感到厌烦。这段代码将切换样式,但我只需要为某些浏览器添加一个附加样式表。@user1691389我更新了示例,以使其更加清晰<代码>开关
语句是许多编程语言中的常见功能–请查看更基本的解释!两个例子中的第一行都给出了错误。谢谢你们的帮助,伙计们,但我知道什么时候该辞职。我将只使用一个巨大的样式表,它不是世界末日。@user1691389它给出了什么错误?您需要设置php.ini设置,如手册所述:“为了使其正常工作,php.ini中的配置设置必须指向系统上browscap.ini文件的正确位置。”@user1691389我猜您使用的是共享主机或其他无法编辑php.ini文件的环境。如果是这样,您可以使用该项目来复制该功能。然后,将示例中的
get_browser
区域替换为
$bc=newbrowscap('path/to/cache')$browser=$bc->getBrowser();开关($browser['browser']){…
<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>