IE8でCSS3「CSS3 PIE」が動かない理由

この記事をシェアする

  • ツイッターでシェアする
  • facebookでシェアする
  • google+でシェアする
  • はてぶにブックマークする
IE8でCSS3「CSS3 PIE」が動かない理由

みなさんこんにちは。まりもです。
備忘録のつもりで適当に書いた記事ですが、思いのほか様々なサイトからリンクをもらいましたので、2012.08.21 少しだけリライトしました。

この記事を書いた2012.08.10時点では当サイトのリニューアルは未完成でしたが、現時点ではほぼ完了、リリースしています。

今回のリニューアルで、IE8以下のブラウザをほぼ切り捨てました。糞ブラウザなんで仕方ないですね。さっさと滅びて欲しいですねIE。
html5+CSS3で組んでみました。レスポンシブデザインにも対応しました。是非、ブラウザを伸び縮みさせて遊んで下さい。とはいえ当サイトはiPhone用サイトが別URLで存在しますので、あまり意味は無いんですけどね。自己満足でレスポンシブにしました。

まあリニューアル奮闘記はいいとして、ほぼ切り捨てたと言いましたが、さすがにIE8を捨てるのはどうかなと思ってるんです。XPの人まだいますし。XP厨も滅びて欲しいですけどね。
で、「CSS3 PIE」ってのを使って、IE8以下のブラウザにも対応させようと試みていました。

→CSS3 PIE: CSS3 decorations for IE

情報はどこにでも転がってるんで、ちゃんと設置して、
htmlファイルからのパスを書かないとダメとことだったので、ちゃんと絶対パスで書いて。

あ、一応使い方書いておきます。どんな人が見てるかもわからんので。ざっくり。

.ttl01{
behavior: url("/common/css/PIE.htc"); /*この一行書けばいい。そんだけ。ファイルはアップしてね。*/
border:1px solid #000;
padding:10px;
border-radius:10px;
-moz-border-radius:10px;
-webkit-border-radius:10px;
}

しかし、なぜか動作しない。
リロードすると、一瞬表示されてからどこかに飛んでいってしまうような感じで、要素ごと消えてしまう。

 

この症状、ぴーんと来た。昔なにかでなったことがある。

これは・・・positionがらみのバグ・・・!!!

 

って、いろいろ試してたら、

.ttl01{
behavior: url("/common/css/PIE.htc");
border:1px solid #000;
padding:10px;
border-radius:10px;
-moz-border-radius:10px;
-webkit-border-radius:10px;
position:relative; /* ぽじしょん りれーてぃぶ*/
}

position:relative; を指定したら正常に動作しました。

もし同じ症状の人がいたら試してみて下さい。

 

サーバーによっても動かないってことがあるみたいです。
.htaccessにaddtypeで

AddType text/x-component .htc

と書けばいいみたいです。