对于IE9及更低版本,是否有CSS渐变替代CSS 'filter'?(那不是JS或插件)



我正在寻找任何替代方法来产生垂直线性渐变(两种颜色),从顶部的深色开始,一直到底部的浅色。

这些方法适用于 IE9 和 IE8。

碰巧,我已经尝试了CSS属性filter,但无济于事。它似乎不想在IE9或更低版本中工作,无论如何我最好使用不同的方法。

我已经尝试过 ColorZilla 的渐变生成器,它也提供了 SVG 方法,但我不知道从哪里开始,因为它只是一个随机的字母数字字符字符串,我无法理解。

请让我强调,我不想要任何形式的 JS/jQuery 方法或任何类型的插件,因为我试图让我的 UI 对那些禁用脚本的人友好。

我只是在寻找可以使用的任何其他 CSS 方法?

谢谢迪伦。


编辑

这是该问题的一个活生生的例子。痕迹导航当前位置的渐变不会显示在 IE9 或更低版本中。

以下是 IE6-IE9 中梯度的正确 CSS。

filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#4096ee',GradientType=0 );

实际上没有替代方案 - 这是正确的CSS。

如果您遇到困难,请使用在线生成器,例如:http://gradients.glrzad.com/http://www.colorzilla.com/gradient-editor/

您不需要 SVG 方法,该方法仅适用于多档渐变。对于简单的渐变,例如您需要的(从浅到暗,从上到下),那么生成器将非常适合您。

简短

的回答是,试图在IE<=9中做渐变是一种痛苦。

  • filter方法很糟糕(并且也有一些令人讨厌的错误)。

  • SVG方法很难使用,带宽很大,无论如何它只处理IE9。

您拥有的唯一合理的解决方案是:

  1. 只要接受IE<=9不会做渐变,并为它们提供一个合理的纯色回退。

  2. 扔掉所有漂亮的CSS渐变,改用旧的PNG背景图形。

  3. 吞下你的反JS库偏见并使用CSS3Pie库。

就个人而言,我会选择选项 3。您始终可以为关闭 JS 的用户提供纯色回退。

如果你真的不准备这样做,那么恐怕你唯一剩下的合理解决方案就是老式的背景图像。

答案归于@davidpauljunior。

我认为这与标签有关。如果添加 CSS 规则显示:内联块,则渐变会显示。

干杯伙计们!

最新更新