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

Chr*_*ris 31 css internet-explorer-8

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

这是一个浏览器错误还是我错过了什么?

样式定义如下:

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

[更新]您可以应用不透明度过滤器并将其从100减少到1,您可以看到边框是如何逐渐出现的.它证实了我的猜测,渐变效果显示在边界上.

fri*_*izz 26

应用它也有效:

position: relative;
z-index: -1;
Run Code Online (Sandbox Code Playgroud)

  • 只是位置:相对; 就是我所需要的一切. (6认同)
  • 这肯定会让边框显现出来,但是(对我而言)它清除了细胞内的一切; 包括背景; (5认同)

rob*_*rtc 6

我找到了修复但你可能不喜欢它......

如果你在怪癖模式下在IE中渲染边框呈现正常,只有在你使用兼容模式时它才会被遮挡.在IE8中比较这两个页面:

同样有效的是单击兼容性视图按钮,但我尝试使用兼容模式元标记获得相同的结果是不成功的.我尝试过使用box-sizing,但也没有成功.我总结了让它按照你想要的方式工作的唯一方法是强制IE进入怪癖模式,但这可能会为布局创建许多其他问题,你最好只需添加一个包装元素来附加渐变背景.


小智 6

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

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