IE 11中的多个背景

时间:2014-02-05 02:45:52

标签: css internet-explorer

我有以下css

background: url(../images/clouds_bg.png) center, repeat-y -webkit-linear-gradient(#73B9FF, #FFF);
background: url(../images/clouds_bg.png) center, repeat-y linear-gradient(#73B9FF, #FFF);

虽然我没有尝试使用IE 10及以下版本,但我无法使用Internet Explorer 11

2 个答案:

答案 0 :(得分:5)

速记属性中提供的值的顺序通常非常重要。您知道font需要特定订单,paddingmarginborder-radius等也是如此。background也不例外。

Internet Explorer遵循W3CMozilla记录的属性顺序。这两个文档源都将速记属性顺序列为:

[ <color> || <image> || <repeat> || <attachment> || <position> ]

这意味着,如果存在repeat,则必须遵循color和/或image,如果存在任何值。在您的情况下,image存在(作为线性渐变),但不合适。 Microsoft的own documentation on MSDN提供相同的订单。

这里学到的教训并不是说Internet Explorer不是很糟糕,而是我们应该始终遵循标准组织和浏览器供应商提供的示例。

演示:http://jsfiddle.net/kgAGf/2/

注意:MSDN确实说您可以“以任何顺序”提供值,但我建议您遵循规范,除非另有说明。在这种情况下,只要repeatimage值,Internet Explorer就可以使用image之前的url()。使用linear-gradient需要以上订单。

答案 1 :(得分:2)

IE 10/11似乎要求您在其他背景属性之前声明background-image(背景颜色除外)。每个其他浏览器都正确应用了该规则。

background: url(../images/clouds_bg.png) center, linear-gradient(#73B9FF, #FFF) repeat-y;