IEだけにCSSを適用

| コメント(0) | トラックバック(0)

CSSで擬似フレームにトライしていたところ、森下屋さんから情報をいただき、そこから派生しまして、IEだけにCSSを適用する方法をまとめてきました。
サンプルは記事の一番最後にあります。

アンダースコアハック

プロパティ名の先頭にアンダースコアを記述することでIEに適用することが出来ます。IE6のみでIE7には適用しません。

スターHTMLハック

属性の前に *html を記述することでIEのみに読み込ませることが出来ます。IE6のみでIE7には適用しません。
CSSの親子関係の解釈の違いでIEだけ適用されます。考え方はたぶんこういう考えだと思います。
スターハック

スターHTMLハック改

勝手に命名してますが(汗)、上のスターハックの仲間です。属性の前に *+html を記述することでIEのみに読み込ませることが出来ます。こちらはIE6ではなくIE7のみに適用します。

スターHTMLハックを組み合わせると、IE6、IE7、FirefoxとでCSSを別々に適用することが出来ます。

ただ、これはあくまでもハックなので、正道はないのか?と探すと

ありました。

コンディショナルコメント

マイクロソフトが推奨しているIEのみ読み込みさえるパースです。これを使って外部スタイルシートの読み込みをさせます。以下のように書きます。
IE6だけに読み込ませたい場合

<!--[if IE 6 ]>
<link rel="stylesheet" href="ieonly_ie6.css" type="text/css" />
<![endif]-->

IE7だけに読み込ませたい場合

<!--[if IE 7 ]>
<link rel="stylesheet" href="ieonly_ie7.css" type="text/css" />
<![endif]-->

CSSは上から順番に適用されるので、IE6、IE7の差分だけ別スタイルシートに出して、上のように読み込ませればOKです。

今回参考にさせていただいたサイト

IEだけに特別なCSSを適用させる方法
私が適当にまとめた「IEのみ系」CSSハック。
スターハック
コンディショナルコメント

サンプル

今回の確認のための使ったHTML、CSSのサンプルです。
サンプル

確認は、WindowsXP IE6、WindowsXP Firefox3、WindowsVista IE7 で行いました。Macは持ってないので確認してません。Macの結果をいただけたらうれしいです。

以下、サンプルのコードです。

ieonly.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<title>IEだけにCSSを適用</title>
<style type="text/css">
body {
 font-size:small;
}
div {
 height:60px;
 padding:10px;
 margin-bottom:10px;
}
h2 {
 margin:0px;
 padding:0px 0px 10px 0px;
 font-size:medium;
}
span {
 font-size:x-small;
 color:#aaaaaa;
 margin-left:5px;
}


#main1 {
 background:#ccffcc;/*緑*/
 _background:#ffff99;/*黄色*/
}


#main2 {
 background:#ccffcc;/*緑*/
}
*html #main2 {
 background:#ffff99;/*黄色*/
}


#main3 {
 background:#ccffcc;/*緑*/
}
*+html #main3 {
 background:#ffcc99;/*オレンジ*/
}


#main4 {
 background:#ccffcc;/*緑*/
}
*html #main4 {
 background:#ffff99;/*黄色*/
}
*+html #main4 {
 background:#ffcc99;/*オレンジ*/
}

#main5 {
 background:#ccffcc;/*緑*/
}
</style>
<!--[if IE 6 ]>
<link rel="stylesheet" href="ieonly_ie6.css" type="text/css" />
<![endif]-->
<!--[if IE 7 ]>
<link rel="stylesheet" href="ieonly_ie7.css" type="text/css" />
<![endif]-->
</head>
<body>

<div id="main1">
<h2>1.アンダースコアハック _</h2>
IE6:黄色/IE7:緑/Firefox:緑<br />
IE6のみ適用
</div>

<div id="main2">
<h2>2.スターHTMLハック *html</h2>
IE6:黄色/IE7:緑/Firefox:緑<br />
IE6のみ適用
</div>

<div id="main3">
<h2>3.スターHTMLハック改<span>勝手に命名…</span> *+html</h2>
IE6:緑/IE7:オレンジ/Firefox:緑<br />
IE7のみ適用
</div>

<div id="main4">
<h2>4.スターHTMLハックとスターHTMLハック改を組み合わせる</h2>
IE6:黄色/IE7:オレンジ/Firefox:緑<br />
IE6、IE7に適用
</div>

<div id="main5">
<h2>5.コンディショナルコメント</h2>
IE6:黄色/IE7:オレンジ/Firefox:緑<br />
IE6、IE7に適用
</div>

</body>
</html>

ieonly_ie6.css

#main5 {
 background:#ffff99;/*黄色*/
}

ieonly_ie7.css

#main5 {
 background:#ffcc99;/*オレンジ*/
}

トラックバック(0)

トラックバックURL: http://www.karakuriya.biz/mt/mt-tb.cgi/806

コメントする

ウェブページ

Powered by Movable Type 4.261

このブログ記事について

このページは、H.Imaiが2008年10月31日 09:28に書いたブログ記事です。

ひとつ前のブログ記事は「リモコンが動作しているか確認する方法」です。

次のブログ記事は「CSSでフッターを固定する」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。