在IE8中应用css渐变过滤器时,表格单元格会丢失边框

我发现在同时应用css渐变过滤器时,表格单元格上的css边框会丢失。 看起来渐变效果覆盖了边框。

这是一个浏览器错误还是我在这里错过了一些东西?

风格是这样定义的:

.c7 {
    color: #000000;
    filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr='#c0c0c0',EndColorStr='#f0f0f0'); 
    border: #000000 1px solid;
    width: 100px;
    height: 30px;
}

[更新]您可以应用不透明度过滤器并将其从100减少到1,并且您可以看到边界逐渐显现。 它证实了我的猜测,即梯度效应显示在边界之上。


我找到了一个修复程序,但你可能不喜欢它...

如果在怪异模式下在IE中渲染,边框呈现正常,但只有在使用兼容模式时才会模糊。 在IE8中比较这两个页面:

  • DOCTYPE声明
  • http://www.boogdesign.com/examples/css3/borders-tables-gradients-1.png
  • 没有DOCTYPE声明
  • http://www.boogdesign.com/examples/css3/borders-tables-gradients-2.png
  • 同样的,点击兼容性视图按钮,但是我试图用兼容模式meta标签获得相同的结果是不成功的。 我尝试使用box-sizing ,但也没有成功。 我总结出让它按照你想要的方式工作的唯一方法是强制IE进入怪异模式,但是这可能会为布局创建太多其他问题,以至于只需添加一个用于附加渐变背景的包装元素即可。


    应用这也适用:

    position: relative;
    z-index: -1;
    

    使用DIV来包含每个单元格中的内容。 将渐变应用于DIV并将边框放在单元格上。 渐变将被限制在DIV中,并且不会覆盖边界。

    http://jsfiddle.net/WWCaj/1/

    链接地址: http://www.djcxy.com/p/40497.html

    上一篇: Table cell loses border when css gradient filter is applied in IE8

    下一篇: Linker error not related to Linker