background-size

background-size CSS 속성은 요소의 배경 이미지의 크기를 설정합니다. 이 이미지는 원래 사이즈, 늘리거나, 가능한 공간에 맞게 제한할 수 있습니다. 
 

배경 이미지로 덮히지 않은 공간은 background-color 속성으로 채워져있고, 투명/반투명인 배경 이미지 뒤에도 배경 색이 보여질 것입니다.

구문

/* 키워드 값 */
background-size: cover;
background-size: contain;

/* 단일 값 구문 */
/* 이미지 너비 (높이는 'auto'이 됨) */
background-size: 50%;
background-size: 3.2em;
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; /* `auto auto`와 혼동하지 말 것 */
background-size: 50%, 25%, 25%;
background-size: 6px, auto, contain;

/* 전역 값 */
background-size: inherit;
background-size: initial;
background-size: unset;

 background-size 속성은 다음 방법으로 지정될 수 있습니다. 

  • 키워드 값인 contain 또는 cover 를 사용합니다.
  • 너비 값만 사용하는 경우, 높이는 기본적으로 auto로 설정됩니다.
  • 너비와 높이 값을 모두 사용하는 경우, 첫번째 값은 너비로, 두번째 값은 높이로 설정됩니다. 각 값은 <length>, <percentage>, 또는 auto가 될 수 있습니다.

여러 배경 이미지의 사이즈를 지정하려면, 각각의 값을 쉼표로 구분하세요.

contain
Scales the image as large as possible without cropping or stretching the image.
cover
Scales the image as large as possible without stretching the image. If the proportions of the image differ from the element, it is cropped either vertically or horizontally so that no empty space remains.
auto
Scales the background image in the corresponding direction such that its intrinsic proportions are maintained.
<length>
Stretches the image in the corresponding dimension to the specified length. Negative values are not allowed.
<percentage>
Stretches the image in the corresponding dimension to the specified percentage of the background positioning area. The background positioning area is determined by the value of background-origin (by default, the padding box). However, if the background's background-attachment value is fixed, the positioning area is instead the entire viewport. Negative values are not allowed.

Intrinsic dimensions and proportions

The computation of values depends on the image's intrinsic dimensions (width and height) and intrinsic proportions (width-to-height ratio). These attributes are as follows:

  • A bitmap image (such as JPG) always has intrinsic dimensions and proportions.
  • A vector image (such as SVG) does not necessarily have intrinsic dimensions. If it has both horizontal and vertical intrinsic dimensions, it also has intrinsic proportions. If it has no dimensions or only one dimension, it may or may not have proportions.
  • CSS <gradient>s have no intrinsic dimensions or intrinsic proportions.
  • Background images created with the element() function use the intrinsic dimensions and proportions of the generating element.

Note: The behavior of <gradient>s changed in Gecko 8.0 (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5). Before this, they were treated as images with no intrinsic dimensions, but with intrinsic proportions identical to that of the background positioning area.

Note: In Gecko, background images created using the element() function are currently treated as images with the dimensions of the element, or of the background positioning area if the element is SVG, with the corresponding intrinsic proportion. This is non-standard behavior.

Based on the intrinsic dimensions and proportions, the rendered size of the background image is computed as follows:

If both components of background-size are specified and are not auto:
The background image is rendered at the specified size.
If the background-size is contain or cover:
While preserving its intrinsic proportions, the image is rendered at the largest size contained within, or covering, the background positioning area. If the image has no intrinsic proportions, then it's rendered at the size of the background positioning area.
If the background-size is auto or auto auto:
  • If the image has both horizontal and vertical intrinsic dimensions, it's rendered at that size.
  • If the image has no intrinsic dimensions and has no intrinsic proportions, it's rendered at the size of the background positioning area.
  • If the image has no intrinsic dimensions but has intrinsic proportions, it's rendered as if contain had been specified instead.
  • If the image has only one intrinsic dimension and has intrinsic proportions, it's rendered at the size corresponding to that one dimension. The other dimension is computed using the specified dimension and the intrinsic proportions.
  • If the image has only one intrinsic dimension but has no intrinsic proportions, it's rendered using the specified dimension and the other dimension of the background positioning area.
Note: SVG images have a preserveAspectRatio attribute that defaults to the equivalent of contain. In Firefox 43, as opposed to Chrome 52, an explicit background-size causes preserveAspectRatio to be ignored.
If the background-size has one auto component and one non-auto component:
  • If the image has intrinsic proportions, it's stretched to the specified dimension. The unspecified dimension is computed using the specified dimension and the intrinsic proportions.
  • If the image has no intrinsic proportions, it's stretched to the specified dimension. The unspecified dimension is computed using the image's corresponding intrinsic dimension, if there is one. If there is no such intrinsic dimension, it becomes the corresponding dimension of the background positioning area.

Note: Background sizing for vector images that lack intrinsic dimensions or proportions is not yet fully implemented in all browsers. Be careful about relying on the behavior described above, and test in multiple browsers to be sure the results are acceptable.

Formal syntax

<bg-size>#

where
<bg-size> = [ <length-percentage> | auto ]{1,2} | cover | contain

where
<length-percentage> = <length> | <percentage>

Examples

Please see Scaling background images for examples.

Notes

