Часто, когда мы задаем html элементу фоновую картинку необходимо сделать отступ от границ блока, чтобы предать блоку более эстетичный вид. Обычно это делается с помощью свойства background-position, например так:
1 2 3 4 5 6 |
.block { padding: 20px; background: #eee url("http://placehold.it/100x50") no-repeat; background-position: bottom 20px right 20px; } |
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore …
В этом примере можно заметить, что отступ фонового изображения от границ блока равен 20px, что совпадает с внутренним отступом (padding) самого блока. Соответственно, если в будущем мы решим изменить внутренний отступ блока, нам также придется скорректировать и отступ фонового изображения, таким образом правки придется вносить сразу в 3 местах, что не очень удобно и чревато ошибками.
Свойство background-origin позволит нам избежать повторения. background-origin имеет значение по-умолчанию padding-box, это значит что фоновая картинка размещается на внешней границе внутреннего отступа(padding):
Фоновая картинка начинается здесь
Если мы переопределим значение свойства на content-box, то фоновая картинка будет находится не на внешней стороне границ padding, а упадет на уровень содержимого:
Содержимое
Фоновая картинка начинается здесь
Содержимое
1 2 3 4 5 6 |
CSS: padding: 20px; background: #eee url("http://placehold.it/100x50") no-repeat bottom right; background-origin: content-box; |
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore …
Конечно же код не стал короче, но он стал логичнее, пропала необходимость делать изменения в нескольких местах, а это крайне важное свойство в больших проектах 🙂