ブラウザ毎に外部CSSファイルでデザイン変更する方法

このQ&Aのポイント
  • インターネットエクスプローラーを別の外部CSSファイルでデザイン変更する手順を教えてください。
  • $ua変数にHTTP_USER_AGENTを代入し、IEかどうかを判定し、それに応じて適切なCSSファイルを選択する方法があります。
  • どこにコードを追加するかわからない場合は、必要な箇所に上記のコードを追加してください。
回答を見る
  • ベストアンサー

ブラウザ毎に外部CSSファイルでデザイン変更したい

CGIソースファイル http://www.loplopland.com/test/newfile.html このCGIでインターネットエクスプローラーだけ別の外部CSSファイルでデザイン変更したいんですが、どのようにしたらいいでしょうか? 別のところで $ua = $ENV{'HTTP_USER_AGENT'}; if (index($ua, "compatible; MSIE") >= 0) { $stylebase = "stylebase_IE.css"; } else { $stylebase = "stylebase.css"; } を入れたらいいと言われたんですが、どこにどう入れたらいいかいまいちわかりませんでした。

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

基本的には出力されるhtmlのheader処理前にあればどこでもOKでしょう。 get_agentでブラウザを判定しているけれど、ここにいれると逆順になっちゃいますね。 header内でstylesheetを設定している部分に直接いれれば良いのでは? ただし、ご質問のコードを入れただけでは、$stylebaseがセットされるだけで出力には反映されませんから、出力部分も修正する必要があります。 ($を入れるだけだけど) 関係ないところで聞くよりも、作成者のところにサポートコーナーがちゃんと設けられていますから、そちらで質問なさったほうが良いのでは?  http://www.kent-web.com/support/index.html 質問のカテゴリーもjavasucriptではなくperlまたはCGIのほうが適切です。

