几年前,我已经看到很多CSS代码使用background-image: url(xxx.png)
模拟渐变背景滤镜,因为只有(请纠正,如果我错了)IE专有滤镜将提供CSS渐变。
如今 - 请记住当今最常用的浏览器和便携式设备浏览器(智能手机/平板电脑),我应该使用:
要么
?
我在一些CSS梯度生成器(即collorzilla)中看到IE9问题怎么样?
更新:抱歉,我不是很清楚..我的问题不是“如何做到”,而是更高效,可接受或正确的方式。谢谢!
这是一个非常敏感的问题。在我工作的公司,我们根据客户和他们网站的观点进行了一些研究。结论是:IE8有很多用户。
有几种方法可以使渐变css工作,即我所知道的最好的一种方法是css3 pie:css3pie
但是,像素宽度或高度的图像格式圆角的重量几乎是微不足道的,唯一的问题是它会更多地生成请购单。
所以我的观点是使用css3pie ......它也可能适用于智能手机。
抱歉英文不好。
所以我自己也有同样的问题,希望找到关于性能的最佳解决方案,我得出以下结论:
Pro Gradient:
专业形象:
这些是我能想到的因素,希望我没有留下任何重大的东西。至于我走的方向,我倾向于最终使用渐变,以获得前面提到的灵活性。带宽也有点令人担忧,因为我经常在这些偏远地区接待用户。
您可以执行HTML5 Boilerplate所做的事情:
<!DOCTYPE html>
<!--[if lt IE 7]><html class="lt-ie10 lt-ie9 lt-ie8 lt-ie7"><![endif]-->
<!--[if IE 7]> <html class="lt-ie10 lt-ie9 lt-ie8"><![endif]-->
<!--[if IE 8]> <html class="lt-ie10 lt-ie9"><![endif]-->
<!--[if IE 9 ]> <html class="lt-ie10"><![endif]-->
<!--[if gt IE 9]><!--> <html class=""><!--<![endif]-->
现在你有一个用于IE的<html>
类:
IE6 - > lt-ie10,lt-ie9,lt-ie8,lt-ie7 IE7 - > lt-ie10,en-ie9,en-us8, IE8 - > lt-ie10,lt-ie9 IE9 - > lt-ie10
在你的CSS中:
.element { background-image: /*Your CSS3 gradient declaration */; }
.lt-ie10 { background-image: url(/*Your PNG file*/); }