我正在尝试为自己创建一个设计博客和画廊,这就是为什么我对CSS3进行一些实验。我实现了其他浏览器想要的结果,现在IE让我头疼。
我用CSS为我的博客文章创建了旋转的日期标记,如下所示:
.metadata {
margin-left: -108px;
margin-top: 140px;
width: 140px;
position: absolute;
text-align: right;
}
.postdate {
display: block;
/* Safari */
-webkit-transform: rotate(-90deg);
/* Firefox */
-moz-transform: rotate(-90deg);
/* Opera */
-o-transform: rotate(-90deg);
font-size: 70px;
color: #ffffff;
}
好吧,我是如何做到的可能并不那么重要。无论如何:我也尝试在IE中旋转文本,并设法使用IE特定的代码来完成,但是渲染的结果太糟糕了,我不想使用它。而现在,如果没有旋转代码等,日期标记自然远不及它们在IE中应有的位置。
我希望使用条件 CSS 为 IE 中的日期标记创建完全不同的外观,但我不确定如何,我第一次尝试这样的事情。
<!--[if IE ]>
<link rel="stylesheet" href="iecss.css" type="text/css" media="screen">
<![endif]-->
在那个 iecss 文件中,我包含了相同的 CSS 类,但规则略有不同:起初我只尝试将字体大小降低 50 像素。我的电脑上只有IE 8,它在那里完全没有影响。我用IE NetRenderer预览了我的网站,这意味着文本大小的变化在IE 7中确实有效(嗯,实际上在IE 6中也是如此,但我不愿意谈论设计中发生的其他事情)。
那么为什么它在IE 8和(根据NetRenderer)IE 9中没有做任何事情呢?我也尝试使用[如果gte IE 8],但它也没有做任何事情。
问题是当IE理解主CSS文件中的规则并且没有问题显示结果时,它不能用相同类的新CSS规则覆盖效果?
有没有办法让所有版本的IE完全忽略这些CSS规则并遵循其他规则(这将使日期标记在IE中看起来完全不同)?或者,有没有办法告诉IE根本不显示日期标记?由于我的网站一开始就非常具有实验性,因此不在IE中显示发布日期也没什么大不了的。PHP 可以为我做后者吗?
对于 IE 9 支持,请添加:
-ms-transform: rotate(-90deg);
对于 IE 8 及更低版本,添加:
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
数字 3 表示 -90 (270) 度,0 表示 0 度,1 表示 90 度,2 表示 180 度。
友情链接:
http://jsfiddle.net/Eqkjh/2/http://css-tricks.com/snippets/css/text-rotation/