Ответы:
Между ними нет никакой разницы.
Если вы не укажете значение для любого из полудюжины свойств, которые 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
и 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
) без явного указания какого-либо значения, такого как transparent
или none
, вы можете сделать это, написав:
background: initial;
background-color: transparent; background-image: none;
. Таблица стилей пользователя может переопределить одно или оба этих значения, но это будет сделано точно так, как если быbackground-color: transparent; background-image: none;
они были написаны явно.