Antworten:
Es gibt keinen Unterschied zwischen ihnen.
Wenn Sie für eine der background
Abkürzungen für ein halbes Dutzend Eigenschaften keinen Wert angeben , wird dieser auf den Standardwert gesetzt. none
und transparent
sind die Standardeinstellungen.
Man setzt explizit das background-image
to none
und setzt implizit das background-color
to transparent
. Der andere ist umgekehrt.
transparent
und definiert none
.
Als zusätzliche Informationen zu @Quentin antworten und wie er zu Recht sagt, ist die
background
CSS-Eigenschaft selbst eine Abkürzung für:
background-color
background-image
background-repeat
background-attachment
background-position
Das heißt, Sie können alle Stile in einem gruppieren, wie zum Beispiel:
background: red url(../img.jpg) 0 0 no-repeat fixed;
Dies wäre (in diesem Beispiel):
background-color: red;
background-image: url(../img.jpg);
background-repeat: no-repeat;
background-attachment: fixed;
background-position: 0 0;
Also ... wenn Sie festlegen: background:none;
Sie sagen, dass alle Hintergrundeigenschaften auf keine festgelegt sind ...
Sie sagen dies background-image: none;
und alle anderen auf den initial
Status (da sie nicht deklariert werden).
Also background:none;
ist:
background-color: initial;
background-image: none;
background-repeat: initial;
background-attachment: initial;
background-position: initial;
Wenn Sie nun nur die Farbe definieren (in Ihrem Fall transparent
), sagen Sie im Grunde:
background-color: transparent;
background-image: initial;
background-repeat: initial;
background-attachment: initial;
background-position: initial;
Ich wiederhole, wie @Quentin zu Recht sagt, dass die default
transparent
und none
-Werte in diesem Fall gleich sind. In Ihrem Beispiel und für Ihre ursprüngliche Frage: Nein, es gibt keinen Unterschied zwischen ihnen.
Aber! .. wenn du background:none
Vs sagst, background:red
dann ja ... es gibt einen großen Unterschied, wie ich sage, der erste würde alle Eigenschaften auf setzen none/default
und der zweite wird nur das ändern color
und bleibt der Rest in seinem default
Zustand.
Kurze Antwort : Nein, es gibt überhaupt keinen Unterschied (in Ihrem Beispiel und Ihrer ursprünglichen Frage)
Lange Antwort : Ja, es gibt einen großen Unterschied, der jedoch direkt von den Eigenschaften abhängt, die dem Attribut gewährt wurden.
default
)Anfangswert Die Verkettung der Anfangswerte seiner Langhand-Eigenschaften:
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
Beschreibungen finden Sie hierUpd2: Klären Sie die background:none;
Spezifikation besser .
console
auf dieser Demo jsfiddle.net/dnzy2/6
Um die anderen Antworten zu ergänzen: Wenn Sie alle Hintergrundeigenschaften auf ihren Anfangswert (einschließlich background-color: transparent
und background-image: none
) zurücksetzen möchten, ohne explizit einen Wert wie transparent
oder anzugeben none
, können Sie dies schriftlich tun:
background: initial;
background-color: transparent; background-image: none;
. Ein Benutzer-Stylesheet überschreibt möglicherweise einen oder beide dieser Werte, tut dies jedoch genau so, als obbackground-color: transparent; background-image: none;
es explizit geschrieben worden wäre.