2012-04-24 7 views
1

申し訳ありませんが、この質問は重複しているように見えますが、私は、OSとは対照的に、ブラウザごとに条件付きCSSの周りに多くの疑問があることを見出しています。OSごとに異なるスタイルシートを読み込む

OSごとに異なるスタイルシートを読み込む方法はありますか? (私はMac上でピクセルウォーキングの背景を迂回しようとしている)。私は、Wordpressの子供向けテーマにうまく統合できるオプションが必要なのが望ましいだろう。

ありがとうございました!

答えて

1

最善の方法は、ユーザーエージェントによって分解し、別のスタイルシートを提供することです。使用している場合、これはPHPになります。 #

$_SERVER['HTTP_USER_AGENT'] 

http://php.about.com/od/learnphp/p/http_user_agent.htm

+0

ありがとうございました! PHPを使用して別のスタイルシートを読み込む方法を具体的に説明しているサイトやチュートリアルを知っていますか?残念ながらPHPを書くことはできません。 – AccountStackOverflow

+1

ここから始めたいと思います。 http://devzone.zend.com/6/php-101-php-for-the-absolute-beginner/具体的にはhttp://www.mywebtronics.com/give-browser-specificのユーザーエージェントでこれをご覧ください-css-files-with-php / – Ollie

0

私は数年前にこの同じ質問がありました。私は再び記事を見つけるにはしばらくを検索しなければならなかったので、ここの記事からのコードです:私はそれが役に立てば幸い

function get_broswer_stylesheet ($test_by = 'browser') 
{ 
    $broswer = array(
     'MSIE', // parent 
     'OPERA', 
     'MOZILLA', 
     'NETSCAPE', 
     'FIREFOX', 
     'SAFARI', 
     'CHROME' 
     ); 

    $os = array(
     'MAC', 
     'WINDOWS', 
     'LINUX' 
     ); 

    $info[browser] = 'OTHER'; 
    $info[os] = 'OTHER'; 

    $user_agent = $_SERVER['HTTP_USER_AGENT']; 

    foreach ($broswer as $parent) 
    { 
     $s = strpos(strtoupper($user_agent), $parent); 
     $f = $s + strlen($parent); 
     $version = substr($user_agent, $f, 5); 
     $version = preg_replace('/[^0-9,.]/', '', $version); 
     if (strpos(strtoupper($user_agent), $parent)) 
     { 
      $info[browser] = $parent; 
      $info[version] = $version; 
     } 
    } 

    foreach ($os as $parent) 
    { 
     if (strpos(strtoupper($user_agent), $parent)) 
     { 
      $info[os] = $parent; 
     } 
    } 

    if ($test_by == 'browser' || $test_by == 'os') 
    { 
     $string = '<link rel="stylesheet" type="text/css" href="' . get_bloginfo('template_directory') . '/css/'; 

     if ($test_by == 'browser') 
     { 
      if ($info[browser] == 'MSIE') { 
       switch ($info[version]) 
       { 
        case 9 : $string .= 'ie9.css'; break; 
        case 8 : $string .= 'ie8.css'; break; 
        case 7 : $string .= 'ie7.css'; break; 
        default: $string .= 'ie6.css'; break; 
       } 
      } elseif ($info[browser] == 'FIREFOX') { 
       $string .= 'firefox.css'; 
      } elseif ($info[browser] == 'SAFARI') { 
       $string .= 'safari.css'; 
      } elseif ($info[browser] == 'CHROME') { 
       $string .= 'chrome.css'; 
      } else { 
       $string .= 'style.css'; 
      } 
     } elseif ($test_by == 'os') { 
      if ($info[os] == 'MAC') { 
       $string .= 'mac.css'; 
      } elseif ($info[os] == 'WINDOWS') { 
       $string .= 'windows.css'; 
      } elseif ($info[os] == 'LINUX') { 
       $string .= 'linux.css'; 
      } else { 
       $string .= 'style.css'; 
      } 
     } 
     $string .= '">'; 

     return $string; 
    } 
} 

が。 $test_byパラメータをbrowserまたはosに設定すると、正しいスタイルシートを配信しようとします。

関連する問題