css - 背景图像回退 : should I use CSV or multiple rules?

标签 css background-image gradient fallback

大多数现代浏览器,甚至 IE9,都支持 background-image 的逗号分隔值 (CSV)。根据MDN , 绘画顺序是从右到左 - 定义的第一个图像将堆叠在顶部,任何后续图像将堆叠在下面(因此如果第一个图像不透明则隐藏)。

.masthead {
  background-image: url('top.jpg'), url('bottom.jpg');
}

Harry Roberts uses an insightful technique通过将渐变设置为背景图像仍在加载或加载失败时的后备。他建议使用 CSV 功能。

.masthead {
  background-image: url('top.jpg'),
    linear-gradient(to right, #807363 0%, #251d16 50%, #3f302b 75%, #100b09 100%);
}

这种方法是否比简单地定义两次 background-image 属性更高效?与以下技术相比,该技术有哪些优势或劣势?

.masthead {
  background-image: linear-gradient(to right, #807363 0%, #251d16 50%, #3f302b 75%, #100b09 100%);
  background-image: url('top.jpg');
}

最佳答案

前两个示例使用 CSS3 multiple backgrounds .出于各种原因,例如性能和浏览器支持,您不应将此用作后台回退技术。

最后一个例子应该用于后台回退。内存中,默认会使用上次的background-image定义,如果无法解析该值,则使用之前的定义等。

另见 background generator by ColorZilla它会自动生成所需的回退。

关于css - 背景图像回退 : should I use CSV or multiple rules?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40219981/

相关文章:

css - 背景图像位置,中心中心不起作用

javascript - 使用 CSS/JS 渐变淡出一个 div

css - 如何使 CSS 渐变看起来平滑?

swift - 如何使单元格具有渐变背景?

javascript - 如何只在最后一个 <li> 给出透明的六边形 Angular ?

jquery - 如何使用背景位置创建加载图像 Sprite

php - 使用 facebook 评论时错误 iframe 不会在 Chrome 中滚动?

css - 背景混合模式不适用于移动设备

css - Laravel + Angular : Securing Angular Pages

html - 向 div 添加垂直滚动但出现一些错误