Answers:
它们之间没有区别。
如果您没有为background
速记的任何六个属性指定值,则将其设置为其默认值。none
和transparent
是默认值。
一个显式设置为background-image
,none
而隐式设置background-color
为transparent
。另一种情况是相反的。
transparent
和none
。
作为@Quentin答案的附加信息,正如他正确地说的那样,
background
CSS属性本身是以下内容的简写:
background-color
background-image
background-repeat
background-attachment
background-position
就是说,您可以将所有样式归为一类,例如:
background: red url(../img.jpg) 0 0 no-repeat fixed;
(在此示例中)为:
background-color: red;
background-image: url(../img.jpg);
background-repeat: no-repeat;
background-attachment: fixed;
background-position: 0 0;
所以……当您设置时:background:none;
您是在说所有背景属性都设置为none ……
您是在说,background-image: none;
而所有其他属性都处于initial
状态(因为它们没有被声明)。
因此,background:none;
是:
background-color: initial;
background-image: none;
background-repeat: initial;
background-attachment: initial;
background-position: initial;
现在,当您仅定义颜色(在您的情况下transparent
)时,您基本上是在说:
background-color: transparent;
background-image: initial;
background-repeat: initial;
background-attachment: initial;
background-position: initial;
我重复一遍,正如@Quentin正确地说在这种情况下,default
transparent
and none
值相同,因此在您的示例中,对于您的原始问题,不,它们之间没有区别。
但是!.....如果您说background:none
Vs,background:red
那么是......有很大的不同,正如我所说,第一个将所有属性设置为none/default
,第二个将仅更改属性,其余属性color
保持在他的default
状态。
简短答案:不,根本没有区别(在您的示例和原始问题中)
长长答案:是,有很大区别,但直接取决于授予属性的属性。
default
)初始值其长期属性的初始值的串联:
background-image: none
background-position: 0% 0%
background-size: auto auto
background-repeat: repeat
background-origin: padding-box
background-style: is itself a shorthand, its initial value is the concatenation of its own longhand properties
background-clip: border-box
background-color: transparent
background
说明Upd2:更好地阐明background:none;
规格。
console
此演示jsfiddle.net/dnzy2/6
background-color: transparent; background-image: none;
。用户样式表可能会覆盖这些值中的一个或两个,但是这样做的方式就像background-color: transparent; background-image: none;
已显式编写的一样。