为什么这个梯度滤波器不能在ie8中工作?

时间:2012-03-11 09:31:11

标签: html css css3 internet-explorer-8

为什么这个渐变滤镜不能在Internet Explorer 8中工作?我被认为是从ie6 +

支持
filter:progid:DXImageTransform.Microsoft.gradient(starColorstr='#ccc',endColorstr='#fefefe',GradientType=0);

4 个答案:

答案 0 :(得分:3)

  1. 请始终使用<!doctype html>将IE带入(几乎)-standards-mode
  2. #ccc没有,你期望什么;)总是使用#RRGGBB,IE无法处理shorhand。
  3. 不允许在一个ruleblock中使用多个过滤器。您的不透明度过滤器会覆盖渐变过滤器。
  4. 过滤器的解决方案: filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#e6cccccc",endColorstr="#e6fefefe",GradientType=0);前两位是不透明度(范围255,从00到ff,因此您需要相应地重新缩放90%的不透明度 - &gt; E6)

答案 1 :(得分:1)

IE8不支持渐变和不透明度。

IE对我来说一直是个噩梦(可能也是这里的每个开发者)

答案 2 :(得分:0)

您的例子中没有doctype。

IE8可能需要XHTML 1.0 Transitional作为Doctype来制作保证金:自动按预期工作。

答案 3 :(得分:0)

在CSS中使用以下内容来设置不透明度应正确呈现:


    /* IE 8 */
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=65)";

    /* IE 5-7 */
    filter: alpha(opacity=65);

    /* Netscape */
    -moz-opacity: 0.65;

    /* Safari 1.x */
    -khtml-opacity: 0.65;

    /* Good browsers */
    opacity: 0.65; 

我测试了它,它适用于IE7,IE8,IE9,FF,NS,Chrome,Opera和Safari

对于IE8中div的居中(我假设你想要的余量:自动)加上这个:


    text-align:center;

对于你的渐变试试这个:


    background: #008800; /* fallback for (Opera) */

    background: -moz-linear-gradient(top, #CCC, #fefefe); /* Mozilla: */

    background: -webkit-gradient(linear, left top, left bottom, from(#CCC), to(#fefefe)); /* Chrome, Safari:*/

    filter: progid:DXImageTransform.Microsoft.Gradient( StartColorStr='#CCC', EndColorStr='#fefefe', GradientType=0); /* MSIE */

希望它适合你!

最佳,

辛西娅