--- title: background-size slug: Web/CSS/background-size translation_of: Web/CSS/background-size ---
Значение background-size
в CSS позволяет задавать размер фонового изображения. Изображение может быть оставлено в исходном размере, растянуто, или подогнано под размеры доступного пространства.
background-size
, то значение этого свойства затем сбрасывается до исходного значения c помощью сокращённого свойства.{{cssinfo}}
/* Ключевые слова */ 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;
<размер>
{{cssxref("<length>")}}
позволяет масштабировать размер фонового изображения в заданном измерении. Отрицательный размер не допускается.<проценты>
{{cssxref("<percentage>")}}
, которое масштабирует фоновое изображение в соответствующем измерении до указанного процента области расположения фона, которое определяется значением {{cssxref("background-origin")}}. Область расположения фона по умолчанию является областью, содержащей содержимое поля и его отступы; область также может быть изменена на содержимое или область, содержащую границы, отступы и содержимое. Если {{cssxref("background-attachment","attachment")}} фона является fixed
, область позиционирования фона вместо этого является всей областью окна браузера, не включая область, покрытую полосами прокрутки, если они присутствуют. Отрицательные проценты не допускаются.auto
contain
cover
contain
. Масштабирует изображение как можно больше c сохранением пропорций изображения (изображение не становится сплющенным). Когда изображение и контейнер имеют разные размеры, изображение обрезается либо влево / вправо, либо сверху / снизу.Интерпретация возможных значений зависит от внутренних размеров изображений (ширина и высота) и внутренней пропорции (соотношение ширины и высоты). Растровое изображение всегда имеет внутренние размеры и внутреннюю пропорцию. Векторное изображение может иметь оба внутренних размера (и, следовательно, должно иметь внутреннюю пропорцию). Он также может иметь одно или не иметь внутренних размеров, и в любом случае он может иметь или не иметь внутреннюю пропорцию. Градиенты обрабатываются как изображения без внутренних размеров или внутренней пропорции.
Предупреждение: Это поведение изменилось в Gecko 8.0 {{geckoRelease("8.0")}}. До этого, градиенты обрабатывались как изображения без внутренних размеров, с внутренней пропорцией, идентичной пропорции области расположения фона.
Фоновые изображения, сгенерированные из элементов с использованием {{cssxref("-moz-element")}} (которые фактически соответствуют элементу) в настоящее время обрабатываются как изображения с размерами элемента, или как область расположения фона, если элементом является SVG, с соответствующей внутренней пропорцией.
Визуализированный размер фонового изображения затем вычисляется следующим способом:
background-size
заданы и различны от auto
:background-size
содержит contain
или cover
:background-size
установлен как auto
или auto auto
:contain
. Если изображение имеет один внутренний размер и пропорцию, оно отображается с размером, определённым этим одним размером и пропорцией. Если изображение имеет один внутренний размер, но не имеет пропорцию, оно отображается с использованием внутреннего размера и соответствующим размером области позиционирования фона.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, без знания точного размера элемента, фон которого указывается.
Спецификация | Статус | Комментарий |
---|---|---|
{{SpecName('CSS3 Backgrounds', '#the-background-size', 'background-size')}} | {{Spec2('CSS3 Backgrounds')}} | Первоначальное определение |
Особенность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) | ||
---|---|---|---|---|---|---|---|
Базовая поддержка | 1.0{{property_prefix("-webkit")}} [2] | {{CompatGeckoDesktop("1.9.2")}}{{property_prefix("-moz")}} [4] | 9.0 [5] | 9.5{{property_prefix("-o")}} with some bugs [1] |
3.0 (522){{property_prefix("-webkit")}} but from an older CSS3 draft [2] |
||
3.0 | {{CompatGeckoDesktop("2.0")}} | 10.0 | 4.1 (532) | ||||
Поддержка значенийcontain и cover |
3.0 | {{CompatGeckoDesktop("1.9.2")}} | 9.0 [5] | 10.0 | 4.1 (532) | ||
Поддержка SVG фонов | 44.0 | {{CompatGeckoDesktop("8.0")}} | 9.0 | 31.0 | {{CompatUnknown}} |
Особенность | Android | Firefox Mobile (Gecko) | Windows Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Базовая поддержка | {{CompatVersionUnknown}}{{property_prefix("-webkit")}} 2.3 |
1.0{{property_prefix("-moz")}} 4.0 |
{{CompatUnknown}} | {{CompatUnknown}} | 5.1 (maybe earlier) |
Поддержка SVG фонов | {{CompatUnknown}} | {{CompatGeckoMobile("8.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
background-size
, в котором пропущенное второе значение рассматривается как дублирующее первое значение; этот черновик не включает в себя ключевые слова contain
или cover
.-khtml-background-size
..foo { background-image: url(bg-image.png); -webkit-background-size: 100% 100%; /* Safari 3.0 */ -moz-background-size: 100% 100%; /* Gecko 1.9.2 (Firefox 3.6) */ -o-background-size: 100% 100%; /* Opera 9.5 */ background-size: 100% 100%; /* Gecko 2.0 (Firefox 4.0) and other CSS3-compliant browsers */ -moz-border-image: url(bg-image.png) 0; /* Gecko 1.9.1 (Firefox 3.5) */ }
background-size
, с помощью нестандартного атрибута -ms-filter
возможно воспроизвести некоторые его возможности:
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='path_relative_to_the_HTML_file', sizingMethod='scale')";Это имитирует значение
cover
.