css怎样解决ie浏览器旋转不兼容

第一种:CSS样式 filter:progid:DXImageTransform.Microsoft.BasicImage(rotation:1)其中rotation属性只有四个值:0,1,2,3 分别表示的旋转度数是:0度,90度,180度,270度。查看参考文档,请点击这里,但是想要旋转其他任意度数上面的方法就不适合了,这就需要下面的方法。第二种 CSS样式 filter:progid...
css怎样解决ie浏览器旋转不兼容
在现代浏览器中使用CSS3的transform样式即可轻松搞定,但是对于国内IE浏览器(特别是7,8)还占有较大份额的情况下,兼容性还是必须要考虑的,所以也特意记录下IE旋转滤镜的使用。

在IE下的旋转滤镜有两种:

第一种:

CSS样式

filter:progid:DXImageTransform.Microsoft.BasicImage(rotation:1)

其中rotation属性只有四个值:0,1,2,3 分别表示的旋转度数是:0度,90度,180度,270度。查看参考文档,请点击这里,但是想要旋转其他任意度数上面的方法就不适合了,这就需要下面的方法。

第二种

CSS样式

filter:progid:DXImageTransform.Microsoft.Matrix(enabled=bEnabled ,SizingMethod=sMethod ,FilterType=sType ,Dx=fDx ,Dy=fDy ,M11=fM11 ,M12=fM12 ,M21=fM21 ,M22=fM22)

enabled:定义滤镜是否被禁止使用,取值范围为布尔值,当取值为true的时候滤镜可用;取值为false时,禁止使用滤镜。
SizingMethod:定义元素使用图片时是否改变属性。当取值为clip to original时,元素不改变尺寸;当取值为auto expand时,元素改变尺寸。
FilterType:定义元素旋转的方法。当取值为bilinear时,使用平滑、静态的显示效果;nearest neighhbor一般用于动态滤镜中。
Dx:定义水平方向上的向量增加量。使用浮点数定义增量的大小,默认值为1.0。
Dy:定义垂直方向上的向量增加量。使用浮点数定义增量的大小,默认值为1.0。
M11:定义元素右侧边线水平方向上的显示位置。使用浮点数定义增量的大小,默认值为1.0。当取值大于1.0时,右边线向右移动,同时拉伸元素的宽度;当取值小于1.0时,右边线向左移动,同时减小元素的宽度。
M12:定义元素底侧边线水平方向上的显示位置。使用浮点数定义增量的大小,默认值为0时。当取值大于0时,底部连线向右移动,同时拉伸元素的宽度;当取值小于0时,底部边线向左移动,同时拉伸元素的宽度。
M21:定义元素右侧边线竖直方向上的显示位置。使用浮点数定义增量的大小,默认值为0。当取值大于0时,底部边线向下移动,同时拉伸元素的高度;当取值小于0时,底部边线向上移动,同时拉伸元素的高度。
M22:定义元素底侧边线竖直方向上的显示位置。使用浮点数定义增量的大小,默认值为1.0。当取值大于1.0时,底部边线向下移,同时拉伸元素的高度;当取值小于1.0时,右边线向上移动,同时减小元素的高度。

以上是此滤镜全部的参数,但是平时用的最多的参数只有5个,所以可以简化为:

CSS样式

filter:progid:DXImageTransform.Microsoft.Matrix(SizingMethod=sMethod ,M11=fM11 ,M12=fM12 ,M21=fM21 ,M22=fM22)

SizingMethod一般选择“auto expand”,它和“clip to original”值的区别如下图(图中旋转角度都为45度):

下面来说下如何计算旋转值,也就是如何计算M11,M12,M21,M22的值。

其实也很简单,用计算器算即可,如果你要做旋转动画,那么需要JS去计算,M11=cos(角度值),M12=-sin(角度
值),M21=sin(角度值),M22=cos(角度值)。例如:你想要旋转10度,那么sin(10)约=0.174,cos(10)
约=0.985,所以四个值相应为:M11=0.985,M12=-0.174,M21=0.174,M22=0.985

在这里也想提下,IE Matrix滤镜还可以实现放大和缩小的效果,类似于zoom样式,只要将M11,M12,M21,M22的值乘以相应的倍数即可。

Ps:在IE6和IE7中如果将滤镜写在<style>标签或者样式表中,会出现以下两个问题,

此滤镜之后的样式都会失效;
旋转滤镜一个页面中只允许有一个。

这两点的解决方案是:将滤镜样式直接内嵌在元素标签上。

如果有更好的解决方法可以留言。想了解更多Matrix滤镜,请猛戳这里和这里

