让IE支持CSS3的不完全兼容方案


Posted in HTML / CSS onSeptember 19, 2014

到Internet Explorer 8为止,IE系列是不支持CSS3的。在IE中要做一些常用的效果如圆角、阴影,就需要用一些冗余而无意义的元素和图片来做出这些效果。在厌倦这些后,就想着用更为简洁、直接有效、CSS3式的办法来解决这些问题。好在就算是饱受批评的Internet Explorer,其本身也是足够强大的。IE特有的技术可以很好的实现一些CSS3的效果。

Opacity透明度

元素的透明度在IE中可以很方便的用滤镜来实现。

复制代码
代码如下:

background-color:green;
opacity: .4;
filter:progid:DXImageTransform.Microsoft.alpha(opacity=40);

border-radius圆角/Box Shadow盒阴影/Text Shadow文字阴影

在IE中可以利用Vector Markup Language (VML)和javascript来实现这些效果,,在引用了一个HTC文件后,在IE浏览器中就可以使用这三种CSS3属性了。

复制代码
代码如下:

-moz-border-radius: 15px; /* Firefox */
-webkit-border-radius: 15px; /* Safari 、Chrome */
border-radius: 15px; /* Opera 10.5+, IE6+ 使用 IE-CSS3*/
-moz-box-shadow: 5px 5px 5px #000; /* Firefox */
-webkit-box-shadow: 5px 5px 5px #000; /* Safari、Chrome */
box-shadow: 5px 5px 50px #000; /* Opera 10.5+,IE6+ 使用 IE-CSS3 */
behavior: url(ie-css3.htc); /*引用ie-css3.htc */

实际上,在IE中有滤镜来实现阴影(shadow)和投影(drop-shadow)效果的

shadow会产生连续、渐变的阴影

复制代码
代码如下:

filter: progid:DXImageTransform.Microsoft.Shadow(color='#000000', Direction=145, Strength=10);

drop-shadow产生的阴影没有明暗变化

复制代码
代码如下:

filter:progid:DXImageTransform.Microsoft.DropShadow(Color="#6699CC",OffX="5",OffY="5",Positive="1");

滤镜似乎和现有的htc脚本有冲突,或者可以称之为特性:两者同时在一个元素上启用的时候,滤镜效果会转移到其子元素上

Gradients渐变

IE中提供了一个简单的渐变滤镜

复制代码
代码如下:

