我有一个关于以45度角显示文本的奇怪问题。要求支持“所有浏览器”,但我已经成功排除了IE6和较旧版本的Mozilla/Opera。这个显示的要求如下图所示:
在符合CSS3标准的浏览器中(几乎所有最新版本),我可以使用以下CSS/HTML来解决这个问题:
将这个代码添加到
在IE8中,一切正常,但是将此添加到选择器中会导致IE9出现故障。似乎IE9正在尝试使用
很明显,这里出了问题-但我该如何修复,以便在IE7、8和9中都能正常工作?
非常感谢您提前的帮助。
![enter image description here](https://istack.dev59.com/wAkEq.webp)
<style type="text/css">
.homepage-top .red-corner {
position: absolute;
right: 0px;
top: 300px;
width: 0px;
height: 0px;
border-top: 55px solid #e11e2d;
border-left: 55px solid transparent;
z-index: 9;
}
.homepage-top .free {
position: absolute;
right: 3px;
top: 310px;
text-transform: uppercase;
color: white;
font-size: 10pt;
font-weight: bold;
z-index: 10;
-ms-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-o-transform: rotate(45deg);
-sand-transform: rotate(45deg);
transform: rotate(45deg);
}
</style>
<div class="red-corner"><!-- --></div>
<div class="free">free</div>
它在IE9和更新版本的Firefox、Safari和Opera上运行良好。然后我需要让IE7和IE8正常工作——这就变得有趣了。我可以在IE7上使用filter
,在IE8上使用-ms-filter
,这样我就可以得到非常有趣的结果。
filter/-ms-filter
看起来像这样:
filter: progid:DXImageTransform.Microsoft.Matrix(SizingMethod='auto expand', M11=0.7071067811865476, M12=-0.7071067811865475, M21=0.7071067811865475, M22=0.7071067811865476); /* IE7 */
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(SizingMethod='auto expand', M11=0.7071067811865476, M12=-0.7071067811865475, M21=0.7071067811865475, M22=0.7071067811865476)"; /* IE8 */
将这个代码添加到
.homepage-top .free
选择器中,可以使IE7正确显示旋转的文本(尽管在白色字母上有些黑色色调,但我可以接受)- 但是它会忽略该行后面CSS文件中的所有内容。删除filter
行将恢复其余CSS,但自然地不会旋转文本。在IE8中,一切正常,但是将此添加到选择器中会导致IE9出现故障。似乎IE9正在尝试使用
-ms-filter
和-ms-transform
属性-这会导致一些内部混乱。结果,IE9的显示如下:很明显,这里出了问题-但我该如何修复,以便在IE7、8和9中都能正常工作?
非常感谢您提前的帮助。