2010年5月3日 星期一

讓IE系列瀏覽器也支援CSS3圓角,陰影:IE-CSS3.htc

IE, CSS3, Hack, Script

原文:ie-css3

IE-CSS3是什麼?

IE-CSS3是一段小型的Script,引入網頁的CSS之後可以使IE系列瀏覽器的使用者也看得到一些CSS3才有的新技術。ex:圓角、陰影等。


IE-CSS3是怎麼運作的?

該Script是透過VML(IE系列瀏覽器特有的向量繪圖語言)來模擬一些CSS3的效果。



如何使用?

一般我們設計可以讓FF、SA與GC等瀏覽器產生圓角效果的CSS如下:


註: FF=FireFox、SA=Safari、GC=Google Chrome
.box {
  -moz-border-radius: 15px; /* Firefox */
  -webkit-border-radius: 15px; /* Safari and Chrome *
}
若是要讓IE系列瀏覽器也可以支援這樣的效果,請再加入如下新行
.box {
  -moz-border-radius: 15px; /* Firefox */
  -webkit-border-radius: 15px; /* Safari and Chrome *

  border-radius: 15px; /* IE 6+  */
  behavior: url(ie-css3.htc); /* 使用ie-css3 */

}
註:url()中的路徑請參考自己的網站中的路徑。
效果展示:
我是示範的盒子
問題與解決辦法
使用者可以會在使用z-index屬性的時候遇到不正常顯示的問題,尤其是將一個套用了IE-CSS3的元素放在另一個之內的時候,以下有兩個方法解決:
  • 將內部的元素z-index值設定的比外圍的大。
  • 將內部的元素套用position屬性。
    ex:position:relative; position:absolute;
  • 4 則留言:

    1. 不知為何...
      我ie8這個效果出不來~
      可是chorme就可以@@
      好奇怪~

      回覆刪除
    2. 因為,IE8本來就不支援阿,文章最上面有說明,所以才需要另外使用IE-CSS3.htc。


      哈哈不過不用擔心,這些屬性是CSS3的規定,而且不太可能再被翻盤了,勇敢的用下去吧。

      另外,當你使用了以下這兩行
      -moz-border-radius: 15px;
      -webkit-border-radius: 15px;

      這三大瀏覽器都可以看到效果,FF、SA、GC。

      "註: FF=FireFox、SA=Safari、GC=Google Chrome "

      回覆刪除
    3. 不好意思 我貼了"behavior: url(ie-css3.htc);"這行 結果還是出不來~
      請問是有要再下載ie-css3.htc這個東東嗎~@@?

      回覆刪除
      回覆
      1. 是的。另外現在IE9 也已經支援這個屬性囉
        http://caniuse.com/#search=border-r
        所以,ie-css3.htc 這個過渡時期的東西,也可以不用了 ^^

        刪除