• 締切済み

スタイルシート

JavaScriptで、ユーザーエージェント別に読みこむCSSを変えたいのですがインターネット上にそういうスクリプトがありません。 具体的には、IE5.5以上とN6以上はstandard.cssを読みこみ、IE5以下やNN4.xはCSSを"読みこまない"というようにするのはどうすればいいのかよくわかりません。 よろしくお願いします。

  • sneke
  • お礼率35% (5/14)

みんなの回答

回答No.2

ちょっと長いですが,こんなものを書いてみました。 あんまりいろいろ見ずに書いたから,どこか間違ってるかも。 表示上,変なところで改行されちゃってるかもしれないので, 気をつけてくださいね。 ・・・って,もう解決してたりして。 念のため全角の"<"や">"で書いていますので,半角に直してください。 ~~~~~~~~~~~~~ <HTML> <HEAD> <SCRIPT LANGUAGE="JavaScript"> <!-- // このへんから var Navi = navigator.appName; alert(Navi.charAt(0)); if (Navi.charAt(0) == 'M'){ document.write(' <link REL="StyleSheet" TYPE="text/css" href="test1.css">'); } else if (Navi.charAt(0) == 'N') { document.write(' <link REL="StyleSheet" TYPE="text/css" href="test2.css">'); } // このへんまで //--> </SCRIPT> </HEAD> <BODY> <P>test</P> <SCRIPT LANGUAGE="JavaScript"> <!-- // これを参考に文字列の検索(バージョンの取得)を考えてください。 document.write('userAgent :' + navigator.userAgent + '<br>'); document.write('appName :' + navigator.appName + '<br>'); document.write('appCodeName:' + navigator.appCodeName + '<br>'); document.write('appVersion :' + navigator.appVersion + '<br>'); document.write('language :' + navigator.language + '<br>'); document.write('platform :' + navigator.platform + '<br>'); //--> </SCRIPT> </BODY> </HTML> ~~~~~~~~~~~~~ ちょっと古いですが,バージョンチェックのやり方は参考URLみたいなものがあります。 ページを2つ用意しておいて,バージョンチェックをしてから別々のページに飛ぶのもひとつの解決策ですかね。

参考URL:
http://www.ueda.info.waseda.ac.jp/~gaku/js/how032.html
  • Adams2001
  • ベストアンサー率67% (70/103)
回答No.1

