1

下面是应用的 CSS 并遇到了这个问题,

 background-color: rgba(91, 94, 85, 0.5) !important;
    filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#7F5B5E55,endColorstr=#7F5B5E55);
filter:ms-linear-gradient(startColorstr=#7F5B5E55,endColorstr=#7F5B5E55); /*fix for round corner edges in IE9 and input mess rendering in all IE */

图 1:FF、Chrome 和 IE 9 工作正常

图 2:IE8 不好

我不确定如何在 IE8 中正确修复此输入。我猜它的发生是因为 filter filter:ms-linear-gradient,如果我在 IE8 背景颜色应用中删除了这个过滤器,但输入被弄乱了,如下图所示。

如果我有这个过滤器输入在 IE8 背景颜色中正确呈现,则未按预期应用

Firefox 正常工作的输入可见

IE8 输入 bg 搞砸了

谢谢 ,

尼西语

4

1 回答 1

7

您的代码存在问题:

  • background-color: rgba(91, 94, 85, 0.5) !important;
    这条线似乎没问题。!important不过,该标志很可能是多余的。
  • filter:progid:DXImageTransform.Microsoft.gradient( ... );
    这一行也可以,虽然-ms-filter: "...";语法在 IE8+ 中是首选的
  • filter:ms-linear-gradient(startColorstr=#7F5B5E55,endColorstr=#7F5B5E55);
    麻烦从这里开始:

    1. Internet Explorer 的供应商前缀是-ms-,(以连字符开头)。
    2. -ms-linear-gradient是 的值background,而不是filter
      此外,仅从 IE 10 开始支持此值...
  • //fix for round corner edges in IE9 CSS 中的注释采用以下格式:/* comment */.
    没有例外。

使固定:

background-color: rgba(91, 94, 85, 0.5) !important;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#7F5B5E55,endColorstr=#7F5B5E55);
-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#7F5B5E55,endColorstr=#7F5B5E55)";
于 2012-04-12T14:44:14.570 回答