使用条件 CSS 对 IE 进行排版调整.或者别的什么



我正在尝试为自己创建一个设计博客和画廊,这就是为什么我对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/

相关内容

最新更新