IE下位バージョンでもCSS3のborder-radiusやbox-shadow、linear-gradientなどを利用できる便利なPIE.htc。
今回はこのPIE.htcファイルの基本的な設置方法から、動かない時の対処法まで簡単にまとめて紹介いたします。
PIE.htc で利用できるプロパティ
PIE.htcを使うことで、以下の有名どころのCSS3プロパティがIE下位バージョンでも利用できるようになります。
・border-radius
・box-shadow
・linear-gradient
・box-shadow
・linear-gradient
※IE-CSS3.htcとの大きな違いは、
text-shadowが利用できない分、グラデーション(linear-gradient)を利用できる、という感じでしょうか。※その他の利用可能なプロパティは、以下の参考ページも合わせてご覧下さい。
Supported CSS3 Features – CSS3 PIE: CSS3 decorations for IE
PIE.htc ファイルのダウンロード
以下のページよりPIE.htcファイルをダウンロードします。https://github.com/lojjic/PIE/downloads
CSS 内への PIE.htc の設置例
以下のコードは「角丸のborder-radius」と組み合わせた例ですが、IEのビヘイビア機能を利用してHTCファイルをHTML上で使用できるようにします。
|
1 2 3 4 5 6 7 8 |
.box { -moz-border-radius:10px; -webkit-border-radius:10px; border-radius:10px; /*PIE.htc を利用*/ behavior: url(./PIE.htc); } |
behaviorにはPIE.htcファイルへのパスを記述します。
PIE.htc が動かない場合の対処法
上記例のような記述だけでは動かないことがよくあります( ´,_ゝ`) ので、その場合は以下の3つのポイントに注意してソースを見直すなどしてみましょう。(1)PIE.htc を絶対パスにする
behaviorで指定するPIE.htcファイルへのパスを「絶対パス」にする方法です。
|
1 2 3 4 5 6 7 8 |
.box { -moz-border-radius:10px; -webkit-border-radius:10px; border-radius:10px; /*絶対パスで記述*/ behavior: url(http://www.sample.com/PIE/PIE.htc); } |
相対パスで階層がズレていると「IEだけページが見れない(404 Not Found)」なんて事態に陥る場合がありますので、個人的な経験則から、出来れば「絶対パス」で指定した方が安全かなと思います。
(2)PIE.htc を適用する要素に position:relativeを適用
PIE.htc ファイルを使う要素内でposition:relativeを指定します。
|
1 2 3 4 5 6 7 8 9 |
.box { -moz-border-radius:10px; -webkit-border-radius:10px; border-radius:10px; /*position:relative の指定*/ position:relative; behavior: url(http://www.sample.com/PIE/PIE.htc); } |
position:relativeを置く事でレイアウトが崩れる問題がなければ概ねこの方法で解決します。
(3)htaccess ファイルの編集
サーバによっては「.htc の拡張子を認識しないがためにPIE.htcが動かない」場合があるようですので、.htaccessファイルに以下のコードを記述してサーバにアップし、|
1 |
AddType text/x-component .htc |
.htc の拡張子をテキスト形式であることを示してあげます。
PIE.htc を使ったサンプル
PIE.htcを利用したIE8 以下向けのサンプルは、border-radius、box-shadow、linear-gradientに絞ってこちらの記事に掲載していますので、合わせて参考にしてみてください。


コメント