IE低版本浏览器支持CSS3属性(圆角、阴影、渐变等)(CSS3 PIE)

IE8以及更早的版本不支持CSS3的一些新属性,本文主要是通过CSS3 PIE这个插件让IE早期版本支持CSS3,使用CSS的behavior行为,可以调用此文件,然后让IE也能实现一些常见的CSS3效果,例如我们常用到的圆角(border-radius),盒阴影(box-shadow),背景渐变(gradient),多图片背景(multiple background images)等一些新属性。

下面我就讲一讲 PIE 的具体用法

CSS3 PIE下载地址:官网 http://css3pie.com/download/   GitHub https://github.com/lojjic/PIE/downloads

然后只需从下载好的压缩包中解压出 pie.htc 文件,放到我们项目的文件夹中。

在css代码中在需要使用css3的地方添加behavior: url(PIE.htc);指定到htc文件的位置就可以了(相对于html文档)。


接下来是代码示例:

包括圆角、阴影和渐变三种效果。


.pie{
	width: 200px; 
	height: 100px;
	line-height: 100px;
	font-size:14px; 
	border: 1px solid #669966; 
	text-align: center;
	-webkit-border-radius: 8px;
	-moz-border-radius: 8px;
	border-radius: 8px;
	-webkit-box-shadow: #666666 0 2px 3px;
	-moz-box-shadow: #666666 0 2px 3px ;
	box-shadow: #666666 0 2px 3px ;
	background: -webkit-gradient(linear, 0 0, 0 bottom, from(#EEFF99), to(#66EE33));   
	background: -webkit-linear-gradient(#EEFF99, #66EE33);   
	background: -moz-linear-gradient(#EEFF99, #66EE33); 
	-pie-background: linear-gradient(#EEFF99, #66EE33); 
	behavior: url(PIE.htc);
	position:relative;
	z-index:10;
}

本人亲测效果图:

示例图片

接下来是一些注意事项:

1. z-index相关问题 

IE下这些CSS3效果实现是借助于VML(矢量可标记语言),由VML绘制圆角或是投影效果的容器元素,然后这个容器元素作为目标元素的后兄弟节点插入,如果目标元素position:absolute 或是 position:relative,则这个css3-container元素将会设置与之一样的z-index值,在DOM tree中,同级的元素总是后面的覆盖前面的,所以这样就实现了覆盖,又避免了可能有其他元素正好插入其中。所以,问题来了,如果目前元素的position属性为static,也就是默认属性,则z-index属性是没有用的,无覆盖可言,所以此时IE浏览器下CSS3的渲染是不会成功的。要解决也很简单,设置目标元素position:relative或是设置祖先元素position:relative并赋予一个z-index值(不可为-1) 

2. 相当路径的问题 

IE浏览器的behavior 属性是相对于HTML文档而言的,与CSS其他的属性不一样,不是相对于CSS文档而言的。这使得使用pie.htc文件不怎么方面。如果绝对路径于根目录,则CSS文件不方便移动;如果相对路径与HTML文档,则pie.htc文件在不同HTML页面见的重用性大大降低。同时,诸如border-image后面的URL属性路径也不好处理。 

3. 缩写的问题 

使用PIE实现IE下的CSS3渲染(其他方法也是一样),只能使用缩写的形式,例如圆角效果,高版本的浏览器我们可以设置border-top-left-radius: 1px;表示左上圆角,但是PIE是不支持这种写法的,所以只能用缩写形式border-radius: 1px 1px 1px 1px;。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zh_rey

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值