更高效的css:背景图像还是背景rgba? 哪一个更有效:

更高效的css:背景图像还是背景rgba? 哪一个更有效:,css,Css,我试图找出哪种提供半透明背景的方法更有效/更快: background-color: rgba(255, 255, 255, .12); 或 找不到任何资源 我知道背景色不需要HTTP请求,背景图像需要更多处理 笔记: 兼容性是一个大问题,因为我(没有人真的应该)不能放弃对

我试图找出哪种提供半透明背景的方法更有效/更快:

background-color: rgba(255, 255, 255, .12);

找不到任何资源

我知道
背景色
不需要HTTP请求,
背景图像
需要更多处理


笔记: 兼容性是一个大问题,因为我(没有人真的应该)不能放弃对 很多答案/评论都提到
背景色:rgba
更快、更高效,但
背景图像
更易于兼容。如果是真的(没有看到任何硬测试),那么:除了使用这样的库之外,还有其他回退解决方案吗?i、 e.(这并不像同时做这两件事那样有效——而是沿着这些思路寻找一些东西)


我要说的是,第一种方法效率更高,速度更快。后者是一个更兼容的选项,如果第一个更有效的方法不适用于您希望使用的浏览器,则应使用后者。

第一个方法肯定会更快。使用映像将使用额外的HTTP请求来获取它,映像的大小也会影响加载时间。使用十六进制颜色值而不是rgb也会更好,因为浏览器最终会将rgb转换为十六进制。

高效
更快
对我来说意味着不同。但是,IE8及以下版本不支持
rgba()。你可能想把第二种方法看作是第一种方法的后退。除了添加一个像现代化器这样的库或者做浏览器检测之外,还有什么方法可以做到这一点呢?(没有得到
的支持是一个交易破坏者,因此我将使用
背景图像
)绝对是第一种方法。第二部分需要执行另一个HTTP请求。具体取决于实现,但处理图像(即使是很小的图像)和处理其重复可能要稍微昂贵一些,以准备和渲染。第一部分是正确的,但说十六进制颜色比
rgba()
快没有任何意义。十六进制是某些字节的字符串表示形式;浏览器必须将其中一个来回转换为它们,而不考虑表示方式。(但只有一次,所以任何差异都可以忽略不计。)还有一个事实,你不能在CSS中用十六进制表示透明颜色。我正在寻找一个测试,以证明:)-另外,如果
rgba
更快,我如何处理回退而不使用类似
Modernizer
background-image: url('/path/to/semi-transparent/pixel.png');
background: rgba(255, 255, 255, .12) url('/path/to/semi-transparent/pixel.png');