2012-05-06 63 views

回答

2

我认为,自IE7以来,支持css规则filter:alpha(opacity=x);以避免使用半透明PNG。情况并非如此吗?

在你的网站,你可以使用:

.custom #page { 
    background-color: #000; 
    filter:alpha(opacity=50); 
    background-color: rgba(0, 0, 0, 0.5); 
    border-radius: 10px 10px 10px 10px; 
    padding-top: 5px; 
} 

据我了解,IE会忽略RGBA值和使用两个较高的规则来获得类似的效果。

在元素上使用不透明度的一个缺点是(在较新的浏览器中),它将它设置为整个元素,而不仅仅是背景颜色,因此所有文本和边框等都是半透明的。但我至少会尝试以上看看它是否足够接近。

请记住:人们不升级到更高版本的IE(或转移到FF或Chrome)的唯一原因是因为我们竭尽全力确保设计在这些过时的浏览器中看起来不错。如果足够的网站看起来像狗屎,他们最终会认为它不是网站,这是他们的旧浏览器。所以,不要失去太多的时间和精力来支持IE浏览器恶搞日已经过于缓慢的过渡。

+0

是的,做到了!太感谢了!它在IE9,FF和Chrome中也很棒。唯一不起作用的是半径拐角,但这对我来说很好。只要不透明度起作用就足够好。 肯定会值得的,所有的浏览器都可以提供全面的标准...我们都能在晚上睡觉。但我想这是所有这些有趣的部分。再次感谢您的帮助。 – user1341199

+0

哦,是的,你是正确的字体是半透明的。这并不坏,所以我会一起生活。 – user1341199

0

IE8不支持rgba颜色。如果你想让它在IE8中工作,创建一个小的PNG(任何其他大小比1x1像素)具有相同的不透明度,并将其应用为div的背景。或者,您可以使用仅限IE8的样式表并设置不同于白色的背景色。

+1

这就是为什么我提到使用1x1以外的尺寸。 – Bill

+0

对不起,我错了 –

2

为了模拟RGBA和HSLA背景在IE中,可以使用一个梯度滤波器,具有相同的开始和结束的颜色(alpha通道是在HEX的值的第一对):

filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#4cffffff', endColorstr='#4cffffff'); 

或使用尺寸为1x2而不是1x1的.png图像。

因为Internet Explorer 8不执行正确当页面上的任何其它要素是使用“-MS-滤波器” 1x1像素半透明背景图像的重复drective为alpha透明度

See this link

相关问题