pie.htc可以使ie支持哪些css3属性

html-css016

pie.htc可以使ie支持哪些css3属性,第1张

IE 6,7,8支持CSS3的部分属性。介绍htc,它可以让IE浏览器支持CSS3的border-radius、box-shadow、border-image、CSS3 Backgrounds (-pie-background)、Gradients、RGBA属性。。

提示:PIE.htc URL路径是相对于当前HTML文件,不是CSS文件.

比如 当前文件在“/”下 ,CSS文件在“/CSS”下,PIE.htc在“/CSS”下,behavior: url(/css/PIE.htc) 而不是behavior: url(PIE.htc);

一、border-radius 圆角

代码如下:

.radius{

border: 1px solid #696

padding: 60px 0

text-align: centerwidth: 200px

-webkit-border-radius: 8px

-moz-border-radius: 8px

border-radius: 8px

background: #EEFF99

behavior: url(/PIE.htc)/* 可以让IE 6,7,8模拟部分的CSS3属性 */

}

说明:不支持单边的圆角属性,比如: border-top-left-radius,但是你可以这样来写:

border-radius 圆角

代码如下:

border-radius: 5px 10px 15px 20px/*top-left, top-right, bottom-right, bottom-left*/

二、box-shadow 盒子阴影

代码如下:

border: 1px solid #696

padding: 60px 0

text-align: centerwidth: 200px

-webkit-box-shadow: #666 0px 2px 3px

-moz-box-shadow: #666 0px 2px 3px

box-shadow: #666 0px 2px 3px

background: #EEFF99

behavior: url(/PIE.htc)/* 可以让IE 6,7,8模拟部分的CSS3属性 */

说明:不支持text-shadow(文本阴影)

box-shadow 盒子阴影

三、border-image 图片边框

代码如下:

color: white

border: 8px solid #013D7A

-webkit-border-radius: 8px

-moz-border-radius: 8px

-webkit-border-image: url(img/border.png) 8 8 8 8 stretch

-moz-border-image: url(img/border.png) 8 8 8 8 stretch

border-image: url(img/border.png) 8 8 8 8 fill stretch

behavior: url(PIE.htc)

用到的图片:

border-image 图片边框

四、CSS3 Backgrounds 背景渐变

代码如下:

.gradient{

background: #CCC/*fallback for non-CSS3 browsers*/

background: -webkit-gradient(linear, 0 0, 0 100%, from(#CCC) to(#EEE))/*old webkit*/

background: -webkit-linear-gradient(#CCC, #EEE)/*new webkit*/

background: -moz-linear-gradient(#CCC, #EEE)/*gecko*/

background: -ms-linear-gradient(#CCC, #EEE)/*IE10*/

background: -o-linear-gradient(#CCC, #EEE)/*opera 11.10+*/

background: linear-gradient(#CCC, #EEE)/*future CSS3 browsers*/

-pie-background: linear-gradient(#CCC, #EEE)/*PIE*/

behavior: url(PIE.htc)

}

说明:只支持linear-gradient(线性渐变)

linear-gradient 线性渐变

高级运用:

代码如下:

background-size: 50px

background-color: #0ae

background-image: -webkit-linear-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%, transparent)

background-image: -moz-linear-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%, transparent)

background-image: -ms-linear-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%, transparent)

background-image: -o-linear-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%, transparent)

background-image: linear-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%, transparent)

-pie-background: linear-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%, transparent) 0 0 / 50px #0ae

behavior: url(/PIE.htc)

更多demo:

五、RGBA 颜色值

代码如下:

.rgba{

padding: 60px 0

background: #000

background: rgba(0,0,0,.2)

-pie-background: rgba(0,0,0,.2)

}

说明:不支持box-shadow

RGBA 颜色值

六、IE6 png 透明

代码如下:

.png img{

-pie-png-fix: true

behavior: url(/PIE.htc)

}

.png{

background-image:url(img.png)

-pie-background:url(img.png)

behavior: url(/PIE.htc)

}

说明:图片直接用-pie-png-fix: true,背景图片使用-pie-background来修复IE6下png透明的问题

ie有很多的版本,低于ie9是不支持html5的,ie9和以上的版本才支持html5;至于css3,一般也要ie9以上,但是有一些属性还是不能支持,要使用css3的某个属性的时候,最好还是到w3c查一查支持的浏览器。

无法全部完美解决,如果能完美解决就不存在兼容这个概念了。

有很多js可以让一些老版本ie支持css3特性,但只是针对性的,没有哪个js能解决所有css3兼容问题,所以想通过js来最大程度让低版本ie支持css3的多种特性的话,你得同时引用几十个js,这个是得不偿失的,并且他们之间有没冲突你也不知道。

不要试图去搞定兼容问题,应该学会适当的降级处理,当一个css3效果遇到低版本ie时,在保障内容能正确显示、阅读的情况下,让效果略为下降