Какая разница между указанием цвета фона с помощью background
и background-color
?
Фрагмент # 1
body { background-color: blue; }
Фрагмент # 2
body { background: blue; }
Какая разница между указанием цвета фона с помощью background
и background-color
?
Фрагмент # 1
body { background-color: blue; }
Фрагмент # 2
body { background: blue; }
Предполагая, что это два разных свойства, в вашем конкретном примере нет никакой разницы в результате, так как background
на самом деле является ярлыком для
цвет фона
Фоновое изображение
фон положение
фон-повторить
фон-вложение
фон-клип
фон-происхождения
background-size
Таким образом, помимо background-color
, используя ярлык background
, вы также можете добавить одно или несколько значений без повторения какого-либо другого свойства background-*
более одного раза.
Какой из них выбрать, по сути, зависит от вас, но он также может зависеть от конкретных условий ваших деклараций стиля (например, если вам нужно переопределить только background-color
при наследовании других связанных свойств background-*
от родительского элемента, или если вам нужно удалить все значения, кроме background-color
).
background
выполнит все предыдущие спецификации background-color
, background-image
и т.д. Это в основном сокращенная версия, но reset.
Я иногда использую его, чтобы перезаписать предыдущие спецификации background
в настройках шаблона, где мне бы хотелось следующее:
background: white url(images/image1.jpg) top left repeat;
:
background: black;
Таким образом, все параметры (background-image
, background-position
, background-repeat
) будут reset соответствовать их значениям по умолчанию.
О производительности CSS:
background
vs background-color
:
Сравнение 18 цветовых образцов, сделанных 100 раз на странице как маленькое прямоугольники, один раз с фон и один раз с фоновым цветом.
Пока эти числа от перезагрузки одной страницы, с последующим обновляет время рендеринга, но разница в процентах была в основном одно и то же каждый раз.
Это экономия почти 42,6 мс, почти в два раза быстрее, при использовании вместо фона фона в Safari 7.0.1. Chrome 33 похоже, примерно то же самое.
Это честно сдуло меня, потому что в течение долгого времени по двум причинам:
- Я обычно всегда спорю об эксплицитности в свойствах CSS, особенно с фоном, потому что это может негативно повлиять на специфику в будущем.
- Я думал, что когда браузер видит
background: #000;
, они действительно видятbackground: #000 none no-repeat top center;
. У меня нет ссылки на ресурс здесь, но я помню, как это читал.
Ссылка: https://github.com/mdo/css-perf#background-vs-background-color
С помощью background
вы можете установить все свойства background
, например:
background-color
background-image
background-repeat
background-position
С помощью background-color
вы можете просто указать цвет фона
background: url(example.jpg) no-repeat center center #fff;
VS.
background-image: url(example.jpg);
background-position: center center;
background-repeat: no-repeat;
background-color: #fff;
(см. Caption: Background - Shorthand свойство)
Одно из отличий:
Если вы используете изображение в качестве фона следующим образом:
background: url('Image Path') no-repeat;
то вы не можете переопределить его с помощью свойства background-color.
Но если вы используете фон для применения цвета, он будет таким же, как и фоновый, и может быть переопределен.
например: http://jsfiddle.net/Z57Za/11/ и http://jsfiddle.net/Z57Za/12/
Нет никакой разницы. Оба будут работать одинаково.
Свойства фона CSS используются для определения фоновых эффектов элемент.
Свойства CSS, используемые для фоновых эффектов:
- background-color
- background-image
- background-repeat
- background-attachment
- фон положение
Фоновое свойство включает все эти свойства, и вы можете просто записать их в одной строке.
Они оба одинаковы. Есть несколько фоновых селекторов (т.е. background-color
, background-image
, background-position
), и вы можете получить к ним доступ либо через более простой селектор background
, либо более конкретный. Например:
background: blue url(/myImage.jpg) no-repeat;
или
background-color: blue;
background-image: url(/myImage.jpg);
background-repeat: no-repeat;
Различие заключается в том, что свойство shtand background
задает несколько связанных с фоном свойств. Он устанавливает их все, даже если вы укажете только, например. значение цвета, так как тогда другие свойства устанавливают на их начальные значения, например. background-image
до none
.
Это не означает, что он всегда будет переопределять любые другие настройки для этих свойств. Это зависит от каскада в соответствии с обычными, обычно неправильно понимаемыми правилами.
На практике стенография имеет тенденцию быть более безопасной. Это предосторожность (не полная, но полезная) от случайного получения некоторых неожиданных свойств фона, таких как фоновое изображение, из другой таблицы стилей. Кроме того, он короче. Но вы должны помнить, что это действительно означает "установить все свойства фона".
Это лучший ответ. Сокращенное (фоновое) значение для reset и DRY (в сочетании с longhand).
Сравнение 18 цветовых образцов, сделанных 100 раз на странице как маленькое прямоугольники, один раз с фоном и один раз с фоном.
Я воссоздал эксперимент CSS performance, и результаты в наши дни значительно отличаются.
background
Chrome 54: 443 (мкс/div)
Firefox 49: 162 (мкс/div)
Edge 10: 56 (мкс/div)
background-color
Chrome 54: 449 (мкс/div)
Firefox 49: 171 (мкс/div)
Edge 10: 58 (мкс/div)
Как вы видите - практически нет разницы.
background
- это ярлык для background-color
и несколько других связанных с фоном материалов, как показано ниже:
background-color
background-image
background-repeat
background-attachment
background-position
Прочитайте приведенную ниже инструкцию от W3C:
Фон - сокращенное свойство
Чтобы сократить код, также можно указать все свойства фона в одном имущество. Это называется сокращенным свойством.Сокращенное свойство фона - фон:
body {
background: white url("img_tree.png") no-repeat right top;
}
При использовании стенографического свойства порядок значений свойств:
background-color background-image background-repeat background-attachment background-position
Не имеет значения, если одно из значений свойств отсутствует, как долго так как другие находятся в этом порядке.
Я заметил при создании писем для Outlook...
/*works*/
background: gray;
/*does not work*/
background-color: gray;
Вы можете сделать некоторые довольно аккуратные вещи, как только вы поймете, что вы можете играть с наследованием с этим. Однако сначала дайте понять что-то из этого doc на фоне:
С CSS3 вы можете применять несколько фонов к элементам. Эти слоистые поверх друг друга с первым фоном, который вы предоставляете сверху и последний фон, указанный в спине. Только последний фон может включать цвет фона.
Итак, когда делаете:
background: red;
Он устанавливает фоновый цвет на красный, поскольку красный - это последнее значение.
Когда делаете:
background: linear-gradient(to right, grey 50%, yellow 2%) red;
Красный цвет фона снова НО, вы увидите градиент.
.box{
border-radius: 50%;
width: 200px;
height: 200px;
background: linear-gradient(to right, grey 50%, yellow 2%) red;
}
.box::before{
content: "";
display: block;
margin-left: 50%;
height: 50%;
border-radius: 0 100% 100% 0 / 50%;
transform: translateX(70px) translateY(-26px) rotate(325deg);
background: inherit;
}
<div class="box">
</div>
Есть ошибка относительно фона и фона
разность этого, при использовании фона, иногда при создании веб-страницы в CSS background: #fff//может перемещаться над блоком изображения маски ( "верхний элемент, текст или изображение" )) поэтому лучше всегда использовать фоновый цвет для безопасного использования, в вашем дизайне, если его индивидуальный
Одна вещь, которую я заметил, что я не вижу в документации, использует
background: url("image.png")
короткая рука, как показано выше, если изображение не найдено, оно отправляет код 302 вместо игнорирования, как если бы вы использовали
background-image: url("image.png")