CSS Box Shadow

Avatar of Chris Coyier
Chris Coyier on (Updated on )

Used in casting shadows off block-level elements (like divs).

.shadow {
  box-shadow: 3px 3px 5px 6px #ccc;
}
  1. The horizontal offset of the shadow, positive means the shadow will be on the right of the box, a negative offset will put the shadow on the left of the box.
  2. The vertical offset of the shadow, a negative one means the box-shadow will be above the box, a positive one means the shadow will be below the box.
  3. The blur radius (optional), if set to 0 the shadow will be sharp, the higher the number, the more blurred it will be.
  4. The spread radius (optional), positive values increase the size of the shadow, negative values decrease the size. Default is 0 (the shadow is same size as blur).
  5. Color

Example

Inner shadow

.shadow {
  box-shadow: inset 0 0 10px #f8a100;
}

Example

 

One-side only

Using a negative spread radius, you can get squeeze in a box shadow and only push it off one edge of a box.

.one-edge-shadow {
  box-shadow: 0 8px 6px -6px black;
}
 

Browser support

This browser support data is from Caniuse, which has more detail. A number indicates that browser supports the feature at that version and up.

Desktop

ChromeFirefoxIEEdgeSafari
4*3.5*9125*

Mobile / Tablet

Android ChromeAndroid FirefoxAndroidiOS Safari
12212344.0-4.1*

Internet Explorer box shadow

You need extra elements…

<div class="shadow1">
  <div class="content">Box-shadowed element</div>
</div>
.shadow1 {
  margin: 40px;
  background-color: rgb(68,68,68); /* Needed for IE */
  box-shadow: 5px 5px 5px rgb(68 68 68 / 0.6);
  filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius=3,MakeShadow=true,ShadowOpacity=0.30);
  -ms-filter: "progid:DXImageTransform.Microsoft.Blur(PixelRadius=3,MakeShadow=true,ShadowOpacity=0.30)";
  zoom: 1;
}
.shadow1 .content {
  position: relative; /* This protects the inner element from being blurred */
  padding: 100px;
  background-color: #ddd;
}

More information