注意点,ブラウザ振り分け

注意点

ブラウザによる振り分け

除 WinIE3
<LINK rel="stylesheet" type="text/css" href="x.css">
<LINK rel="stylesheet" type="text/css" href="dummy.css">

WinIE3は、基本的に一番下しか読み込まない。外部ファイルが見つからない場合におかしな処理をするブラウザ(NC4, WinIE3)があるので、ダミーも必ず実在するファイルにする。

※ 具体的には、「ファイルが見つからない」というエラーになってしまいます。サーバ上のファイルでないと報告されないので、適当なコメントを書いたダミーファイルを、忘れないうちに確保しておいた方が良いかもしれません。* 存在しない外部ファイルにリンクしたHTMLファイルのサンプル

使い方のまとめもご覧下さい。

除 NC4
<LINK rel="stylesheet" type="text/css"
         href="x.css" media="all">
<LINK rel="stylesheet" type="text/css"
         href="x.css" media="print">
<STYLE type="text/css" media="all">
<STYLE type="text/css" media="screen,tv,print">

media属性にscreen以外の値を指定すれば読み飛ばされる。

除 NC4 & WinIE3
<STYLE type="text/css">
<!--
@import url(x.css);
@import url("y.css"); /* 「"」で括るとMacIE4.5は認識しない */
@import url('z.css'); /* 「'」で括るとMacIEは認識しない */

Netscape6, MacIE3以降, WinIE4以降は対応している。

除 IE3 & IE4.0 & NC4
<STYLE type="text/css">
<!--
@import "x.css";
@import 'y.css'; /* 「'」で括るとMacIEは認識しない */

Netscape6, MacIE4.5以降, WinIE5以降は対応している。

除 IE3 & IE4 & NC4
<STYLE type="text/css">
<!--
.myClass { color: red }

...

<P class="myClass dummy">

スペースで区切って、複数のクラス名を付ける。Netscape6, IE5以降は対応している。

除 IE3 & IE4 & NC4 & MacIE5
<STYLE type="text/css">
<!--
BODY { background-color: white;color: black }
@media screen {
 BODY { color: green }
}
@media screen, print {
 BODY { background-color: yellow }
}

Netscape6, WinIE5以降は対応している。

除 IE3 & IE4 & NC4 & WinIE5/6
<STYLE type="text/css">
<!--
@import url("x.css") all;
@import url("y.css") screen, print;

Netscape6, MacIE5は対応している。引用符(")を用いなければMacIE4.5でも認識し、アポストロフィー(')で括るとIEは認識しなくなる。

除 IE3 & IE4 & IE5/6 & NC4
<STYLE type="text/css">
<!--
@import "x.css" all;
@import 'y.css' screen, print;

Netscape6は対応している。

除 IE4以降
<LINK rel="stylesheet" type="text/css"
         href="x.css" disabled>
<STYLE type="text/css" disabled>

disabled論理型属性によって適用されなくなる。ただし、IE独自拡張。

※ MAC版は4.5以降。

除 WinIE5x以外
<!--[if IE 5 ]>
  <LINK rel="stylesheet" type="text/css" href="x.css">
  <STYLE type="text/css">
    BODY { background-color: white;color: black }
  </STYLE>
<![endif]-->

WinIE5は正しくコメントとして扱わない。この場合、<!-- STYLE要素の内容 -->としてはいけない。

除 WinIE5以降以外
<!--[if gte IE 5 ]>
  <LINK rel="stylesheet" type="text/css" href="x.css">
  <STYLE type="text/css">
    BODY { background-color: white;color: black }
  </STYLE>
<![endif]-->

WinIE5以降は正しくコメントとして扱わない。この場合、<!-- STYLE要素の内容 -->としてはいけない。

除 WinIE5.5以降以外
<!--[if gte IE 5.5000 ]>
  <LINK rel="stylesheet" type="text/css" href="x.css">
  <STYLE type="text/css">
    BODY { background-color: white;color: black }
  </STYLE>
<![endif]-->

WinIE5.5以降は正しくコメントとして扱わない。IE 5.5ではなく、IE 5.5000にする。この場合、<!-- STYLE要素の内容 -->としてはいけない。

NC4.xのリサイズバグ対策
<SCRIPT LANGUAGE="JavaScript1.2">
<!--
/**
 * resize.js 0.3 970811
 * by gary smith
 * js component for "reloading page onResize"
 */

if(!window.saveInnerWidth) {
  window.onresize = resizeIt;
  window.saveInnerWidth = window.innerWidth;
  window.saveInnerHeight = window.innerHeight;
}

function resizeIt() {
    if (saveInnerWidth < window.innerWidth || 
        saveInnerWidth > window.innerWidth || 
        saveInnerHeight > window.innerHeight || 
        saveInnerHeight < window.innerHeight ) 
    {
        window.history.go(0);
    }
}
//-->
</SCRIPT>

ネットスケープのサイトで提供されているリサイズされたらリロードするスクリプト。外部ファイルにする場合、NN3は、MIMEタイプを設定しておかないと拡張子がjsのファイルを表示してしまいます。language属性も無視されるので、HTMLファイルに直接埋め込んだほうが良いと思います。MIMEタイプを設定できるのであれば、.htaccessに以下のように追加します。

AddType application/x-javascript js