让IE支持CSS3的不完全兼容方案
到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的效果难称完美,但在一些情况下,运用这些技术能够让我们的代码更为简洁和统一
上一篇: 机器人已经可以帮你叠衣服了 就是有点慢
下一篇: nodelog4js配置解析
推荐阅读
-
CSS3 Pie工具推荐--让IE6-8支持一些优秀的CSS3特性
-
让IE支持CSS3的不完全兼容方案
-
让 IE6, 7和 8支持CSS3 css3ie6/ie7/ie8兼容
-
Respond.js – 让不懂爱的 IE6-8 支持 CSS3 Media Query
-
IE系列不支持圆角等CSS3属性的解决方案
-
Respond.js – 让不懂爱的 IE6-8 支持 CSS3 Media Query
-
IE系列不支持圆角等CSS3属性的解决方案_html/css_WEB-ITnose
-
IE系列不支持圆角等CSS3属性的解决方案_html/css_WEB-ITnose
-
CSS3 Pie工具推荐--让IE6-8支持一些优秀的CSS3特性
-
让IE支持CSS3的不完全兼容方案