使用PIE对IE6、7、8进行CSS3兼容介绍和经验总结
下面说说如何对 IE10 以下版本的浏览器进行部分 CSS3 兼容
国外团队开发的兼容插件,去年做项目时才发现,非常强大
主角:PIE.js , PIE.htc 两种方法可以实现
官方网站:http://css3pie.com/
演示地址:http://css3pie.com/demos/gradient-patterns/
重要功能实现:
可以使 IE6、7、8 、9 实现类似 chrome 和 firefox
1. 更自然逼真的阴影效果,不再是以前那种丑陋的滤镜效果。
2. 实现很自然的圆角效果
3. 实现部分 CSS3 的强悍效果,如 多背景图,border-image,更强的背景渐变效果。
4. png 图片透明效果
上个演示截图先:
非常强大哦,基本上现在就只用这个插件就可以搞定很多兼容问题了。
下面简单说下使用方法:
1. .htc 大概是浏览器补丁模式
css 中使用 behavior 来加载即可自动实现效果,
#test {
border-radius: 3px;
behavior: url(PIE.htc);
}
注意路径,最好是直接使用 URL 的绝对路径,
如果无法显示可能是 服务器端不支持该类型文件格式的解析,可以在服务器配置文件的
mime.types文件的末尾增加一行:text/x-component htc,具体方式请自己 google 下吧
方法一的总结,我自己最早使用的也就是这个方法,发现时灵时不灵的,很郁闷了好久,而且每个地方都要写,超级麻烦,最后差点都放弃这个插件了,后来发现了方法二。
2. .js 方式,很灵活,简单
下载并解压缩 http://css3pie.com/download-latest
使用 PIE.js 文件
<script type="text/javascript" src="PIE.js"></script>
<script type="text/javascript">
PIE.attach(document.getElementById("test"));
</script>
最好放在 body 的最下面,这样将其包含到 html 页面后既可以使用
另外推荐配合 jQuery 使用更方便
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="/PIE.js"></script>
<script type="text/javascript">
(function($){
$.pie = function(name, v){
// 如果没有加载 PIE 则直接终止
if (! PIE) return false;
// 是否 jQuery 对象或者选择器名称
var obj = typeof name == 'object' ? name : $(name);
// 指定运行插件的 IE 浏览器版本
var version = 9;
// 未指定则默认使用 ie10 以下全兼容模式
if (typeof v != 'number' && v < 9) {
version = v;
}
// 可对指定的多个 jQuery 对象进行样式兼容
if ($.browser.msie && obj.size() > 0) { //1.9以上版本jq不支持$.browser.msie方法 解决方差查看此篇文章
if ($.browser.version*1 <= version*1) {
obj.each(function(){
PIE.attach(this);
});
}
}
}
})(jQuery); $(function(){
$.pie('.for-ie6', 6); var objs = $('.for-ie, .test, .test1, .test2 .test3, #test4');
$.pie(objs, 9);
});
</script>
差不多先就这样了吧,具体的请参考官网上的代码示例
最后说一下,根据我的经验,
1. 使用圆角,阴影时,最好给其定义下样式 position:relative; 否则可能遇到莫名其妙的层高问题导致生成的兼容样式层看不到了;
2. 使用png透明图片做背景时,如果没有其它圆角、阴影等样式,IE6下貌似是不会自动实现透明的,可以试试 -pie-background:url(); 的方式 或者添加一个 border-radius:0.5px; 样式既可以实现背景透明
3. IE6 下 使用背景图片透明时,尽量不要是用 css sprtes 方法,将很多图片放一张图,否则在兼容渲染的时候效率会非常差,因为图片太大啦,尽量 IE6 使用单独的png图片进行透明渲染
4. 使用阴影时,如果有设置渐变透明可能会导致一片黑,目前解决办法可以试试 使用半透明的 png 图片做背景试试,这个我还没测试过,调整 opacity 透明度 滤镜貌似也不成功,算是完美中的不足吧。
5. 应该是不支持内阴影效果的,没弄出来过,好遗憾
08.23 补充:透明的方法,
直接对执行过PIE兼容的当前容器进行透明度是没有用的,因为JS会新生成一个自定义标签层叠在下面,可以用下面的步骤实现透明
1. CSS 添加 css3-container { filter:alpha(opacity=98); }
2. JS 添加 $(‘.test’).prev(‘css3-container’).css({‘filter’:’alpha(opacity=98)’, ‘opacity’:0.98});
原文地址:http://blog.zzstudio.net/web/article_249.html
使用PIE对IE6、7、8进行CSS3兼容介绍和经验总结的更多相关文章
- 使用PIE对IE进行CSS3兼容介绍和经验总结
国外团队开发的兼容插件,去年做项目时才发现,非常强大 主角:PIE.js , PIE.htc 两种方法可以实现 官方网站:http://css3pie.com/ 演示地址:http://css3pie ...
- 使ie6/7/8支持css3的方法
使用PIE.htc让IE6\7\8支持CSS3部分属性 包括圆角,阴影,背景渐变等效果 下载地址 http://css3pie.com/download/ 需要注意几点的是 第一,pie是以相对页面h ...
- css3兼容IE8的方案 各个ie的hack
虽然现在很多项目已经对低版本IE不要求了,但是还有部分公司对IE8还是很执着的,咱作为屌丝前端程序员不能和老板说前端潮流,不能说趋势,只能动脑子了,下面就分享一些css3兼容ie8的方案思路.主要是实 ...
- ie6,ie7,ie8 css bug兼容解决记录
ie6,ie7,ie8 css bug兼容解决记录 转载自:ie6,ie7,ie8 css bug兼容解决记录 - 前端开发 断断续续的在开发过程中收集了好多的bug以及其解决的办法,都在这个文章里面 ...
- IE6/IE7下margin-bottom失效兼容解决办法及双倍边距问题
(从已经死了一次又一次终于挂掉的百度空间人工抢救出来的,发表日期 2014-04-08) 一.IE6/IE7下margin-bottom失效兼容解决办法 1.用padding-bottom代替:2.在 ...
- 使用PIE.htc让万恶的IE内核浏览器IE6\7\8支持CSS3部分属性
万恶的IE内核浏览器,这是多少前端程序员头疼的事情... 今天给大家介绍一下如何用 PIE.htc 来让IE浏览器支持CSS3的 border-radius.box-shadow.CSS3 Backg ...
- 一个很实用的css3兼容工具很多属性可以兼容到IE6
当你看到这样的效果图是不是已经崩溃了 css3没出来之前大部分人基本都是用图片的方式拼出来的 腾讯邮箱就是这么做的 然后你想和设计说换直角吧.我用图片的好烦的感觉!而且我们还要兼容到ie6 她和你说别 ...
- 让IE6/IE7/IE8支持CSS3属性的8种方法介绍
我们都知道,IE浏览器暂不支持CSS3的一些属性.国外的工程师们,不安于此现状,他们总是尽量使用一些手段使IE浏览器也能支持CSS3属性,我觉得这些都是很有意义,很有价值的工作,可以推动整个技术领域的 ...
- ie6、7、8兼容部分css3
做法很简单下载一个ie-css3,然后有css3的样式里加入behavior: url(js/ie-css3.htc)就可以了(js/ie-css3.htc是文件地址) <!DOCTYPE ht ...
随机推荐
- pentaho和spark-sql对接
pentaho可以和hive做对接,所以和spark-sql做对接也是妥妥的.结果让人很失望了啊,我配置了很久都搞不定,最后脑袋突然灵机一动打通了. 1:替换pentaho自带的hive驱动. 路径 ...
- Linux内核2.6.14源码分析-双向循环链表代码分析(巨详细)
Linux内核源码分析-链表代码分析 分析人:余旭 分析时间:2005年11月17日星期四 11:40:10 AM 雨 温度:10-11度 编号:1-4 类别:准备工作 Email:yuxu97101 ...
- HTTP 协议 -- 报头信息
报头 每一个报头都是由 [名称 + ":" + 空格 + 值 + <CR><LF>] 组成.有四种不同类型的报头: 通用报头:可用于请求,也可以用于响应,它 ...
- SourceTree——MAC OSX下的Git GUI客户端
在MAC下面为Git找一款用得顺手的GUI客户端还真不容易.学习工具使用还是先器而后道的路径比较适合我,当年上手CVS SVN都是如此,先通过tortoise客户端熟练了基本操作,之后在搭建构建平台的 ...
- G - 美素数
小明对数的研究比较热爱,一谈到数,脑子里就涌现出好多数的问题,今天,小明想考考你对素数的认识. 问题是这样的:一个十进制数,如果是素数,而且它的各位数字和也是素数,则称之为“美素数”,如29,本身是 ...
- 大白话解说TCP/IP协议三次握手和四次挥手
背景 和女朋友异地恋一年多,为了保持感情我提议每天晚上视频聊天一次. 从好上开始,到现在,一年多也算坚持下来了. 问题 有时候聊天的过程中,我的网络或者她的网络可能会不好,视频就会卡住,听不到对方的声 ...
- Hyperledger Fabric java chaincode 编译部署(1.4V)
前提条件: 构建好了一个拥有四个peer 一个Order 的1.4版本的Fabric网络. 证书通过Cryptogen生成,没有使用CA服务. 开启TLS. 网络中的peer都加入了一个 名为mych ...
- Node JS后端项目开发与生产环境总结
原文地址:Node JS后端项目开发与生产环境总结 Node JS常用后端框架有express.koa.sails.国产框架有个egg js,已经在cnode投入生产了,还有个think js,类似t ...
- P4449 于神之怒加强版
\(\color{#0066ff}{ 题目描述 }\) 给定n,m,k,计算 \(\sum_{i=1}^n \sum_{j=1}^m \mathrm{gcd}(i,j)^k\) 对1000000007 ...
- MPI环境配置
单机多核配置:https://www.cnblogs.com/shixiangwan/p/6626156.html 多计算机配置:https://blog.csdn.net/WASEFADG/arti ...