7

我正在尝试在 IE8 中旋转文本。根据这个答案,应该可以按照以下示例中的尝试旋转元素:

<!DOCTYPE html>
<html>
<head>
    <style>
        #enclosing {
            width: 20px;
            height: 100px;
            border: 1px solid;
        }

        #rotated {
            -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=6.123031769111886e-17, M12=1, M21=-1, M22=6.123031769111886e-17, SizingMethod='auto expand')";
            width: 100px;
        }
    </style>
</head>

<body>
    <div id="enclosing">
        <p id="rotated">rotated</p>
    </div>
</body>
</html>

(从这个生成器得到数字)

如果我使用开发工具检查 p 元素,我可以看到它受到了某种影响,因为显示所选元素的蓝色边框被正确旋转(但实际元素没有被旋转),请参见下图。

使用开发工具

编辑: 为了澄清,这是没有过滤器语句的样子:

没有过滤器语句

4

2 回答 2

4

您当前的标记有效,问题是您必须在 IE10 中启用旧版过滤器才能在 IE8 模式下运行的 IE10 中正确呈现结果。

因此,答案是启用旧版过滤器:http: //blogs.msdn.com/b/ie/archive/2012/06/04/legacy-dx-filters-removed-from-ie10-release-preview.aspx

转到“设置[Gear]”>>“Internet选项”>>“安全”然后单击“自定义级别”并在结果窗口窗格中向下滚动以找到“渲染旧过滤器”选项。启用它。

在 IE10 中启用旧版过滤器

于 2013-05-02T15:36:37.903 回答
2

鉴于您已在评论中澄清您在 IE10 的 IE8 兼容模式下进行测试,而不是 IE8 的真实副本,这变得更容易回答。您的问题的答案在 MSDN 上进行了解释

简而言之,IE10 认为该filter样式已过时,即使在兼容模式下也默认禁用它。可以启用,但只能由最终用户启用。

IE9 不受此影响;filter样式在 IE9 中可以正常工作,但对于 IE10,您将遇到问题。

去引用:

对于 Internet Explorer 10,DX 过滤器在以下文档模式下不起作用(已过时):

  • 怪癖模式
  • IE10标准模式

对于其他文档模式,DX 过滤器(默认情况下)为 Internet 区域禁用,并为本地 Intranet 和受信任的站点区域启用。这会影响以下文档模式:

  • IE9 标准模式
  • IE8 标准模式
  • IE7 标准模式
  • IE5(怪癖)模式

最终用户可以通过使用 Internet 选项更改相关区域的安全设置来更改这些设置(仅适用于这些文档模式)。管理员也可以使用组策略。

注意 出于安全和性能原因,强烈建议不要这样做。此外,网页无法修改这些设置(通常出于相同的原因)。

这样做的结果是,对于 IE10,您无法filter在兼容模式下可靠地使用样式。

这意味着:

  1. 使用兼容模式来测试您的代码是否可以在旧版 IE 中运行并不是一个好的测试。您确实需要使用旧 IE 版本的真实副本才能进行准确的测试。

  2. 让您的用户使用兼容模式显示您的网站是个坏主意。强制他们使用X-UA-Compatible元标记以 IE 最佳呈现模式查看网站。

于 2013-05-02T15:35:18.490 回答