Я слышу вас о лучших практиках, но, как уже упоминалось, различия в обработке и даже времени загрузки незначительны.Не рекомендуется применять эти правила, кроме того, что имеет смысл в вашей таблице стилей.Реальная разница в том, что они по-разному влияют на наследуемые свойства.Установка background-color: white;
будет перезаписывать только правило background-color
(независимо от того, было ли оно изначально установлено с background
или background-color
), но background
будет перезаписывать любой / все background
набор правил, таким образом потенциально убивая фоновые изображенияи связанный background-repeat
, и т. д. Вот пример:
.box {
background: url(star.png); // set with just background instead of background-image
width: 100px;
height: 100px;
float: left;
margin: 10px;
}
.box1 {
background-color: blue;
}
.box2 {
background: green;
}
С HTML как:
<div class="box1 box"></div>
<div class="box2 box"></div>
.box1 покажет изображение star.png (с синим фоном, еслиизображение прозрачное), в то время как .box2 будет показывать только зеленый фон, без изображения.Урок передового опыта с этими двумя правилами заключается в оценке CSS-авторинга и наследования в целом, а не производительности рендеринга.Имея это в виду, как правило, лучше применять background
к наиболее общему / обобщенному правилу элемента, а затем перезаписывать свойства в более конкретных экземплярах, используя классы или идентификаторы, с помощью background-color
, background-image
и т. Д.