你能在IE的表格行上放一个渐变吗?

Posted

技术标签:

【中文标题】你能在IE的表格行上放一个渐变吗?【英文标题】:Can you put a gradient on a table row in IE? 【发布时间】:2012-02-17 08:07:19 【问题描述】:

当我将鼠标悬停在表格某个部分的表格行上时,我希望背景变为线性渐变。 CSS 很简单:

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

在 FF、Chrome 和 Safari 中运行良好,但在任何版本的 IE 中均不适用。我知道 CSS 正在解析,因为颜色和光标发生了变化。我尝试将filter 放在普通的<tr> 标签上,但仍然没有。 IE 会忽略表格行上的filter 吗?

我能想到的最好的办法是在行悬停时将渐变应用到行的<td>s,但这会在鼠标悬停在行上时导致可爱的闪烁。

现在我只会在 IE 悬停时给 IE 一个纯色背景。有没有其他人试过这个并弄清楚了?

【问题讨论】:

为什么不使用渐变图像作为悬停的背景。每个浏览器都会显示。 我更喜欢矢量渐变的灵活性。它在任何分辨率或变焦下看起来都不错。另外,如果我改变我的桌子设计,我不需要制作另一个图像。除了这种情况,它在其他地方也可以使用。 【参考方案1】:

你可以使用类似的东西:

background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNlNWU1ZTUiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);

IE9

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

IE10

旧版 IE 仅包含图像。

【讨论】:

filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333c3e',endColorstr='#222829') 在 IE 其他地方对我来说效果很好。它只是不适用于表格行。

以上是关于你能在IE的表格行上放一个渐变吗?的主要内容,如果未能解决你的问题,请参考以下文章

你能在返回之前解决一个 angularjs 承诺吗?

你能在三元中有一个返回和一个公式吗?

你能在一个Hibernate会话中拥有多个交易吗?

你能在类型数组上写扩展方法吗?

你能在 TensorFlow 中组合两个神经网络吗?

你能在 ClutterStage 中嵌入 GtkWidgets 吗?