• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CSSをブラウザ別に振り分ける方法)

CSSをブラウザ別に振り分ける方法

kokucho81の回答

  • ベストアンサー
  • kokucho81
  • ベストアンサー率61% (157/255)
回答No.1

var agt=navigator.userAgent.toLowerCase(); var nav=navigator.appName.charAt(0); var fName; if (agt.indexOf("mac")!=-1) { // mac if(nav=="M") fName = "mac_ie.css"; if(nav=="N") fName = "mac_ns.css"; } else if (agt.indexOf("win")!=-1) { // win if(nav=="M") fName = "win_ie.css"; if(nav=="N") fName = "win_ns.css"; } else { // ?? 他のOS } if (fName != null) { document.write("<LINK REL=STYLESHEET HREF='"+fName+"' TYPE='text/css'"); }

eggchoco
質問者

補足

kokucho81さん、ありがとうございます。助かりました。 さっそく試したところ、無事振り分けることができました。 でも、一つ問題があるのです。 このスクリプトを記述したファイル自体をMACのNS4.7で表示させると ちゃんとスタイルシートは読み込まれるのですが、 フレームセットファイルの一フレームとして読み込むと、 スタイルシートを読み込んだり読み込まなかったりします。 読み込まない場合の方が多いです。 フレームセットファイルには、特別なことは記述していません。 対応策をご存じでしたら是非教えていただけると嬉しいです。 よろしくお願いします。

関連するQ&A

  • ブラウザが判別出来ない。

    お世話になっております。 JavaScriptの本を購入しました。 その本にブラウザ判定のスクリプトが掲載されており、それをそのままアップしたところ、私はIE6なのにIE4と判別されてしまいました。 下記がそのスクリプトです。 ちなみに、私はXPのIE6です。 このスクリプトはこれで完璧なのでしょか? また、出来ましたら、このスクリプトを試していただけたらと思うのですが・・・よろしくお願い致します。 <script language="JavaScript"> <!-- if( navigator.appVersion.charAt(0)==4){window.location.href = "nn4.html"} // NN Ver4 の場合 if( navigator.appVersion.charAt(0)==5){window.location.href = "nn5.html"} // NN Ver5 の場合 if( navigator.appVersion.charAt(0)==6){window.location.href = "nn6.html"} // NN Ver6 の場合 } if( navigator.appName.charAt(0)=="M"){ if( navigator.appVersion.charAt(0)==2){window.location.href = "ie2.html"} // IE Ver2 の場合 if( navigator.appVersion.charAt(0)==3){window.location.href = "ie3.html"} // IE Ver3 の場合 if( navigator.appVersion.charAt(0)==4){window.location.href = "ie4.html"} // IE Ver4 の場合 if( navigator.appVersion.charAt(0)==5){window.location.href = "ie5.html"} // IE Ver5 の場合 if( navigator.appVersion.charAt(0)==6){window.location.href = "ie6.html"} // IE Ver6 の場合 } //--> </script> <noscript>JavaScript を使用しています。JavaScript を有効にしてください。</noscript>

  • JavaSciptを外部ファイルとして複数htmlファイルで利用したい

    JavaScriptでos、ブラウザ毎にフォントを一定化するスタイルシートをつくりました。このJavaSciptを外部ファイルにして複数のページから読み込ませるようにしたいのですが、XXX.jsファイルを読み込ませるための方法が分かりません。jsファイルの外部リンクの方法、またそれをhtmlページ内で適応させるためのタグも教えてください。 ちなみに今までは全ページに <script language="JavaScript"> <!-- mac=(navigator.appVersion.indexOf('Mac')!=-1)?true:false; ie=(navigator.appName.charAt(0)=="M")?true:false; document.write("<STYLE TYPE='text/css'><!--") if(mac){ //FOR MACINTOSH IE NS document.write(".e9{font-size:9px}") document.write(".e10{font-size:10px}") document.write(".e12{font-size:12px}") document.write(".j9{font-size:9px}") document.write(".j10{font-size:10px}") document.write(".j12{font-size:12px}") (中略) //--> </script> を記載し、それぞれ<div class="e12">~</div>で挟んでいました。

  • Macfirefox3とMacfirefox2以下でCSSを切り替えたい

    MacのFirefox3は、Firefox2までとはデフォルトフォントサイズが 違うので、Firefox3とそれ以外のFirefoxで分けたいです。 今まで、CSSを以下のスクリプトでブラウザ別に分岐していました。 MacのFirefox3の分岐を増やしてみたのですが、それ以外のFirefoxのCSSに 分岐されてしまいます。 あまりJavascriptに明るくないので、 どうしてわかれてくれないものか困っています。 どうぞお知恵をお貸し下さい! ↓以下、かいてみたソースです。 var Win=(navigator.userAgent.indexOf("Win")!=-1); var Mac=(navigator.userAgent.indexOf("Mac")!=-1); var Explorer=(navigator.appName.indexOf("Explorer")!=-1); var Firefox=(navigator.userAgent.indexOf("Firefox") !=-1); var Netscape=(navigator.appName.indexOf("Netscape")!=-1); var opera=(navigator.userAgent.indexOf("Opera")!=-1); var safari=(navigator.userAgent.indexOf("Safari")!=-1); var Version=navigator.appVersion.charAt(0); if(safari){ document.write('<LINK rel="stylesheet" href="/css/mac_safari.css" type="text/css">'); } else if(Win && Explorer && Version=="6"){ document.write('<LINK rel="stylesheet" href="/css/win_ie.css" type="text/css">'); } else if(Win && Firefox){ document.write('<LINK rel="stylesheet" href="/css/win_ie.css" type="text/css">'); } else if(Win && opera){ document.write('<LINK rel="stylesheet" href="/css/win_ie.css" type="text/css">'); } /*増やしたところ*/ else if(Mac && Firefox && Version=="3"){ document.write('<LINK rel="stylesheet" href="/css/mac_safari.css" type="text/css">'); }/*増やしたところ終わり*/ else if(Mac && Firefox){ document.write('<LINK rel="stylesheet" href="/css/mac.css" type="text/css">'); } else if(Mac && opera){ document.write('<LINK rel="stylesheet" href="/css/mac_safari.css" type="text/css">'); } else if(Win && Netscape && Version=="4"){ document.write('<LINK rel="stylesheet" href="/css/win_nn.css" type="text/css">'); } else if(Mac && Explorer && Version=="5"){ document.write('<LINK rel="stylesheet" href="/css/mac_safari.css" type="text/css">'); } else if(Mac && Netscape && Version=="7"){ document.write('<LINK rel="stylesheet" href="/css/mac.css" type="text/css">'); } else if(Mac && Netscape && Version=="4"){ document.write('<LINK rel="stylesheet" href="/css/mac.css" type="text/css">'); } else{ document.write('<LINK rel="stylesheet" href="/css/font.css" type="text/css">'); }

  • なぜ「ページでエラーが発生しました。」?

    字数が限られているので、「なぜエラーなのですか?」 -----ここからhead区間 <!--JavaScript Function window.onerror = null; var ver4 = (navigator.appVersion.charAt(0) >= "4"); var NN4 = ver4 && (navigator.appName.charAt(0) == "N"); var IE4 = ver4 && (navigator.appName.charAt(0) == "M"); var NN3 = ((navigator.appVersion.charAt(0) == "3") && (navigator.appName.charAt(0) == "N")); if(NN3 || NN4 || IE4){ var img_b = new Array(); img_b[0] = new Image(); img_b[0].src = "kbw.jpg" img_b[1] = new Image(); img_b[1].src = "ao.jpg" img_b[2] = new Image(); img_b[2].src = "bcw.jpg" img_b[3] = new Image(); img_b[3].src = "sm.gif" } function B_in(nam,num){ if(NN3 || NN4 || IE4) document.images[nam].src = img_b[num].src; } function B_out(nam,num){ if(NN3 || NN4 || IE4) document.images[nam].src = img_b[num].src; return false; } // END ---> </SCRIPT> </head> -----ここからbody <BODY onLoad="time(0)"> <SCRIPT LANGUAGE="JavaScript"> <!--- ここから表示 document.write(TodayIMG(0)); //end ---> </SCRIPT>

  • document.write が作動してくれません!

    /* ブラウザが 「IE Version 5 以上」 または 「Netscape Navigator Version 4 以上」 のときに文字列を出力するつもりで、以下のscriptを書きましたが、IE Version 6 のパソコンで文字列が出力されません。 (エラーにはなりません。インターネット・セキュリティは既定レベルの「中」です。) 何が間違いなのかお教えくださいませ。 <script type="text/javascript"> <!-- if ( ( (navigator.appName.indexOf("Microsoft") >=0)&&(navigator.appVersion.charAt(0) >4) ) || ( (navigator.appName.indexOf("Netscape") >=0)&&(navigator.appVersion.charAt(0) >3) ) ) { document.open(); document.write("「パソコン申し込み」 では、入力していただいた貴下の個人情報を送信する際に、情報の暗号化をおこないます。"); document.close(); } //--> </script> */

  • CSSとMacの関係

    CSSの制御で、 外部CSS マック用に css/style_mac.css に body {font-size: 12pt;} td {font-size: 12pt;} ウイン用に css/style_win.cssに body {font-size: 10pt;} td  {font-size: 10pt;} と記述しています。 がプラウザで確認したところ、 windows IE5.0は制御されていますが、 Mac IE5.0で制御されません。 HTMLの呼び出しは、 <SCRIPT LANGUAGE="JavaScript"> <!-- if(navigator.appVersion.indexOf("Mac",0) != -1){ document.writeln('<link rel="stylesheet" type="text/css" href="css/style_mac.css">'); } else { document.writeln('<link rel="stylesheet" type="text/css" href="css/style_win.css">'); } //--> </SCRIPT> と記述しています。 そもそもjavaがわからないので どこを直せばMacでも制御されるのでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • ブラウザ判定

    xpの時に作ったJavascriptを試してみたんですが、今win7,IE11なんですが、 brws = navigator.appName; alert(brws) ; をすると、netscapeと返します。 今はもういろいろと、ソースが変わってしまったのでしょうか? また新しい本を買って学びなおす必要がありますか?もしまた組むとしたら。

  • MacのIEで同じに見える文字のCSSを教えてください。

    WinのIEで文字に12pxのCSSを当てているのですが MacのIEで見ると、文章の横幅が大きくなってしまいます。 javascriptでWinとMacを振り分けてCSSを当てているんですが 同じに見えるMac用のCSSを教えてください。 ※Macの12pxとWinの80%は同じでした。  Winの12pxはMacの何に当たるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • HTML
  • CSSをMacとWinIEとそれ以外に分けたい

    スタイルシートをMacとWinIEとそれ以外に分けて読ませようとしています。 navigator.userAgent で Mac とそれ以外に分け 次に appName で IE とそれ以外に分け CSS を読み込ませるようにしたのですが Opera だと appName で IE と判断されることもあるようです。 参考↓ http://www.red.oit-net.jp/tatsuya/java/browser/bs_ie6.htm なにかいい知恵がありましたら教えていただけないでしょうか? よろしくお願いします。

  • ブラウザを調べて分岐させる方法

    こんにちは。 Javascriptでユーザーの閲覧環境(OS、ブラウザ)によって 違うページを見せたいんです。 Win・Macの違いについては <script language="JavaScript"> var ua = navigator.userAgent if( ua.indexOf("Mac") != -1 ){ location.href = 'mac_home.html' } else { location.href = 'win_home.html' } </script> で解決したのですが、IE、NNでの分岐のかけ方がわかりません。 同じような方法でできるらしいのですが、何度やっても失敗してしまって、 NNで閲覧しているのに、elesで指定したURLにジャンプしてしまったりします。 どなたかわかる方がいらっしゃいましたら教えてください。 お願いします。