你能在IE浏览器中给表格行添加渐变吗?

4

当我在表格的某个特定部分悬停在一行上时,我希望背景能变成线性渐变。CSS很简单:

tbody.row-links tr:hover {
    background: ...typical multi-browser linear gradient code...
    color: #333C3E;
    cursor: pointer;
}

在火狐、谷歌和Safari中表现良好,但在任何版本的IE中都无法正常工作。我知道CSS正在解决,因为颜色和光标会改变。我尝试将filter放置在普通的<tr>标签本身上,但仍然没有效果。IE是否只是忽略表格行上的filter
我能想到的最好的方法是,在鼠标悬停时将渐变应用于该行的<td>,但这会导致在鼠标移动时出现闪烁。
目前,我只会在IE上给出一个固定的背景颜色。有其他人尝试过这个并解决了吗?

为什么不在鼠标悬停时使用渐变图像作为背景呢?每个浏览器都会显示。 - The Alpha
我更喜欢使用向量渐变的灵活性。它在任何分辨率或缩放比例下都表现出色。此外,如果我更改了表格设计,我不需要制作另一张图片。除了这种情况,它在其他地方都能正常工作。 - zeromus
1个回答

0
你可以使用类似以下的代码:
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNlNWU1ZTUiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);

适用于IE9

或者

background: -ms-linear-gradient(top,  #ffffff 0%,#e5e5e5 100%);

适用于IE10

旧版IE仅支持图片。


1
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333c3e',endColorstr='#222829') 在IE中对我来说运行得非常好,但是它在表格行中不起作用。 - zeromus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接