スクリプトではないんですが(しかもNetscape4.x対策のみですが)。 Netscape4.xは@mediaにscreen以外を指定すると、その部分を丸々無視しちゃういことを利用して、スタイルシートを書くときに @media screen, print { <ここにスタイルを書く> } とやれば、このスタイルはNetscape4.xでは適用されません(@mediaがサポートされているブラウザ、IE5.5、IE6、Netscape6などでは画面表示と印刷の時に適用されます)。 実際には、Netscape4.xでも問題なく動作するスタイルは@mediaの外に書き(これは他のブラウザでも有効)、Netscape4.xでは上手く動作しないものを@mediaの中に入れてやるとよいでしょう。 body {background-color:#D3D3D3;color:#000000 } @media screen, print { body {background:#FFFFFF url('clie.gif') no-repeat;color:#000000} } 上の例は一旦背景色と文字色を与えておいて、@mediaでNetscape4.x以外に別の背景色と背景画像を与えています。実際にどう変わるかは参考URLを見て確認して見てください。

参考URL:
http://homepage1.nifty.com/dma/clie600/

関連するQ&A

  • CSSについて

    JavaScriptで、ユーザーエージェント別に読みこむCSSを変えたいのですがインターネット上にそういうスクリプトがありません。 具体的には、IE5.5以上とN6以上はstandard.cssを読みこみ、IE5以下やNN4.xはCSSを"読みこまない"というようにするのはどうすればいいのかよくわかりません。 よろしくお願いします。

  • スタイルシートの読み込みについて

    はじめまして。 最近業務でスタイルシートを使うことになったのですが、 外部ファイルとしてスタイルシートを保存して、 HTMLの中にリンクの部分を書いておいても、 IEで表示したときに読み込んでくれません。(IEのバージョンは6.0です。) インターネットオプションのユーザー補助のところで、ホームページを見る場合は自分のスタイルシートを適用する、という設定にすれば読み込んで表示されるのですが、それをしないと、表示されませんし、 その設定にしてあっても、外部シートの上書きをした場合、更新ボタンをおしただけでは画面が変わらず、 いちいちインターネットオプションのところで 更新をしないと、外部シートの変更が反映されません。 どこがおかしいか分からず困っています。 「XPのせいでは?」とも言われましたが、 そうなのでしょうか? ぜひご回答よろしくお願いいたします。 下はソースでリンクを書いてある部分です <html lang="ja"> <head> <title>SAMPLE</title> <link rel="stylesheet"href="detail_2.css" type="text/css"> <script type="text/javascript"> </head>

    • ベストアンサー
    • HTML
  • NN4のスタイルシート

    NetscapeNavigator4で、DTタグとDDタグにそれぞれスタイルシートを設定したいのですが、うまくできません。 スタイルシートはユーザーエージェント別に設定しているのでCSSファイルに記述していますが、インラインで指定してもダメなようです。 色とフォントサイズが設定できればいいだけなんですが・・・ 指定の仕方が分かる方おりましたら、ぜひ教えてください。お願いいたします。

    • ベストアンサー
    • CSS
  • IE5.5で、スタイルシートが有効になりません。

    PC98+Win95OSR2+IE5.5で、スタイルシートが有効になりません。 DOS/V+Win98SE+IE5.5の別PCでは、問題なくスタイルシートが効いている のですが・・・。 インターネットオプションのユーザー補助のところはチェックしました。 IE5.5では、他に設定するところはなさそうなのですが。 思えば、たしかIE3.01かIE4.0の時は、スタイルシートを使う・使わないの設定が あったと思うのですが、IE5.xではなくなりましたよね? それが影響しているのでしょうか?IE3.01の頃は、スタイルシートを無効に したりして使っていましたので。

  • ブラウザ/OS/バージョン別にスタイルシートを読み込む

    私の考え違いか わかるかた教えて下さい。 JavaScript例文辞典のブラウザ/OS/バージョン別にスタイルシートを読み込む http://www.openspc2.org/reibun/javascript/browser/013/index.html document.write("<link rel='stylesheet' type='text/css' href='../c_f/m_ta01.css'>");}によりスタイルシートを読み込む では、IEでは、ブラウザ/OS/バージョン別にスタイルシートを読み込む ことが出来ません。 SAFARIとGoogle Chromeでは、ブラウザ/OS/バージョン別にスタイルシートを読み込む ことが出来ますが。 JavaScriptで代替CSSを適用する方法 http://www.usamimi.info/~geko/arch_web/02_sample/018/index.html <link rel="stylesheet" href="../c_f/m_rn1o.css"> <link rel="alternate stylesheet" href="../c_f/o_ie01.css" title="ie"> <link rel="alternate stylesheet" href="../c_f/o_ta01.css" title="ta"> 上記3行の指定で代替スタイルの指定をJavaScriptで指定する では、IEやFIREFOXでは、ブラウザ/OS/バージョン別にスタイルシートを読み込む ことが出来ますが。 SAFARIとGoogle Chromeでは、ブラウザ/OS/バージョン別にスタイルシートを読み込む ことが出来ません。 何か簡単に、ブラウザ/OS/バージョン別にスタイルシートを読み込むことが 出来ませんか。

  • macかwinか判別しスタイルシートを振り分けたい

    こんにちは。 macかwinか判別して外部スタイルシートの読み込みを振り分けたいのですが、(mac.cssかwin.css)ご存知の方教えてください。 トップページはフレームになっていて、各コンテンツのページの文章をスタイルシートで設定しています。 この場合はスクリプトは各コンテンツのページにそれぞれ記述するのでしょうか? いろいろ調べましたが、ブラウザ別ばかりだったので・・・。 javascriptは初心者です・・。 どうぞよろしくお願いいたします。

  • JavaScriptをOFFでもWin, Mac, IE, NSでスタイルシートを振り分けるには?

    JavaScriptをOFFでもWin, Mac, IE, NSでスタイルシートを振り分けるにはどうしたら良いでしょうか。 現在は外部のJavaScriptファイルで、Windows, Machintosh, IE, NetScapeの四つのユーザーの環境に合わせて外部スタイルシートファイルを自動選択させるようにしているのですが、これではJavaScriptをOFFにして閲覧するユーザーでは、スタイルシートが効いていない状態になってしまうのです。トップページをCGIなどのサーバサイドスクリプトにしないといけないのでしょうか? どなたかお知恵をお借りできませんでしょうか。宜しくお願い致します。

  • 文字サイズの大中小について

    お世話になります。 今、ホームページを作成しているのですが… ホームページ上で、文字のサイズを簡単に切り替えられる様にしようと思い、探してみたところ、styleswitcher.jsというJavascriptがあったので貰ってきました。 http://alistapart.com/stories/alternate/ ここからstyleswitcher.jsをいただいてきました。 文字の大きさが大、中、小になるように.cssファイルを3つ作り、拡張子.cssはcssフォルダに、拡張子.jsはjsフォルダに分けていれています。 <head> <script type="text/javascript" src="js/styleswitcher.js"></script> <link href="css/main_small.css" rel="stylesheet" type="text/css" title="small" /> <link href="css/main_normal.css" rel="stylesheet" type="text/css" title="normal" /> <link href="css/main_large.css" rel="stylesheet" type="text/css" title="large" /> </head> という風に、ヘッダーのところにリンクを貼りました。 IE、Firefox、Opera、safari(windows用)では、動作確認が出来たのですが、NN7だけが動きませんでした。 設定を確認したところ、Javascriptを有効にするにはチェックがついていました。 設定のところでOKを押してから、切り替えボタンを押すと文字サイズが切り替えられるのですが、違うページに移動してしまうとその機能は動きません。 正直、Javascriptについての知識は全くなく、何がおかしいのか検討も付きません。 googleで何か情報がないか探してみたのですが、Firefoxに問題がある文章はいくつか見かけたのですが、NNに関する情報は見つけられませんでした。 各ブラウザにもいろいろ特徴があるから、動かなくても仕方ないのかな? でも、NNユーザーの為にも何とかしたいなぁと思いますし、一体どうしたら良いのか困ってます。 大変申し訳ないのですが、どなたかアドバイスをいただけませんでしょうか?よろしくお願いします。

  • スタイルシート line-heightのバグ?

    ホームページの中で、行幅をあけるのに、line-heightを使っています。 簡潔なタグは以下の通りです。 <html> <body> <span style="font-size:13px; line-height:160%;"> <img src="image/point.gif" border=0 width=6 height=8 alt="">てすと1<br> <img src="image/point.gif" border=0 width=6 height=8 alt="">てすと2<br> </span> </body> </html> 「てすと1」「てすと2」の前に小さな画像を入れています。 WinXP、NN4.XやN7.Xで見た場合は、画像が入っていても問題なく行幅が開きますが、 WinXP、IE6.02で見ると、line-heightが効きません。 これはIEのスタイルシートバグなのでしょうか? また、打開方法ありましたらお願いします! (参考まで:テーブルタグを使いたくないのでline-heightで行間をあけています)

    • ベストアンサー
    • HTML
  • ブラウザが判別出来ない。

    お世話になっております。 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>