这样配合CSS3样式transform即可兼容所有浏览器实现旋转效果。2016-09-09
  在IE下的旋转有两种:
  第一种:CSS样式

  filter:progid:DXImageTransform.Microsoft.BasicImage(rotation:1)

  其中rotation属性只有四个值:0,1,2,3

  分别表示的旋转度数是:0度,90度,180度,270度。查看参考文档,请点击这里,但是想要旋转其他任意度数上面的方法就不适合了,这就需要下面的方法。
  第二种CSS样式

  filter:progid:DXImageTransform.Microsoft.Matrix(enabled=bEnabled

  ,SizingMethod=sMethod ,FilterType=sType ,Dx=fDx ,Dy=fDy ,M11=fM11 ,M12=fM12
  ,M21=fM21 ,M22=fM22)
  enabled:定义滤镜是否被禁止使用,取值范围为布尔值,当取值为true的时候滤镜可用;取值为false时,禁止使用滤镜。

  SizingMethod:定义元素使用图片时是否改变属性。当取值为clip to original时,元素不改变尺寸;当取值为auto

  expand时,元素改变尺寸。
  FilterType:定义元素旋转的方法。当取值为bilinear时,使用平滑、静态的显示效果;nearest
  以上是常用的参数,但是平时用的最多的参数有这几个。2016-11-12
  在IE下的旋转有两种:
  第一种:CSS样式

  filter:progid:DXImageTransform.Microsoft.BasicImage(rotation:1)

  其中rotation属性只有四个值:0,1,2,3

  分别表示的旋转度数是:0度,90度,180度,270度。查看参考文档,请点击这里,但是想要旋转其他任意度数上面的方法就不适合了,这就需要下面的方法。
  第二种CSS样式

  filter:progid:DXImageTransform.Microsoft.Matrix(enabled=bEnabled

  ,SizingMethod=sMethod ,FilterType=sType ,Dx=fDx ,Dy=fDy ,M11=fM11 ,M12=fM12
  ,M21=fM21 ,M22=fM22)
  enabled:定义滤镜是否被禁止使用,取值范围为布尔值,当取值为true的时候滤镜可用;取值为false时,禁止使用滤镜。

  SizingMethod:定义元素使用图片时是否改变属性。当取值为clip to original时,元素不改变尺寸;当取值为auto

  expand时,元素改变尺寸。
  FilterType:定义元素旋转的方法。当取值为bilinear时,使用平滑、静态的显示效果;nearest
  以上是常用的参数,但是平时用的最多的参数有这几个。2016-11-20
看一下w3c标准,对兼容性都有说明,有些属性是后面加上去的,所以IE低版本不兼容,这时候就换种方式就行了2017-03-15
mengvlog 阅读 26 次 更新于 2025-08-08 11:36:06 我来答关注问题0
  •  一叶畅舟叶华源1297 css怎样解决ie浏览器旋转不兼容

    第一种:CSS样式 filter:progid:DXImageTransform.Microsoft.BasicImage(rotation:1)其中rotation属性只有四个值:0,1,2,3 分别表示的旋转度数是:0度,90度,180度,270度。查看参考文档,请点击这里,但是想要旋转其他任意度数上面的方法就不适合了,这就需要下面的方法。第二种CSS样式 filter:progid:...

  •  深空见闻 如何才能让IE6浏览器支持fixed

    要让IE6浏览器支持fixed属性,可以采用以下方法:使用CSS Hack:由于IE6不支持fixed属性,但支持一些特定的CSS Hack,我们可以利用这一点来模拟fixed效果。使用_position:absolute作为替代方案虽然效果不理想,但可以作为一个临时解决方案。一个更好的方法是使用_top:expression(documentElement.scrollTop + 数...

  •  翡希信息咨询 8种常用CSS清除浮动的方法

    建议:推荐使用,建议定义公共类以减少CSS代码。在结尾处添加空div标签clear:both 原理:添加一个空div,并设置clear:both,使父级div能自动获取到高度。优点:简单、代码少、浏览器支持好、不容易出现怪问题。缺点:初学者可能不理解原理;如果页面浮动布局多,需要增加很多空div,影响代码整洁性。建议:...

  •  阿暄生活 如何解决IE浏览器的兼容性问题呢?

    1. 启用IE浏览器的兼容模式 通过点击设置中的“兼容性视图设置”,添加需要使用兼容模式的网站。这样IE浏览器会模拟旧版本的浏览器环境,提高网站的兼容性。 具体操作步骤:打开IE浏览器,点击右上角的齿轮图标,选择“兼容性视图设置”,在弹出的窗口中输入需要兼容的网站地址,点击“添加”,然后关闭窗口...

  •  火狐 CSS Transition为什么会在Firefox与IE中无效

    是因为CSS Transition在ie和firefox中的兼容性不好造成的。说明如下:在W3C官方的标准里,通过transform属性使对象旋转的写法如下: transform: rotate(40deg); /* 其中40是旋转的角度 */ 可是由于目前几乎所有的浏览器对这个属性的渲染效率都很低,所以我们可以用下面的hack去提高渲染效率: -o-...

檬味博客在线解答立即免费咨询

CSS相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部