CSS background-size Property

Example

Specify the size of a background-image with "auto" and in pixels:

#example1 {
  background: url(road.jpg);
  background-repeat: no-repeat;
  background-size: auto;
}

#example2 {
  background: url(road.jpg);
  background-repeat: no-repeat;
  background-size: 300px auto;
}

Definition and Usage

The background-size property specifies the size of the background images.

There are four different syntaxes you can use with this property: 

  • the keyword syntax ("auto", "cover" and "contain"), 
  • the one-value syntax (sets the width of the image (height becomes "auto"), 
  • the two-value syntax (first value: width of the image, second value: height), 
  • and the multiple background syntax (separated with comma).

Default value: auto
Inherited: no
Animatable: yes.
Version: CSS3
JavaScript syntax: object.style.backgroundSize="60px 120px"

  • Inherited : "Inherited = no" means that it cannot takes (inherit) it's value from it's parent element.
  • object - object in javascript means the element on which background-size is applied.
  • Animatable - "Animatable = yes" means that it can be animated with CSS @keyframes.

Browser Support

The numbers in the table specify the first browser version that fully supports the property.

Numbers followed by -webkit-, -moz-, or -o- specify the first version that worked with a prefix.

Property          
background-size  4.0
1.0 -webkit-
9.0 4.0
3.6 -moz-
4.1
3.0 -webkit-
10.5
10.0 -o-

CSS Syntax

background-size: auto|length|cover|contain|initial|inherit;

Property Values

Value Description Demo
auto Default value. The background image is displayed in its original size
length Sets the width and height of the background image. The first value sets the width, the second value sets the height. If only one value is given, the second is set to "auto".
percentage Sets the width and height of the background image in percent of the parent element. The first value sets the width, the second value sets the height. If only one value is given, the second is set to "auto"
cover Resize the background image to cover the entire container, even if it has to stretch the image or cut a little bit off one of the edges
contain Resize the background image to make sure the image is fully visible
initial Sets this property to its default value.  
inherit Inherits this property from its parent element.  

More Examples

Example

Specify the size of a background image with percent:

#example1 {
  background: url(road.jpg);
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

#example2 {
  background: url(road.jpg);
  background-repeat: no-repeat;
  background-size: 75% 50%;
}

Example

Specify the size of a background image with "cover":

#example1 {
  background: url(road.jpg);
  background-repeat: no-repeat;
  background-size: cover;
}

Example

Specify the size of a background image with "contain":

#example1 {
  background: url(road.jpg);
  background-repeat: no-repeat;
  background-size: contain;
}

Example

Here we have two background images. We specify the size of the first background image with "contain", and the second background-image with "cover":

#example1 {
  background: url(rose.png), url(road.jpg);
  background-repeat: no-repeat;
  background-size: contain, cover;
}

Example

Use different background properties to create a "hero" image:

.hero-image {
  background-image: url("road.jpg"); /* The image used */
  background-color: #0054ff; /* Used if the image is unavailable */
  height: 500px; /* You must set a specified height */
  background-position: center; /* Center the image */
  background-repeat: no-repeat; /* Do not repeat the image */
  background-size: cover; /* Resize the background image to cover the entire container */
}

Comments