background-image: -moz-linear-gradient(top, #444444, #999999); /* FF3.6 */
background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #444444),color-stop(1, #999999)); /* Saf4+, Chrome */
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#444444', EndColorStr='#999999'); /* IE6+ */

在实现IE中的渐变很简单

RGBA透明度颜色背景

渐变滤镜支持RGBA的颜色,startColorStr和EndColorStr的前两位是Alpha通道值。使用带alpha通道来模拟RGBA颜色背景的同时,应该去掉其background-color属性。

复制代码
代码如下:

background-color: rgba(0, 255, 0, 0.6); /* FF3+, Saf3+,Opera 10.10+, Chrome */
filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#9900FF00',EndColorStr='#9900FF00'); /* IE6+*/

Multiple Backgrounds多重背景图片

支持CSS3多重背景图片的浏览器中可以用下面的语句来实现背景多重图片:

复制代码
代码如下:

background: url(bg-image-1.gif) center center no-repeat, url(bg-image-2.gif) top left;

要在IE中实现多背景图片,在需要在单独的IE hack样式表中加入下面的代码:

复制代码
代码如下:

background: transparent url(bg-image-1.gif) top left repeat;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader (src='bg-image-2.gif', sizingMethod='crop'); /* IE6+ */

CSS3浏览器的多重背景

IE的多重背景

Tranformations/rotate旋转元素

IE中有两个滤镜可以实现元素的旋转,BasicImage和Matrix,前者简单方便但是只能做90*n(n∈{1,2,3,4})度的旋转;Matrix滤镜功能强大,但是参数复杂。

复制代码
代码如下:

-moz-transform: rotate(180deg); /* FF3.5+ */
-o-transform: rotate(180deg); /* Opera 10.5 */
-webkit-transform: rotate(180deg); /* Saf3.1+, Chrome */
filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
filter:progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand',M11=-1, M12=-1.2246063538223772e-16, M21=1.2246063538223772e-16, M22=-1);

旋转也很简单

@font-face服务器端字体

考虑到汉字字体的尺寸,这个CSS3的特性不算实用

复制代码
代码如下:

font-family:'webFont';
src:url('myfont.eot');/*IE6+*/
src:local('fontname'),/*字体名称*/
url('myfont.woff') format('woff'),/*FF3.6*/
url('myfont.ttf') format('truetype');/*saf3+,chrome,FF3.5,opera10+*/

字体声明并引用了以后,可以在网页的其他地方用font-family使用这一字体。

可以在同一个元素上启用多个滤镜,如:

复制代码
代码如下:

filter: progid:DXImageTransform.Microsoft.Shadow(color='#000000', Direction=145, Strength=5)progid:DXImageTransform.Microsoft.Alpha(opacity=40);

虽然一些用滤镜模仿CSS3的效果难称完美,但在一些情况下,运用这些技术能够让我们的代码更为简洁和统一

HTML / CSS 相关文章推荐
css3实现针线缝合效果(图解步骤)
Feb 04 HTML / CSS
使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的方法
Apr 03 HTML / CSS
纯CSS实现聊天框小尖角、气泡效果
Apr 04 HTML / CSS
纯CSS改变webkit内核浏览器的滚动条样式
Apr 17 HTML / CSS
CSS实现定位元素居中的方法
Jun 23 HTML / CSS
详解CSS3中border-image的使用
Jul 18 HTML / CSS
HTML5新增的标签和属性归纳总结
May 02 HTML / CSS
自定义html标记替换html5新增元素
Oct 17 HTML / CSS
input file上传文件样式支持html5的浏览器解决方案
Nov 14 HTML / CSS
HTML5 Canvas实现平移/放缩/旋转deom示例(附截图)
Jul 04 HTML / CSS
HTML5 canvas画矩形时出现边框样式不一致的解决方法
Oct 14 HTML / CSS
Html5饼图绘制实现统计图的方法
Aug 05 HTML / CSS
一款css实现的鼠标经过按钮的特效
Sep 11 #HTML / CSS
纯CSS3发光分享按钮的实现教程
Sep 06 #HTML / CSS
HTML5时代CSS设置漂亮字体取代图片
Sep 04 #HTML / CSS
css3 伪元素和伪类选择器详解
Sep 04 #HTML / CSS
CSS3实现的文本3D效果附图
Sep 03 #HTML / CSS
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
Sep 02 #HTML / CSS
一款纯css3实现的圆形旋转分享按钮旋转角度可自己调整
Sep 02 #HTML / CSS
You might like
推荐一款MAC OS X 下php集成开发环境mamp
2014/11/08 PHP
Yii使用技巧大汇总
2015/12/29 PHP
CodeIgniter配置之config.php用法实例分析
2016/01/19 PHP
php使用curl并发减少后端访问时间的方法分析
2016/05/12 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
2017/03/16 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
2017/05/26 PHP
php设计模式之单例模式用法经典示例分析
2019/09/20 PHP
jquery 指南/入门基础
2007/11/30 Javascript
jquery $.trim()方法使用介绍
2014/05/21 Javascript
Node.js安装教程和NPM包管理器使用详解
2014/08/16 Javascript
详解JavaScript中的客户端消息框架设计原理
2015/06/24 Javascript
javaScript实现滚动新闻的方法
2015/07/30 Javascript
jQuery EasyUi实战教程之布局篇
2016/01/26 Javascript
微信jssdk在iframe页面失效问题的解决措施
2016/03/03 Javascript
Node.js的Express框架使用上手指南
2016/03/12 Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
2017/05/12 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
基于Vue2.0+ElementUI实现表格翻页功能
2017/10/23 Javascript
javascript中this的用法实践分析
2019/07/29 Javascript
详解JavaScript作用域、作用域链和闭包的用法
2020/09/03 Javascript
[02:41]DOTA2英雄基础教程 冥魂大帝
2014/01/16 DOTA
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
Python使用正则匹配实现抓图代码分享
2015/04/02 Python
Python读取excel中的图片完美解决方法
2018/07/27 Python
python math模块的基本使用教程
2021/01/16 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
2021/01/27 Python
html5小程序飞入购物车(抛物线绘制运动轨迹点)
2020/10/19 HTML / CSS
印度网上药店:1mg
2017/10/13 全球购物
澳大利亚礼品篮网站:Macarthur Baskets
2019/10/14 全球购物
五年后的职业生涯规划
2014/03/04 职场文书
大学军训感言400字
2014/03/11 职场文书
活动总结报告格式
2014/05/09 职场文书
运动会拉拉队口号
2014/06/09 职场文书
大专毕业生自我鉴定范文(2篇)
2014/09/27 职场文书
2014年团支部年度工作总结
2014/12/24 职场文书
导游欢迎词范文
2015/01/23 职场文书