Как разместить изображения в CSS документе
Порядок записи значений background
Свойство background объединяет все свойства для фона. Вы можете перечислить в нем значения для:
background-image
background-position
background-size
(CSS3)background-repeat
background-attachment
background-origin
(CSS3)background-clip
(CSS3)background-color
Порядок написания значений может быть произвольным — браузер сам определит соответствие свойств и значений. Но для схематичного пояснения мы используем последовательность из спецификации CSS:
Как видно на рисунке, мы пишем значения всех свойств через пробел как обычно. Исключением являются свойства background-position
и background-size
— их необходимо разделять знаком слэша /
.
Ни одно значение не является обязательным: вы можете не указывать значений тех свойств, которые хотите оставить по умолчанию. К слову, настройки background
по умолчанию следующие:
background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; background-color: transparent;
Свойство background-color для установки фонового цвета
Для обозначения фонового цвета элемента используется свойство background-color
. По умолчанию все элементы имеют прозрачный фон. Рассмотрим синтаксис:
background-color: цвет | transparent;
Значение transparent
устанавливает прозрачный фон. Под понятием «цвет» может быть запись цвета в допустимом формате для CSS. Допустимыми форматами являются: шестнадцатеричный код, название цвета, RGB, RGBA, HSL, HSLA. Далее пример, где используется три формата записи черного цвета:
div {
background-color: #000;
}
div {
background-color: rgb(0, 0, 0);
}
div {
background-color: black;
}
Свойство background-image для установки фонового изображения
Свойство background-image
используется для установки фонового изображения. Позволительно устанавливать несколько изображений фона, перечисляя их через запятую. Если установлен цвет фона при помощи свойства background-color
, то он (цвет) будет отображаться до тех пор, пока загружается фоновое изображение или в случае его недоступности. Рассмотрим синтаксис:
background-image: url|none;
Мы указали только два значения, но помимо них есть возможность указывать четыре функции, о которых речь пойдет позже.
url
– URL-адрес изображения. Чтобы указать несколько изображений, разделите URL-адреса запятой;none
– фоновое изображение не будет отображаться. Оно по умолчанию;linear-gradient()
– устанавливает линейный градиент в качестве фона. Определите как минимум два цвета (сверху вниз);radial-gradient()
– устанавливает радиальный градиент в качестве фонового изображения. Определите как минимум два цвета (от центра до краев);repeating-linear-gradient()
– повторяет линейный градиент;repeating-radial-gradient()
– повторяет радиальный градиент.
Пример:
body {
background-image: url("bg.jpg");
}
Свойство background-attachment устанавливает прокрутку фона
При работе с фоном часто требуется зафиксировать изображение фона, чтобы при прокрутке элемента оно не прокручивалось вместе с элементом. Это позволяет реализовать свойство background-attachment
. Его синтаксис представлен ниже. Через запятую можно перечислить различные значения, если указано несколько фоновых изображений.
background-attachment: fixed | local | scroll | initial | inherit;
Как видно из вышеприведенного кода, данное свойство имеет пять значений. Что они означают:
scroll
– фоновое изображение будет прокручиваться вместе со страницей. Оно установлено по умолчанию.fixed
– фоновое изображение не будет прокручиваться вместе со страницей.local
– фоновое изображение будет прокручиваться вместе с содержимым элемента.initial
– устанавливается значение по умолчанию.inherit
– наследует значение свойства родителя.
<div style = "height: 3000px">
Какой-то текста
</div>
body {
background-image: url("bg.png"); /* Путь к изображению, которое используется для фона*/
background-attachment: fixed; /* Фон прокручиваться не будет */
}
Свойство background-blend-mode определяет режим наложения фонового изображения
Определяет, как будет накладываться одно фоновое изображение, на другое или на фоновый цвет. То есть, первым задается какой-то фон, при помощи свойства background-image
, вторым задается фоновое изображение, для которого мы определяем стиль наложения. Позволительно указывать несколько фоновых изображений, т.е. больше двух при помощи background-image
и в background-blend-mode
использовать ряд значений, перечисленных через запятую. Стоит обратить внимание на версии браузеров, с которых начинается поддержка свойства background-blend-mode
, например, Internet Explorer не поддерживает его вовсе. Рассмотрим синтаксис:
background-blend-mode: normal | multiply | screen | overlay | darken | lighten | color-dodge | color-burn | hard-light | soft-light | difference | exclusion | hue | saturation | color | luminosity;
Расшифруем все эти значения. Я не расписывал их, так как это достаточно сложно описать, поэтому каждое значение лучше рассмотреть экспериментальным путем, так будет понятнее.
normal
– Обычный. Режим по умолчанию.multiply
– Умножение.screen
– Осветление.overlay
– Перекрытие.darken
– Темнее.lighten
– Светлее.color-dodge
– Осветление основы.color-burn
– Затемнение основы.hard-light
– Направленный свет.soft-light
– Рассеянный свет.difference
– Разница.exclusion
– Исключение.hue
– Тон.saturation
– Насыщенность.color
– Цвет.luminosity
– Яркость.
Далее пример использования свойства:
div {
width: 500px;
height: 500px;
background-image: url("bg.jpg"), url("superimposed.png");
background-blend-mode: darken;
}
Свойство background-clip определяет отображение фона под границами
Фон может отображаться под границами, внутри их или внутри контента. Чтобы это реализовать, необходимо использовать свойство background-clip
. Как ранее было обозначено, оно принимает три значения:
border-box
– фон будет отображаться под рамкой;padding-box
– фон будет отображаться внутри рамки;content-box
– фон будет отображаться внутри контента.
Синтаксис свойства background-clip
:
background-clip: [border-box |padding-box | content-box];
Далее рассмотрим наглядный пример использования свойства background-clip
:
.clip {
background: #f1f1f1;
border: 20px dotted #000000;
background-clip: border-box;
padding: 10px;
height: 50px;
}
Свойство background-origin для позиционирования фона
С помощью свойства background-origin
можно позиционировать фон, при этом свойство background-attachment
не должно иметь значение fixed
. Значения, которые принимает background-origin
:
border-box
– позиционирование фона осуществляется относительно границы;padding-box
– позиционирование фона осуществляется относительно края элемента, при чем толщина границы учитывается;content-box
– позиционирование фона осуществляется относительно содержимого элемента;
Синтаксис свойства background-origin
:
background-origin: [border-box |padding-box | content-box];
Рассмотрим пример:
.origin {
background: url("img.jpg") no-repeat;
background-origin: content-box;
border: 10px solid #000;
padding: 10px;
height: 100px;
}
Свойство background-position для определения начального положения фона
С помощью свойства background-position
достаточно просто устанавливается начальное положение фона. Это свойство имеет два значения, которые могут быть заданы ключевым словом, в процентах или в иных значениях допустимых в CSS. Первое значение определяет положение по горизонтали (left
, center
, right
), второе – по вертикали (top
, center
, bottom
). Через запятую можно указывать значения для нескольких фонов. Синтаксис свойства background-position
следующий:
background-position: значение1 значение2;
При указании одного ключевого слова, второе будет равно center. Комбинации ключевых слов могут быть следующими:
left top
left center
left bottom
right top
right center
right bottom
center top
center center
center bottom
Рассмотрим пример:
body {
background-image: url(bg.jpg);
background-position: 50% 50%;
}
Свойство background-repeat устанавливает повторение фона
Устанавливает, как будет повторяться фон, установленный при помощи свойства background-image
. Повторение может быть по вертикали, по горизонтали или сразу в обе стороны. Допустимы перечисления через запятую, чтобы задать для нескольких изображений. Синтаксис:
background-repeat: значение;
Свойство background-repeat
принимает 6 значений:
repeat
– Фоновое изображение повторяется как по вертикали, так и по горизонтали. Последнее изображение будет обрезано, если оно не помещается. Это по умолчанию;repeat-x
– Фоновое изображение повторяется только по горизонтали;repeat-y
– Фоновое изображение повторяется только по вертикали;no-repeat
– Фоновое изображение не повторяется. Изображение будет показано только один раз;space
– Фоновое изображение повторяется в максимально возможной степени без отсечения. При необходимости добавляются свободные пространства между изображениями;round
– Фоновое изображение повторяется и сжимается или растягивается, чтобы заполнить пространство (без пропусков);
Рассмотрим пример:
body {
background-image: url(bg.jpg);
background-repeat: repeat;
}
Свойство background-size определяет размер фонового изображения
Для установки размера фонового изображения используется свойство background-size
. Оно может принимать как два, так и одно значение. Первое значение указывается для ширины, второе для высоты. Если указано только одно значение, то второе значение (высота) принимает значение auto
. Синтаксис:
background-size: значение1 значение2;
Значения могут задаваться в любых разрешенных в CSS единицах, процентах и ключевыми словами:
cover
– размеры изображения изменяются таким образом, чтобы сохранялись пропорции, ширина или высота равнялась размерам блока;contain
– размеры изображения изменяются таким образом, чтобы сохранялись пропорции, и изображение полностью поместилось в блок;auto
– например, если первое значение равно 200px, а второе auto, то высота изображения будет вычисляться автоматически с сохранением пропорций.
Рассмотрим пример:
div {
background: url(bg.jpg);
background-size: cover;
}