If you use a <gradient> as the background and specify a background-size to go with it, it's best not to specify a size that uses a single auto component, or is specified using only a width value (for example, background-size: 50%). Rendering of <gradient>s in such cases changed in Firefox 8, and at present is generally inconsistent across browsers, which do not all implement rendering in full accordance with the CSS3 background-size specification and with the CSS3 Image Values gradient specification.

.gradient-example {
  width: 50px;
  height: 100px;
  background-image: linear-gradient(blue, red);

  /* Not safe to use */
  background-size: 25px;
  background-size: 50%;
  background-size: auto 50px;
  background-size: auto 50%;

  /* Safe to use */
  background-size: 25px 50px;
  background-size: 50% 50%;
}

Note that it's particularly not recommended to use a pixel dimension and an auto dimension with a <gradient>, because it's impossible to replicate rendering in versions of Firefox prior to 8, and in browsers not implementing Firefox 8's rendering, without knowing the exact size of the element whose background is being specified.

Specifications

Specification Status Comment
CSS Backgrounds and Borders Module Level 3
The definition of 'background-size' in that specification.
Candidate Recommendation Initial definition.
초기값auto auto
적용대상all elements. It also applies to ::first-letter and ::first-line.
상속no
Percentagesrelative to the background positioning area
Mediavisual
Computed valueas specified, but with relative lengths converted into absolute lengths
Animation typerepeatable list of simple list of length, percentage, or calc
Canonical orderthe unique non-ambiguous order defined by the formal grammar

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
background-sizeChrome Full support 3
Full support 3
Full support 1
Prefixed Notes
Prefixed Implemented with the vendor prefix: -webkit-
Notes WebKit-based browsers originally implemented an older draft of CSS3 background-size in which an omitted second value is treated as duplicating the first value; this draft does not include the contain or cover keywords.
Edge Full support 12Firefox Full support 4
Full support 4
Full support 49
Prefixed
Prefixed Implemented with the vendor prefix: -webkit-
No support 3.6 — 4
Prefixed
Prefixed Implemented with the vendor prefix: -moz-
IE Full support 9Opera Full support 10
Full support 10
Full support 15
Prefixed Notes
Prefixed Implemented with the vendor prefix: -webkit-
Notes WebKit-based browsers originally implemented an older draft of CSS3 background-size in which an omitted second value is treated as duplicating the first value; this draft does not include the contain or cover keywords.
No support 9.5 — 15
Prefixed Notes
Prefixed Implemented with the vendor prefix: -o-
Notes Opera 9.5's computation of the background positioning area is incorrect for fixed backgrounds. Opera 9.5 also interprets the two-value form as a horizontal scaling factor and, from appearances, a vertical clipping dimension. This has been fixed in Opera 10.
Safari Full support 4.1
Full support 4.1
Full support 3
Prefixed Notes
Prefixed Implemented with the vendor prefix: -webkit-
Notes WebKit-based browsers originally implemented an older draft of CSS3 background-size in which an omitted second value is treated as duplicating the first value; this draft does not include the contain or cover keywords.
WebView Android Full support 2.3
Full support 2.3
Full support ≤37
Prefixed Notes
Prefixed Implemented with the vendor prefix: -webkit-
Notes WebKit-based browsers originally implemented an older draft of CSS3 background-size in which an omitted second value is treated as duplicating the first value; this draft does not include the contain or cover keywords.
Chrome Android Full support 18
Full support 18
Full support 18
Prefixed Notes
Prefixed Implemented with the vendor prefix: -webkit-
Notes WebKit-based browsers originally implemented an older draft of CSS3 background-size in which an omitted second value is treated as duplicating the first value; this draft does not include the contain or cover keywords.
Firefox Android Full support 4
Full support 4
Full support 49
Prefixed
Prefixed Implemented with the vendor prefix: -webkit-
Opera Android Full support 10.1
Full support 10.1
Full support 14
Prefixed Notes
Prefixed Implemented with the vendor prefix: -webkit-
Notes WebKit-based browsers originally implemented an older draft of CSS3 background-size in which an omitted second value is treated as duplicating the first value; this draft does not include the contain or cover keywords.
No support 10.1 — 14
Prefixed Notes
Prefixed Implemented with the vendor prefix: -o-
Notes Opera 9.5's computation of the background positioning area is incorrect for fixed backgrounds. Opera 9.5 also interprets the two-value form as a horizontal scaling factor and, from appearances, a vertical clipping dimension. This has been fixed in Opera 10.
Safari iOS Full support 4.2
Full support 4.2
Full support 1
Prefixed Notes
Prefixed Implemented with the vendor prefix: -webkit-
Notes WebKit-based browsers originally implemented an older draft of CSS3 background-size in which an omitted second value is treated as duplicating the first value; this draft does not include the contain or cover keywords.
Samsung Internet Android Full support Yes
contain and coverChrome Full support 3Edge Full support 12Firefox Full support 3.6IE Full support 9Opera Full support 10Safari Full support 4.1WebView Android Full support 37Chrome Android Full support 18Firefox Android Full support 4Opera Android ? Safari iOS Full support 4.2Samsung Internet Android ?

Legend

Full support  
Full support
Compatibility unknown  
Compatibility unknown
See implementation notes.
See implementation notes.
Requires a vendor prefix or different name for use.
Requires a vendor prefix or different name for use.

See also