Respostas:
Não há diferença entre eles.
Se você não especificar um valor para qualquer uma das meia dúzia de propriedades que background
é uma abreviação de, ele será definido como seu valor padrão. none
e transparent
são os padrões.
Um define explicitamente o background-image
para none
e implicitamente define o background-color
como transparent
. O outro é o contrário.
transparent
e none
.
Como informações adicionais sobre a resposta do @Quentin e, como ele diz corretamente, a
background
própria propriedade CSS, é uma abreviação de:
background-color
background-image
background-repeat
background-attachment
background-position
Isso significa que você pode agrupar todos os estilos em um, como:
background: red url(../img.jpg) 0 0 no-repeat fixed;
Isso seria (neste exemplo):
background-color: red;
background-image: url(../img.jpg);
background-repeat: no-repeat;
background-attachment: fixed;
background-position: 0 0;
Então ... quando você define: background:none;
você está dizendo que todas as propriedades de segundo plano são definidas como nenhuma ...
Você está dizendo isso background-image: none;
e todas as outras no initial
estado (como elas não estão sendo declaradas).
Então background:none;
é:
background-color: initial;
background-image: none;
background-repeat: initial;
background-attachment: initial;
background-position: initial;
Agora, quando você define apenas a cor (no seu caso transparent
), está basicamente dizendo:
background-color: transparent;
background-image: initial;
background-repeat: initial;
background-attachment: initial;
background-position: initial;
Repito, como o @Quentin diz, com razão, que os valores default
transparent
e neste caso são os mesmos, portanto, no seu exemplo e na sua pergunta original, não, não há diferença entre eles.none
Mas! .. se você disser background:none
Vs, background:red
então sim ... há uma grande diferença, como eu digo, o primeiro definiria todas as propriedades para none/default
e o segundo, apenas mudará o color
e permanecerá o restante em seu default
estado.
Resposta curta : Não, não há nenhuma diferença (no exemplo e na pergunta original)
Resposta longa : Sim, há uma grande diferença, mas depende diretamente das propriedades concedidas ao atributo.
default
)Valor inicial a concatenação dos valores iniciais de suas propriedades de longhand:
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
descrições aquiUpd2: Esclareça melhor a background:none;
especificação.
console
esta demonstração jsfiddle.net/dnzy2/6 #
Para complementar as outras respostas: se você deseja redefinir todas as propriedades de segundo plano para seu valor inicial (que inclui background-color: transparent
e background-image: none
) sem especificar explicitamente qualquer valor como transparent
ou none
, você pode fazer isso escrevendo:
background: initial;
background-color: transparent; background-image: none;
. Uma folha de estilo do usuário pode substituir um ou ambos os valores, mas o fará exatamente como sebackground-color: transparent; background-image: none;
tivesse sido escrita explicitamente.