我有以下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
。
答案 0 :(得分:5)
速记属性中提供的值的顺序通常非常重要。您知道font
需要特定订单,padding
,margin
,border-radius
等也是如此。background
也不例外。
Internet Explorer遵循W3C和Mozilla记录的属性顺序。这两个文档源都将速记属性顺序列为:
[ <color> || <image> || <repeat> || <attachment> || <position> ]
这意味着,如果存在repeat
,则必须遵循color
和/或image
,如果存在任何值。在您的情况下,image
存在(作为线性渐变),但不合适。 Microsoft的own documentation on MSDN提供相同的订单。
这里学到的教训并不是说Internet Explorer不是很糟糕,而是我们应该始终遵循标准组织和浏览器供应商提供的示例。
演示:http://jsfiddle.net/kgAGf/2/
注意:MSDN确实说您可以“以任何顺序”提供值,但我建议您遵循规范,除非另有说明。在这种情况下,只要repeat
为image
值,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;