Описание
Значение background-size
в CSS позволяет задавать размер фонового изображения. Изображение может быть оставлено в исходном размере, растянуто, или подогнано под размеры доступного пространства.
Примечание: Предупреждение: Если значение этого свойства не задано в сокращённом свойстве background
, которое применяется к элементу после CSS-свойства background-size
, то значение этого свойства затем сбрасывается до исходного значения c помощью сокращённого свойства.
Начальное значение | auto auto |
---|---|
Применяется к | все элементы. Это также применяется к ::first-letter и ::first-line . |
Наследуется | нет |
Проценты | относительно области позиционирования фона |
Обработка значения | как указано, но с относительной длиной, конвертируемой в абсолютные длины |
Animation type | repeatable list of simple list of length, percentage, or calc |
Синтаксис
/* Ключевые слова */
background-size: cover;
background-size: contain;
/* Указано одно значение - ширина изображения, */
/* высота в таком случае устанавливается в auto */
background-size: 50%;
background-size: 3em;
background-size: 12px;
background-size: auto;
/* Указаны два значения - */
/* ширина и высота соответственно */
background-size: 50% auto;
background-size: 3em 25%;
background-size: auto 6px;
background-size: auto auto;
/* Значения для нескольких фонов */
/* Не путайте такую запись с background-size: auto auto */
background-size: auto, auto;
background-size: 50%, 25%, 25%;
background-size: 6px, auto, contain;
/* Глобальные значения */
background-size: inherit;
background-size: initial;
background-size: unset;
Значения
<размер>
-
Значение
позволяет масштабировать размер фонового изображения в заданном измерении. Отрицательный размер не допускается.<length>
<проценты>
-
Значение
, которое масштабирует фоновое изображение в соответствующем измерении до указанного процента области расположения фона, которое определяется значением<percentage>
background-origin
. Область расположения фона по умолчанию является областью, содержащей содержимое поля и его отступы; область также может быть изменена на содержимое или область, содержащую границы, отступы и содержимое. Еслиattachment
фона являетсяfixed
, область позиционирования фона вместо этого является всей областью окна браузера, не включая область, покрытую полосами прокрутки, если они присутствуют. Отрицательные проценты не допускаются. auto
-
Значение позволяет изменять размер фонового изображения в соответствии с заданным направлением, сохраняя его пропорции.
contain
-
Масштабирует картинку так, чтобы она максимально накрыла собой весь блок. Картинка при этом не обрезается, а вписывается в блок с сохранением пропорций.
cover
-
Ключевое слово, обратное
contain
. Масштабирует изображение как можно больше c сохранением пропорций изображения (изображение не становится сплющенным). Когда изображение и контейнер имеют разные размеры, изображение обрезается либо влево / вправо, либо сверху / снизу.
Интерпретация возможных значений зависит от внутренних размеров изображений (ширина и высота) и внутренней пропорции (соотношение ширины и высоты). Растровое изображение всегда имеет внутренние размеры и внутреннюю пропорцию. Векторное изображение может иметь оба внутренних размера (и, следовательно, должно иметь внутреннюю пропорцию). Он также может иметь одно или не иметь внутренних размеров, и в любом случае он может иметь или не иметь внутреннюю пропорцию. Градиенты обрабатываются как изображения без внутренних размеров или внутренней пропорции.
Примечание: Предупреждение: Это поведение изменилось в Gecko 8.0 (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5). До этого, градиенты обрабатывались как изображения без внутренних размеров, с внутренней пропорцией, идентичной пропорции области расположения фона.
Фоновые изображения, сгенерированные из элементов с использованием -moz-element
(en-US) (которые фактически соответствуют элементу) в настоящее время обрабатываются как изображения с размерами элемента, или как область расположения фона, если элементом является SVG, с соответствующей внутренней пропорцией.
Примечание: Предупреждение: Это не определённое в настоящее время поведение, которое заключается в том, что внутренние размеры и пропорция должны быть такими же как у элемента во всех случаях.
Визуализированный размер фонового изображения затем вычисляется следующим способом:
- Если оба атрибута в
background-size
заданы и различны отauto
: -
Фоновое изображение отображается в указанном размере.
- Если
background-size
содержитcontain
илиcover
: -
Изображение визуализируется с сохранением его внутренней пропорции при наибольшем размере, который содержится внутри области размещения фона или покрывает её. Если изображение не имеет внутренней пропорции, оно отображается с размером области расположения фона.
- Если
background-size
установлен какauto
илиauto auto
: -
Если изображение имеет оба внутренних размера, оно отображается с таким размером. Если оно не имеет внутренних размеров и внутренней пропорции, оно отображается с размером области расположения фона. Если оно не имеет размеров, но имеет пропорцию, оно отображается так, если был был бы указан
contain
. Если изображение имеет один внутренний размер и пропорцию, оно отображается с размером, определённым этим одним размером и пропорцией. Если изображение имеет один внутренний размер, но не имеет пропорцию, оно отображается с использованием внутреннего размера и соответствующим размером области позиционирования фона. - Если background-size содержит один атрибут
auto
и один не-auto
: -
Если изображение имеет внутреннюю пропорцию, то визуализируйте его используя указанный размер, и вычислите другой размер из указанного размера и внутренней пропорции. Если изображение не имеет внутренней пропорции, используйте указанный размер для этого размера. Для другого размера, используйте соответствующее внутреннее измерение изображения, если оно есть. Если такого внутреннего размера нет, используйте соответствующий размер области расположения фона.
Обратите внимание, что изменение размера фона для векторных изображений, в которых отсутствуют внутренние размеры или пропорции, ещё не полностью реализовано во всех браузерах. Будьте осторожны, полагаясь на поведение, описанное выше, и тестируйте в нескольких браузерах (в частности, включая версии Firefox 7 или более ранней версии и Firefox 8 или более поздней версии), чтобы убедиться, что различные визуализации приемлемы.
Формальный синтаксис
Примеры
Эта демонстрация background-size: cover
и эта демонстрация background-size: contain
предназначены для открытия в новых окнах, чтобы вы могли видеть, как contain
и cover
ведут себя, когда размеры области расположения фона изменяются. Эта серия демонстраций, как работает background-size
и взаимодействует с другими свойствами background-*
, должна в значительной степени охватить оставшуюся основу в том, как использовать background-size
отдельно и в сочетании с другими свойствами.
Замечания
Если вы указываете градиент в качестве фона и указали background-size
, который будет использоваться вместе с ним, лучше не указывать размер, который использует единственную автоматическую составную часть, или задаётся с использованием только значения ширины (для примера, background-size: 50%
). Рендеринг градиентов в таких случаях изменился в Firefox 8, и в настоящее время он обычно несовместим во всех браузерах, которые не реализуют рендеринг в соответствии с CSS3 спецификацией background-size
и с CSS3 спецификацией градиента значений изображения.
.bar {
width: 50px; height: 100px;
background-image: gradient(...);
/* Лучше не использовать */
background-size: 25px;
background-size: 50%;
background-size: auto 50px;
background-size: auto 50%;
/* Допускается */
background-size: 25px 50px;
background-size: 50% 50%;
}
Обратите внимание, что особенно не рекомендуется использовать размер в пикселях и размер auto
с градиентом, потому что невозможно воспроизвести рендеринг в версиях Firefox до 8 и в браузерах, не реализующих рендеринг Firefox 8, без знания точного размера элемента, фон которого указывается.
Спецификации
Specification |
---|
CSS Backgrounds and Borders Module Level 3 # the-background-size |
Совместимость с браузерами
BCD tables only load in the browser
Смотрите также
Older Browser Support
If older browser support is a must, so you can’t go with multiple backgrounds or gradients, you’re probably going to want to do something like this on a spare div
element:
#background {
position: fixed;
top: 0;
left: 0;
width: 50%;
height: 100%;
background-color: pink;
}
Example: http://jsfiddle.net/PLfLW/1704/
The solution uses an extra fixed div that fills half the screen. Since it’s fixed, it will remain in position even when your users scroll. You may have to fiddle with some z-indexes later, to make sure your other elements are above the background div, but it shouldn’t be too complex.
If you have issues, just make sure the rest of your content has a z-index higher than the background element and you should be good to go.
Modern Browsers
If newer browsers are your only concern, there are a couple other methods you can use:
Linear Gradient:
This is definitely the easiest solution. You can use a linear-gradient in the background property of the body for a variety of effects.
body {
height: 100%;
background: linear-gradient(90deg, #FFC0CB 50%, #00FFFF 50%);
}
This causes a hard cutoff at 50% for each color, so there isn’t a «gradient» as the name implies. Try experimenting with the «50%» piece of the style to see the different effects you can achieve.
Example: http://jsfiddle.net/v14m59pq/2/
Multiple Backgrounds with background-size:
You can apply a background color to the html
element, and then apply a background-image to the body
element and use the background-size
property to set it to 50% of the page width. This results in a similar effect, though would really only be used over gradients if you happen to be using an image or two.
html {
height: 100%;
background-color: cyan;
}
body {
height: 100%;
background-image: url('http://i.imgur.com/9HMnxKs.png');
background-repeat: repeat-y;
background-size: 50% auto;
}
Example: http://jsfiddle.net/6vhshyxg/2/
EXTRA NOTE: Notice that both the html
and body
elements are set to height: 100%
in the latter examples. This is to make sure that even if your content is smaller than the page, the background will be at least the height of the user’s viewport. Without the explicit height, the background effect will only go down as far as your page content. It’s also just a good practice in general.
При вёрстке страниц веб-сайта часто требуется задать фон определённому объекту для улучшения читаемости текста и внешнего вида портала в целом. Какими способами и методами можно задавать фон в CSS?
- Работа с фоном в CSS
- background-color
- background-image
- background-repeat
- background-attachment
- background-position
- gradient
- Работа с размером фона в CSS
- Абсолютное изменение размера
- Относительное изменение размера
- Масштабирование до максимального размера
- Заполнение фоном
- Масштабирование сразу нескольких фонов
- Создание полупрозрачного фона в CSS
С помощью свойства background можно задать положение, цвет, изображение, повторяемость и привязку фона, как для отдельных элементов, так и полностью для всего сайта, что по своей сути, кстати, является заданием определённых настроек для тега <body>. Рассмотрим все свойства, которые связаны с заданием фона.
Задаёт цвет фона. Его можно применять как к отдельным элементам <h1>, <p>, так и ко всему веб-сайту с помощью тега <body>.
Например:
/* белый фон заголовка и чёрный цвет шрифта h1 { color: #000; background-color: #fff }
Данное свойство используется для вставки фоновой картинки, указывая при этом ссылку на неё.
Например:
body { background-image: url(“example_image.png”); }
Обратите внимание на то, как указан путь к картинке. Это значит, что изображение должно находиться в той же директории, что и файл стилей CSS. Иначе придётся указывать полный путь к файлу.
Изображение из предыдущего примера будет повторяться по всему экрану благодаря данному свойству.
Оно может иметь несколько значений:
- background-repeat: repeat-x — повторение по горизонтали;
- background-repeat: repeat-y — повторение по вертикали;
- background-repeat: repeat — повторение и по горизонтали и по вертикали;
- background-repeat: no-repeat — изображение не повторяется.
Например, повторение по горизонтали выглядит так:
Это свойство определяет фиксирование фонового изображения при скроллинге:
- background-attachment: scroll — фон прокручивается вместе со страницей;
- background-attachment: fixed — фон остаётся неподвижным.
Данное свойство определяет расположение фоновой картинки относительно экрана. Значения свойства представляют собой набор вертикальных и горизонтальных координат, отсчет которых начинается с верхнего левого угла.
Свойство может задаваться в процентном формате, в пикселях, сантиметрах или словесно: top, bottom, center, right, left.
Например:
- background-position: 50% 20% — изображение располагается по центру по горизонтали и на 20% отступает сверху;
- background-position: 80px 60px — отступ изображения вниз на 80 пикселей от верхнего края и на 60 пикселей вправо от левого:
Плавный переход от одного цвета к другому, причем переходов допускается несколько.
Использование градиента можно наглядно продемонстрировать в примере кода:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Градиент</title> <style> .gradient { background: #2639fa; /* Для устаревших браузеров */ background: linear-gradient(to top, #2639fa, #c9d1ff); padding: 40px; border: 1px solid #000; } </style> </head> <body> <p class="gradient">текст</p> </body> </html>
Все приведённые настройки можно сделать в одном свойстве background, записав их в перечисленном порядке.
Например:
background: #fff url(“example_image.png”) no-repeat fixed right bottom
Если пропустить какое-либо свойство, для него устанавливается значение по умолчанию.
В CSS 2.1 фоновая картинка сохраняет фиксированный размер, однако в CSS 3 было введено подсвойство size, благодаря которому фоновое изображение может быть растянуто или сжато.
Существует несколько способов, позволяющих определить размер:
Ширина и высота по умолчанию устанавливаются автоматически, а новый размер можно задать с помощью различных единиц измерения.
Например, если исходное изображение имеет разрешение 300 на 300 пикселей, то такой код сделает его ширину в два раза меньше:
background-size: 150px 300px
Если указано только одно значение, оно по умолчанию считается как ширина, высота определяется автоматически, и пропорции сохраняются.
Код, который масштабирует картинку до размера 100 на 100 пикселей, выглядит так:
Если применять проценты, размер будет основываться не на изображении, а на элементе.
Например:
background-size: 50% auto;
То есть, ширина фонового изображения зависит от параметров контейнера. Если ширина контейнера составляет 600 пикселей, размер фонового изображения уменьшится до величины 300 на 300 пикселей.
Как показывает практика, использование процентов весьма полезно для адаптивного дизайна.
В свойстве background-size значение contain масштабирует фоновое изображение так, чтобы оно полностью заполняло контейнер или всю страницу.
Уменьшение или увеличение происходит пропорционально до тех пор, пока высота или ширина не будет выходить за рамки контейнера.
Такой фон страницы будет автоматически подгоняться под любое разрешение:
background-size: contain;
Используя в свойстве background-size значение cover, фон масштабируется таким образом, чтобы заполнить всё пространство контейнера.
В том случае, если соотношения сторон различаются, картинка обрежется:
Они могут быть масштабированы при помощи списка значений, которые разделены запятыми в том же порядке:
background: url(“example_image.png”) 70% 90% no-repeat, url(“example_image.png”) 30% 50% no-repeat, url(“example_image.png”) 15% 25% no-repeat #fff, url(“example_image.png”) 70% 90% no-repeat, background-size: 250px 200px, auto, 100 px;
Полупрозрачный элемент хорошо заметен на фоновом рисунке. В веб-дизайне полупрозрачность достигается за счёт свойства opacity или задаваемого для фона формата цвета RGBA.
Особенность данного свойства заключается в том, что прозрачность действует не только на фон, но и на все дочерние элементы. После увеличения прозрачности, и текст и фон станут полупрозрачными.
Пример создания полупрозрачного блока:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>opacity</title> <style> body { background: url("http://cs614726.vk.me/v614726246/4a02/300wj_aFOK4.jpg"); background-size: 10% auto; } div { opacity: 0.7; background: #717ceb; /* Цвет фона */ padding: 20px; /* Поля вокруг текста */ } </style> </head> <body> <div>Так выглядит полупрозрачный блок.</div> </body> </html>
Однако достаточно часто полупрозрачным должен быть только фон определённого элемента, а текст оставаться непрозрачным для читабельности.
В таком случае opacity не подходит и следует воспользоваться форматом RGBA, в котором помимо значений яркости синего, красного и зелёного цветов устанавливается ещё и значение прозрачности. 1 означает абсолютную непрозрачность, а 0 — полную прозрачность.
Пример задания прозрачного фона:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>rgba</title> <style> body { background: url("http://cs614726.vk.me/v614726246/4a02/300wj_aFOK4.jpg"); background-size: 20% auto; } div { background: rgba(60, 150, 250, 0.7); /* Цвет фона */ color: #fff; /* Цвет текста */ padding: 20px; /* Поля вокруг текста */ } </style> </head> <body> <div>Прозрачный фон блока и непрозрачный текст.</div> </body> </html>
Надеемся, что данное руководство вам пригодилось, и желаем успехов в освоении веб-дизайна!
Internet Explorer | Chrome | Opera | Safari | Firefox | Android | iOS |
9.0+ | 1.0+ | 9.5+ | 3.0+ | 3.6+ | 2.1+ | 1.0+ |
Краткая информация
Значение по умолчанию | auto |
---|---|
Наследуется | Нет |
Применяется | Ко всем элементам |
Ссылка на спецификацию | http://www.w3.org/TR/css3-background/#the-background-size |
Версии CSS
CSS 1 | CSS 2 | CSS 2.1 | CSS 3 |
---|---|---|---|
Описание
Масштабирует фоновое изображение согласно заданным размерам.
Синтаксис
background-size: [ <значение> | <проценты> | auto ]{1,2} | cover | contain
Значения
- <значение>
- Задает размер в любых доступных для CSS единицах — пикселы (px), сантиметры (cm), em и др.
- <проценты>
- Задает размер фоновой картинки в процентах от ширины или высоты элемента.
- auto
- Если задано одновременно для ширины и высоты (auto auto), размеры фона остаются исходными; если только для одной стороны картинки (100px auto), то размер вычисляется автоматически исходя из пропорций картинки.
- cover
- Масштабирует изображение с сохранением пропорций так, чтобы его ширина или высота равнялась ширине или высоте блока.
- contain
- Масштабирует изображение с сохранением пропорций таким образом, чтобы картинка целиком поместилась внутрь блока.
Если установлено одно значение, оно задает ширину фона, второе значение принимается за auto. Пропорции картинки при этом сохраняются. Использование двух значений через пробел задает ширину и высоту фоновой картинки.
Пример
HTML5CSS2.1CSS3IECrOpSaFx
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>background-size</title>
<style>
div {
height: 200px; /* Высота блока */
border: 2px solid #000; /* Параметры рамки */
background: url(images/mybg.png) 100% 100% no-repeat; /* Добавляем фон */
background-size: cover; /* Масштабируем фон */
}
</style>
</head>
<body>
<div>...</div>
</body>
</html>
Браузеры
Safari до версии 4.1 и Chrome до версии 3.0 используют нестандартное свойство -webkit-background-size.
Opera до версии 10.53 использует нестандартное свойство -o-background-size.
Firefox до версии 4.0 использует нестандартное свойство -moz-background-size.
CSS по теме
Статьи по теме
Статьи по теме
Рецепты CSS
В этом уроке изучим CSS-свойство для управления фоном, а именно background
.
В CSS свойство background
предназначено для управления фоном любого элемента.
Это универсальное свойство, которое позволяет вам сразу установить несколько параметров. А именно:
- фоновое изображение или градиент;
- начальную позицию фонового изображения и его размер;
- повтор фонового изображения;
- перемещение фона относительно области просмотра браузера и элемента;
- цвет и т.д.
body {
background:
url(bg.jpg) /* image */
top center / 200px 200px /* position / size */
no-repeat /* repeat */
fixed /* attachment */
padding-box /* origin */
content-box /* clip */
green; /* color */
}
Универсальное свойство 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
, будут иметь значения по умолчанию (указанные в скобках).
background-image – фоновое изображение или градиент
CSS-свойство background-image
позволяет в качестве фона устанавливать обычные изображения (например, PNG, SVG, JPG, GIF, WebP) и градиенты. По умолчанию данное свойство имеет значение none
.
Использовать в качестве фона изображение очень просто. Осуществляется это так:
.image {
/* универсальное свойство */
background: url('/assets/img/bg.jpg');
/* через специальное свойство */
/* background-image: url('/assets/img/bg.jpg'); */
}
Значение url()
позволяет указать путь к файлу изображения, и оно будет отображаться в качестве фона для этого элемента.
Если размеры подключенной картинки меньше размеров области фона, то она по умолчанию будет повторяться бесконечное количество раз по горизонтали и вертикали пока не заполнит весь фон. Изменить это можно с помощью свойства background-repeat
.
В url()
задать изображение можно также через URI данные:
.image {
/* base64 encoded png */
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeBAMAAADJHrORAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAADUExURTWn/0me3wIAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAPSURBVCjPYxgFwxgwMAAAAeAAAerhzjMAAAAASUVORK5CYII=');
background-repeat: no-repeat;
background-position: center;
}
background-image
кроме установки изображений, позволяет также задать линейный, радиальный или конический градиент.
Пример двухцветного линейного градиента, идущего сверху вниз:
.linear-gradient {
background-image: linear-gradient(black, white); /* направление по умолчанию: to bottom */
}
С указанием угла и нескольких цветов:
.linear-gradient {
background-image: linear-gradient(135deg, #f44336, #ff9800 20%, #ffeb3b 70%, #4caf50);
}
Радиальный градиент указывается с помощью radial-gradient
:
.radial-gradient {
/* circle - форма радиального градиента */
background: radial-gradient(circle, black, white);
}
Пример конического градиента:
.conic-gradient {
background-image: conic-gradient(#2196f3 30%, #ffc107 0 70%, #f44336 0);
}
Кроме этого в CSS имеются повторяющиеся градиенты (repeating-linear-gradient
, repeating-radial-gradient
и repeating-conic-gradient
), с помощью них можно например, создавать различные узоры.
body {
min-height: 100vh;
background-image: repeating-linear-gradient(45deg, #fafafa, #fafafa 20px, #e0e0e0 20px, #e0e0e0 40px);
}
В приведенных выше примерах используется только один градиент, но вы можете накладывать несколько градиентов друг на друга. Используя эту технику можно создавать различные узоры, например:
body {
min-height: 100vh;
background: linear-gradient(45deg, #eee 25%, transparent 25%, transparent 75%, #eee 75%, #eee) 0% 0% / 60px 60px,
linear-gradient(-45deg, #eee 25%, transparent 25%, transparent 75%, #eee 75%, #eee) 0% 0% / 60px 60px;
}
background-position – положение фонового изображения
Свойство background-position
задаёт позицию фонового изображения (или градиента). Значение по умолчанию: 0% 0%
(помещает изображение в верхний левый угол).
.bg {
background-position: 0% 0%;
}
Первое значение определяет смещение по горизонтали, а второе — по вертикали.
Указывать значения можно посредством:
- пикселей (например,
background-position: 100px 5px
); - процентов (
background-position: 100% 5%
); - с помощью ключевых слов:
left
,center
,right
,top
иbottom
(background-position: top right
).
В современных браузерах в background-position
можно указывать до 4 значений.
Когда вы объявляете одно значение, оно будет определять горизонтальное смещение. Вертикальное в этом случае будет иметь значение center
.
.bg {
background-position: 50px; /* 50px center */
}
Задавать background-position
можно с помощью трёх или четырёх значений. В трех- или четырехзначном синтаксисе чередуются ключевые слова (кроме center
) и величина смещения (px
или %
). При этом ключевое слово должно предшествовать величине смещения, указанной с помощью px
или %
.
При указании трёх значений, браузер выставляет «отсутствующее» четвертое значение как 0.
.bg {
background-position: left 45px bottom; /* left 45px bottom 0px */
}
Это свойство расположит фоновое изображение слева на 45px и снизу на 0px.
Пример использования в background-position
4 значений:
.bg {
background-position: left 45px bottom 10px; /* left 45px bottom 10px */
}
Это свойство поместит изображение слева на 45px и снизу на 10px.
Пример
background-size – масштабирование фона
Свойство background-size
масштабирует фоновое изображение согласно заданным размерам. По умолчанию оно имеет значение auto
.
Пример синтаксиса для явного указания размеров фона:
.cover {
background-image: url(cover.jpg);
/* ширина - 400px и высота - 300px */
background-size: 400px 300px;
}
Кроме этого варианта, имеется также множество других различных синтаксисов, которые вы можете использовать для этого свойства.
1. Ключевые слова: auto
(по умолчанию), contain
и cover
.
auto
– автоматически рассчитывает размер на основе реального размера изображения и соотношения сторон;contain
– масштабирует изображение с сохранением пропорций так, чтобы оно целиком поместилось внутрь фона (т.е.100% auto
илиauto 100%
по меньшей стороне);cover
– масштабирует изображение с сохранением пропорций так, что оно всегда покрывала всю область фона (т.е.100% auto
илиauto 100%
по большей стороне);
2. Одно значение. При указании только одного значения (например, background-size: 400px
), оно указывает ширину, а высота в этом имеет значение auto
.
В background-size
задавать размеры можно используя любые единицы измерения: px
, %
, em
, vw
, vh
и т.д.
3. Два значения. При указании двух значений, первое определяет ширину фонового изображения, а второе – его высоту. Как и в синтаксисе с одним значением, вы можете использовать любые единицы измерения, которые вам нравятся.
Пример
background-repeat – повтор фонового изображения
Свойство background-repeat
определяет должно ли повторяться фоновое изображение, а если да, то как.
.card {
background-image: url(card-bg.png);
background-repeat: repeat-x;
}
Значения этого свойства (помимо обычных значений вроде inherit
):
repeat
(по умолчанию) – повторение фонового изображения выполняется в обоих направлениях (по вертикали и горизонтали);repeat-x
– повторение осуществляется только по горизонтали;repeat-y
– повторение только по вертикали;no-repeat
– не повторять, просто показать изображение один раз;space
– повторение изображения делается в обоих направлениях так, чтобы они полностью заполнили область; размещение изображений выполняется равномерно, для к ним добавляются отступы, при этом крайние изображения всегда должны касаться краёв области;round
– повторение изображения осуществляется в обоих направлениях так, чтобы в область поместилось целое количество изображений; при этом изображения могут как уменьшаться в размерах, так и растягиваться (если осталось меньше половины ширины изображения, то выполняется их растягивание, если больше, то сужение).
Пример
Также имеется синтаксис с двумя значениями (первое – по горизонтали, второе – по вертикали):
.card {
background-repeat: repeat space;
/* background-repeat: repeat repeat; */
/* background-repeat: round space; */
}
Синтаксис с одним значением – это просто сокращение синтаксиса с двумя значениями. Например, значение space
вычисляется как space space
.
.card {
background-repeat: space space;
}
background-attachment – прокрутка фона относительно области просмотра
Свойство background-attachment
определяет как будет перемещаться фон относительно области просмотра браузера и элемента для которого он установлен.
Значения:
scroll
(по умолчанию) – фон прокручивается в области просмотра браузера, но остается фиксированным внутри самого элемента;fixed
– фиксированный фон несмотря ни на что;local
– фон прокручивается как в окне браузере, так и в внутри элемента (если имеется прокрутка).
Пример
background-origin — размер области для рисования фона
Свойство background-origin
определяет область для рисования фона.
Значения:
border-box
– вся область элемента включая границы (border);padding-box
(по умолчанию) – область элемента за исключением границ (т.е. включая только padding);content-box
– область содержимого элемента (т.е. за исключением границ и padding);
Пример
background-clip – обрезка фона
background-clip
очень похож на background-origin
, но в отличие от него он обрезает фон, а не изменяет его размер.
background-clip
имеет точно такие же значения (border-box
, padding-box
и content-box
), но в качестве значения по умолчанию выступает border-box
.
Пример
background-color – цвет фона
Свойство background-color
применяется для установления сплошного цвета в качестве фона элемента.
По умолчанию данное свойство имеет значение transparent
(прозрачный цвет).
body {
background-color: transparent; /* default */
}
Пример задания цвета посредством шестнадцатеричного кода:
.image {
background-color: #ffeb3b;
}
Шестнадцатеричные коды – это один из способов объявления цвета в CSS. Другой способ – это использовать имена:
body {
background-color: white; /* #ffffff */
}
Ещё способы объявить цвет – это использовать rgb()
, rgba()
, hsl
или hsla
:
body {
background-color: rgba(63, 81, 181, 0.5); /* полупрозрачный цвет rgb(63, 81, 181) или #3f51b5
/* современная запись */
/* background-color: rgb(64 81 181 / 50%) */
}
Пример с hsla
:
body {
background-color: hsla(231, 48%, 48%, 0.5);
/* современная запись */
/* background-color: hsl(231deg 48% 48% / 50%); */
}
Несколько фоновых изображений
Свойство background позволяет задать несколько фоновых изображений одному элементу, причем со своими настройками положения, масштабирования, повтора и т.д. Отделять значения друг от друга необходимо с помощью запятой.
Когда вы используете несколько фоновых изображений, имейте в виду, что существует порядок наложения. Второе изображение всегда располагается под первым, третье под вторым и т.д.
Пример:
.multiple {
background-image: url('bg-3.png'), url('bg-2.png'), url('bg-1.png');
background-repeat: no-repeat;
background-position: right 20px bottom 20px, 20px 20px, 0% 0%;
/* с помощью универсального свойства */
/* background: url('bg-3.png') right 20px bottom 20px no-repeat, url('bg-2.png') 20px 20px no-repeat, url('bg-1.png') 0% 0% no-repeat;
}
CSS is an important language that we can use for tasks like basic document text styling, animation, and web development. There are many different CSS properties that we can use to manipulate and customize our web pages. CSS background is one of those properties. We can use the CSS background property to set our background colors, images, sizes, and much more. Today, we’re going to discuss this useful CSS property and explore all of the different things we can do with it.
Let’s get started!
We’ll cover:
- What is CSS background?
- CSS background image
- Background color
- Background size
- Background position
- Background repeat
- Background attachment
- Background gradient
- Wrapping up and next steps
What is CSS background?
CSS background is a CSS shorthand property. We can use shorthand properties to set the values of multiple CSS properties at the same time. This means that we can write readable code more quickly and efficiently. We can use the background properties to manipulate the background of an element.
CSS background allows us to manipulate many background properties, such as:
- Color
- Size
- Position
- Repeat
- Attachment
- Gradient
- Image
- Opacity
- Etc.
There’s extensive browser support for CSS background. It’s supported by the following browsers:
- Chrome
- Edge
- Firefox
- Internet Explorer
- Opera
- Safari
CSS background image
We can use the background-image property to set background images for different elements. Modern browsers support various image file types such as JPG, PNG, IMG, GIF, and SVG. We can also set a fallback color, which is the color that will show in the event that our image fails to load or our browser doesn’t support our image file type.
To set a background image for a page, we can use the following code:
By default, the image repeats so it covers the entire element. We can also use multiple background images if we want. This requires a bit more work because we’ll need to set more values to make sure everything is where we want it to be.
We also need to make sure that we code the images in the exact order that we want them to appear, meaning that the image we want at the front should be first, and the image we want at the back should be last. The code looks the same as it does for a single background image, but the image file names are separated by commas.
If we want to set a fallback color, we can use the following code:
Background color
The background-color property allows us to apply solid colors as backgrounds on elements. There are different property values that we can use to control aspects of the background color. These values include:
-
color: This value specifies the background color. We can choose from the list of CSS color values to choose the exact colors we want to use.
-
opacity: This value specifies the opacity of an element.
-
transparent: This value specifies that the background color is transparent.
-
initial: The property will be set to its default value.
-
inherit: The property will be inherited from its parent element.
We can also set different background colors for different elements. Here’s an example:
We can also use a number between 0.0 and 1.0 to set the opacity of our background color. The lower the number, the more transparent the color. Let’s look at an example:
Background size
The background-size property allows us to specify the size of a background image.
Background position
The background-position property allows us to specify the starting position of a background image. Background images are put at the top-left corner of an element by default. This property has different property values that allow us to control how our background images are positioned. These values include:
- left top: The background image will start at the left top.
- left bottom: The background image will start at the left bottom.
- left center: The background image will start at the left center.
- right top: The background image will start at the right top.
- right bottom: The background image will start at the right bottom.
- right center: The background image will start at the right center.
- center top: The background image will start at the center top.
- center bottom: The background image will start at the center bottom.
- center center: The background image will start at the center center.
- x% y%: The
x
value is the horizontal position and they
value is the vertical position. The top left corner is0% 0%
and the bottom right corner is100% 100%
. - xpos ypos: The
xpos
value is the horizontal position and theypos
value is the vertical position. The top left corner is the value0 0
. - initial: The property will be set to its default value.
- inherit: The property will be inherited from its parent element.
Background repeat
The background-repeat property allows us to specify if and how background images repeat. Background images are repeated vertically and horizontally by default. This property has many different property values that allow us to control how our background images are presented. Let’s take a look at the values and what they do:
- repeat: The background image is repeated vertically and horizontally. It will clip the final image if it doesn’t fit.
- repeat-x: The background image is repeated horizontally.
- repeat-y: The background image is repeated vertically.
- no-repeat: The background image will not repeat (it will only be shown one time).
- space: The background image will repeat as much as it can without clipping. The first and last images are placed at the beginning and end of the element, and whitespace is evenly spread between repeating images.
- round: The background image will be repeated and manipulated to completely fill the space (with no whitespace in between).
- initial: The property will be set to its default value.
- inherit: The property will be inherited from its parent element.
Background attachment
We can use the background-attachment property to specify whether we want our background images to be fixed, or if we want them to move with the rest of the page when we scroll. This property has different property values that allow us to control how we attach our background images. These values include:
-
fixed: The background image doesn’t scroll with the page.
-
local: The background image scrolls with the contents of the element.
-
scroll: The background image scrolls with the page.
-
initial: The property will be set to its default value.
-
inherit: The property will be inherited from its parent element.
Let’s take a look at an example of the fixed
value:
Now, let’s look at an example of the scroll
value. This will make the image scroll with the page.
Background gradient
The CSS background gradient properties allow us to create a gradient effect between two or more colors. Gradients support transparency, so we can create fading effects with our gradient. There are two types of gradients: linear gradients and radial gradients.
Linear gradients
With the linear-gradient property, we can create linear gradients that go top to bottom, left to right, and diagonally. We must define at least two color stops, which are the colors we want to transition together. We can define multiple color stops and repeat gradients if we want.
Let’s take a look at a basic linear gradient that runs top to bottom with two colors:
Now, let’s look at a vertical linear gradient that has multiple colors and creates a rainbow:
Radial gradients
With the radial-gradient property, we can create a gradient that’s defined by its center. The default shape of radial gradients is an ellipse, but it can be changed into a circle. We must define at least two color stops with radial gradients, but we can define multiple if we want. Similar to the linear gradients, we can also repeat radial gradients.
Let’s take a look at a basic radial gradient with three colors:
Now, let’s look at a repeating radial gradient:
Join a community of more than 1.7 million readers. A free, bi-monthly email with a roundup of Educative’s top articles and coding tips.