関連するQ&A

  • ユーザーエージェント IE6のブラウザ判別について

    調べているんですが、解決に至らず… 教えていただけると助かります! phpで、ブラウザ判別(ユーザーエージェント)を行い、IE6の場合のみ別ページへジャンプさせています。 全てというわけではないのですが、IE7でもIE6と認識される場合があり、困っています。 スクリプトは以下のとおりです。 <?php $user_agent = $_SERVER['HTTP_USER_AGENT']; $msie6 = ereg('Mozilla/4.0 (compatible; MSIE 6.0)', $user_agent); if ($msie6) { include( "http://○○/attention" ); } else { ?> <html>~ IE7のブラウザのうち、IE6と認識されるブラウザの法則性は分かりません。 いろいろと調べてみましたが、辿りつかず、類似の解説があれば教えてください。 また、上記スクリプトがおかしい点ありましたら教えてください! よろしくお願いします!

    • ベストアンサー
    • PHP
  • 携帯端末認識User-Agentについて

    初心者なのですが、CGIで携帯サイトを作っていますが。 実機がうまく動きません。User-Agentに問題があると考えています。 現在のソースと主な現象を記しますので、適切なものを教えて下さい。お願いします。 #----------# # 端末認識 # #----------# sub useragent { my $ua; #次にi-mode端末かどうかチェック if ($ENV{'HTTP_USER_AGENT'} =~ /^DoCoMo\/\d/) { $ua = 1; #次にJ-Phone端末かどうかチェック } elsif ($ENV{'HTTP_USER_AGENT'} =~ /^J-PHONE\/\d/) { $ua = 2; #EZweb端末かどうかチェック } elsif (($ENV{'HTTP_USER_AGENT'} =~ 'UP.B') && ($ENV{'HTTP_X_UP_SUBNO'} ne "")){ $ua = 3; #その他はPCとする } else { $ua = 0;} #PCブラウザ再判定 if ($ENV{'HTTP_USER_AGENT'} =~ /Mozilla\/|MSIE|Netscape|Opera|Lynx|AOL|Gecko/) {$ua = 0;} return $ua; } 主な現象 AU:ページ表示ごとに、いちいちブラウザメニューからページ更新をしなければならない(AUの特性もありますが) ソフトバンク:携帯版ではなく、PC版が表示されてしまう。 ドコモ :Pは問題ないようだが、SHは会員登録画面のフォームが半分の項目しか表示されず、次のページで残りの半分 は表示されるが、フォームにすべて書き込んで、登録送信をクリックしても、エラーデータ、の表示が出る。

    • 締切済み
    • CGI
  • CSSのデザインがうまくいきません

    表示ファイル http://www.loplopland.com/newfile.html CSSファイル http://www.loplopland.com/sample_l_180_490.css この外部CSSで直したいところは 1.フッターの上の部分に余白ができてしまったので消したい。 2.メイン表示部分が下までバックグラウンドイメージを表示したい。 以上の2点を改善したいんですが、うまくいきません。 どのように直したらいいかご教授下さい。 おねがいします。

    • ベストアンサー
    • CSS
  • CGIにてソフトバンクがPCとして認識されます。

    掲示板のCGIなのですが、ソフトバンクではPC画面へ飛ばされてしまいます。下記の部分あたりではないかと思うのですが、書き直しで解決できるのでしょうか?このCGIを使いたいので、お願い致します。 #▼ホスト名・UA取得 $HOST = $ENV{'REMOTE_HOST'}; $ADDR = $ENV{'REMOTE_ADDR'}; $UA = $ENV{'HTTP_USER_AGENT'}; $SN = $ENV{'HTTP_X_UP_SUBNO'}; if ($UA =~ /^DoCoMo\/\d/) { $AGEN = "i-mode"; }elsif ($UA =~ /^Vodafone\/\d/) { $AGEN = "Vodafone"; }elsif (($UA =~ 'UP.B') && ($SN ne "")){ $AGEN = "AU"; }else { $AGEN="PC";} if ($UA =~ /Mozilla\/|MSIE|Netscape|Opera|Lynx|AOL|Gecko/) {$AGEN="PC";} if ($HOST eq '') { $HOST = $ADDR; } if ($HOST eq $ADDR) { $HOST = gethostbyaddr(pack('C4',split(/\./,$HOST)),2) || $ADDR; }

    • 締切済み
    • CGI
  • HTTP_USER_AGENTの変更の仕方

    宜しくお願い致します。 私のHTTP_USER_AGENTが (Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; .NET CLR 1.1.4322) なのですが、このHTTP_USER_AGENTを変更する方法はあるのでしょうか? ある掲示板を見ていて、好きな文字に変えたりしていたのでどうやってやるんだろう? と疑問に思っています、ご存知の方いましたら教えて下さい、宜しくお願いします。

  • ホームページの外部CSSが読み込まれません。

    HP制作初心者です。 HPテンプレートを使い、それを加工してHPを制作したのですが、 これまで問題なく表示されていたHPが、最近になってIEのみで 外部CSSの一部が読み込まなくなってしまいました。 (外部cssの temcss/share/css/share は読み込んでいるようなのですが、それ以外の         temcss/index/css/index が読み込めていないように感じます。) ちなみに、ファイアーフォックスなどでは、表示に問題ありません。 IEの開発者ツールを使って、ドキュメントモードを変更してみたところ、 IE7であればほぼ問題なく表示されましたが、IE8以降だと崩れました。 一応、応急処置的に <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/> などを使う方法は教えていただいたのですが、 新しいバージョンと若干表示のされ方が異なるため、 根本的に直す方法をおわかりになる方、お教えいただけませんでしょうか。 HPURLを記載致しますので、よろしくお願い致します。 HP URL  http://kapra.jp/

    • 締切済み
    • CSS
  • HTMLでPHPを呼び出す方法

    スタイルシートを使ってページのレイアウトを構成しているのですが、ブラウザによって多少のズレが発生します。 そこで多少でも緩和する為に、ブラウザによってCSSファイルを切り替えるようにしました。 ファイル名:css.php ================================== <?php // デフォルトCSS $default_css = "./css/index1.css"; //ブラウザの確認 $bw = $_SERVER['HTTP_USER_AGENT']; if (preg_match("/MSIE/", $bw)) { $default_css = "./css/index1.css"; // MSIE } else { $default_css = "./css/index2.css"; // 上記以外のブラウザ } //設定の書き出し echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"$default_css\">\n"; ?> ================================== トップページはPHPなので <?php include("css.php"); ?> で 簡単に呼び出せたのですが、 これを他のHTMLやCGIページで呼び出す方法を教えてください。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • ブラウザ毎の振り分け

    .htaccessを使って振り分けをしたいのですが、ネットを参考に書いてもサーバーでエラーを起こして困っています。たぶんどこかが違うんだと思うんですが… # .htaccess ここから # 携帯とPCを判別 # 携帯はkeitaiフォルダに移動 PCはPCフォルダに移動 # Options -Indexes # < IfModule mod_rewrite.c> # Internet Explorer 6 RewriteCond %{HTTP_USER_AGENT} Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; GTB6.6; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) RewriteRule ^$ /ie6-8/ [R] # Internet Explorer 7 RewriteCond %{HTTP_USER_AGENT} Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; GTB6.6; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) RewriteRule ^$ /ie6-8/ [R] # Internet Explorer 8 RewriteCond %{HTTP_USER_AGENT} Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6.5; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) RewriteRule ^$ /ie6-8/ [R] # < /IfModule> # .htaccess ここまで と書いてます。テストはninjaのホームページスペースで行ってますが、本番は桜サーバーです。 新しく作ったページがHTML+CSS3なのでIE9を除きIEからのアクセスは同サーバー内のie6-8フォルダに飛ばしたいのです。このフォルダには、古いページを入れておきます。新しいページに非対応なブラウザは旧ページに誘導したいのです。 いっそのこと、「HTML5+CSS3非対応ブラウザからのアクセスは全員こちらへ」と命令できれば良いのですが、それは無理だと思うので個別指定でいこうと思ってます。 .htaccessでブラウザ毎にリダイヤルする方法を教えてください!

    • ベストアンサー
    • HTML
  • cssの外部ファイルの方法について

    よろしくお願いします。 cssを外部ファイルにしたいのですが方法が分かりません。 ご指導の程よろしくお願いします。 まず、Wというフォルダがあります。その中にaというフォルダがあり、その中にindex.htmlがあります。(直下に置けないためにこのようにしてあります。) 次にやはり、Wフォルダの中にbというフォルダがあり、その中にtest.htmlがあります。 index.htmlもtest.htmlにもそれぞれ<head>~</head>にcssの記述をしております。 これを、メモ帳に写して外部ファイルとしたいのですが方法が分かりません。 どなた様か、ご指導の程よろしくお願いします。

    • ベストアンサー
    • HTML
  • CSSでのデザイン崩れ改善方法

    表示ファイル http://www.loplopland.com/newfile.html CSSファイル http://www.loplopland.com/sample_l_180_490.css この外部CSSで直したいところは 1.フッターの上の部分に余白ができてしまったので消したい。 2.メイン表示部分が下までバックグラウンドイメージを表示したい。 以上の2点を改善したいんですが、うまくいきません。 どのように直したらいいかご教授下さい。 おねがいします。

    • ベストアンサー
    • HTML

専門家に質問してみよう