当前位置: 首页 > 面试题库 >

IE中的CSS旋转属性

苏野
2023-03-14
问题内容

我想将DIV旋转到一定程度。在FF中它可以运行,但是在IE中我面临一个问题。

例如,在以下样式中,我可以将rotation = 1设置为4

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

这意味着DIV将旋转到90或180或270或360度。但是,如果我只需要将DIV旋转20度,那么它将不再起作用。

如何在IE中解决此问题?


问题答案:

要在IE中旋转45度,您需要在样式表中添加以下代码:

filter: progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand', M11=0.7071067811865476, M12=-0.7071067811865475, M21=0.7071067811865475, M22=0.7071067811865476); /* IE6,IE7 */
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(SizingMethod='auto expand', M11=0.7071067811865476, M12=-0.7071067811865475, M21=0.7071067811865475, M22=0.7071067811865476)"; /* IE8 */

您将从上面的内容中注意到IE8与IE6 / 7具有不同的语法。如果要支持IE的所有版本,则需要提供两行代码。

弧度中有可怕的数字。如果您要使用45度以外的角度,则需要自己计算出数字(如果要寻找)。

还要注意,由于过滤器字符串中的冒号符号未转义,因此IE6/7语法会导致其他浏览器出现问题,这意味着它是无效的CSS。在我的测试中,这会导致Firefox忽略过滤器之后的所有CSS代码。这是您需要注意的事情,如果被它所吸引,可能会导致数小时的混乱。我通过在其他浏览器无法加载的单独的样式表中包含特定于IE的内容来解决此问题。

当前所有其他浏览器(包括IE9和IE10-是的!)都支持CSS3transform样式(尽管通常带有供应商前缀),因此您可以使用以下代码在所有其他浏览器中实现相同的效果:

-moz-transform: rotate(45deg);  /* FF3.5/3.6 */
-o-transform: rotate(45deg);  /* Opera 10.5 */
-webkit-transform: rotate(45deg);  /* Saf3.1+ */
transform: rotate(45deg);  /* Newer browsers (incl IE9) */

希望能有所帮助。

编辑

由于此答案仍在投票中,因此我觉得我应该使用有关称为CSSSandpaper的JavaScript库的信息来更新它,即使在较旧的IE版本中,该库也允许您使用(接近)标准CSS代码进行旋转。

将CSS沙纸添加到您的站点后,您应该能够为IE6-8编写以下CSS代码:

-sand-transform: rotate(40deg);

filter您通常需要在IE中使用的传统样式容易得多。

编辑

还要注意一个专门针对IE9(仅适用于IE9)的怪癖,它同时支持标准transformIE和旧样式IE -ms- filter。如果同时指定了它们,则可能导致IE9完全混乱,并仅在元素原本所在的位置呈现一个纯黑框。最好的解决方案filter使用上面提到的“Sandpaper” polyfill 避免样式。



 类似资料:
  • 问题内容: 我有一个下拉导航菜单,其中某些标题在单击时不应导航到其他页面(单击时这些标题会打开一个下拉菜单),而其他标题应在导航中(这些都没有下拉菜单并直接导航)。类型已经定义给他们 为了解决这个问题,我为标题的前一种类型添加了以下CSS 并且它工作正常。但是,由于IE不支持此属性,因此我正在寻找一些解决方法。令人讨厌的是, 我没有访问权限和特权来完全更改HTML和JavaScript代码 。 有

  • 问题内容: 我想通过CSS旋转加载图标。 我有一个图标和以下代码: 但这是行不通的。如何使用CSS旋转图标? 问题答案:

  • 问题内容: 我一直在尝试在IE 11中获得A CSS模糊效果几个小时,但没有取得任何进展。我尝试使用以下简单的html: 我也尝试仅使用不带ms前缀的过滤器。这不在Win7上的IE11中无法正常工作。您有什么想法,我可能做错了什么? 问题答案: filter:progid:DXImageTransform.Microsoft.Blur(PixelRadius=‘3’); 他们确实提供了一个称为St

  • 在我的网站上,我有一个画廊,里面有我和我女朋友的一些照片,但是有两张照片是颠倒显示的。我不知道为什么。所有其他照片都是完美的。每张照片都是由同一个iPhone7拍摄的,但是前两张照片在网站上是颠倒的。在我的电脑上,它们显示得非常完美。 以下是网站:www.selinundleon。com/图库。有人能帮我解决这个问题吗?非常感谢你。

  • 问题内容: 我正在执行CSS转换:在父级上旋转,但是希望能够对某些子级取消此效果-是否可以不使用反向旋转? 反向旋转确实有效,但是会影响元素的位置,并且可能会对性能产生负面影响(?)。无论如何,它看起来都不是干净的解决方案。 我尝试了这个问题的“transform:none”建议,以防止孩子继承转换css3,但它根本行不通- 问题答案: 我相信您将需要使用第二个子元素来伪造它,该规范似乎并没有允许

  • 问题内容: 我正在创建跨浏览器兼容的旋转(ie9+),并且在jsfiddle中有以下代码 CSS和HTML非常简单,仅用于演示: 使用时旋转有效,但使用时无效; 为什么会这样,有没有办法解决? 谢谢。 问题答案: CSS转换尚无法与jQuery动画化。您可以执行以下操作: 而且,顺便说一句:您不需要在jQuery 1.7+之前为CSS3转换添加前缀 更新资料 您可以将其包装在jQuery插件中,以