box-shadow
CSS
property adds shadow effects around an element's frame. You can set multiple effects separated by commas.
A box shadow is described by X and Y offsets relative to the element, blur and spread radius, and color.
box-shadow
property enables you to cast a drop shadow from the frame of almost any element. If a
border-radius
is specified on the element with a box shadow, the box shadow takes on the same rounded corners. The z-ordering of multiple box shadows is the same as multiple
text shadows
(the first specified shadow is on top).
Box-shadow generator
is an interactive tool allowing you to generate a
box-shadow
.
/* Keyword values */ box-shadow: none; /* offset-x | offset-y | color */ box-shadow: 60px -16px teal; /* offset-x | offset-y | blur-radius | color */ box-shadow: 10px 5px 5px black; /* offset-x | offset-y | blur-radius | spread-radius | color */ box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.2); /* inset | offset-x | offset-y | color */ box-shadow: inset 5em 1em gold; /* Any number of shadows, separated by commas */ box-shadow: 3px 3px red, -1em 0 0.4em olive; /* Global keywords */ box-shadow: inherit; box-shadow: initial; box-shadow: unset;
Specify a single box-shadow using:
<length>
values.
<offset-x><offset-y>
values.
<blur-radius>
.
<spread-radius>
.
inset
关键词。
<color>
值。
To specify multiple shadows, provide a comma-separated list of shadows.
inset
inset
keyword changes the shadow to one inside the frame (as if the content was depressed inside the box). Inset shadows are drawn inside the border (even transparent ones), above the background, but below content.
<offset-x>
<offset-y>
<length>
values to set the shadow offset.
<offset-x>
specifies the horizontal distance. Negative values place the shadow to the left of the element.
<offset-y>
specifies the vertical distance. Negative values place the shadow above the element. See
<length>
for possible units.
0
, the shadow is placed behind the element (and may generate a blur effect if
<blur-radius>
and/or
<spread-radius>
is set).
<blur-radius>
<length>
value. The larger this value, the bigger the blur, so the shadow becomes bigger and lighter. Negative values are not allowed. If not specified, it will be
0
(the shadow's edge is sharp). The specification does not include an exact algorithm for how the blur radius should be calculated, however, it does elaborate as follows:
…for a long, straight shadow edge, this should create a color transition the length of the blur distance that is perpendicular to and centered on the shadow’s edge, and that ranges from the full shadow color at the radius endpoint inside the shadow to fully transparent at the endpoint outside it.
<spread-radius>
<length>
value. Positive values will cause the shadow to expand and grow bigger, negative values will cause the shadow to shrink. If not specified, it will be
0
(the shadow will be the same size as the element).
<color>
<color>
values for possible keywords and notations.
currentcolor
.
Each shadow in the list (treating
none
as a 0-length list) is interpolated via the color (as color) component, and x, y, blur, and (when appropriate) spread (as length) components. For each shadow, if both input shadows are or are not
inset
, then the interpolated shadow must match the input shadows in that regard. If any pair of input shadows has one
inset
and the other not
inset
, the entire shadow list is uninterpolable. If the lists of shadows have different lengths, then the shorter list is padded at the end with shadows whose color is
transparent
, all lengths are
0
, and whose
inset
(or not) matches the longer list.
| 初始值 |
none
|
|---|---|
| 适用于 |
所有元素。它还适用于
::first-letter
.
|
| 继承 | no |
| 计算值 | any length made absolute; any specified color computed; otherwise as specified |
| 动画类型 | a shadow list |
none | <shadow>#where
<shadow> = inset? && <length>{2,4} && <color>?where
<color> = <rgb()> | <rgba()> | <hsl()> | <hsla()> | <hex-color> | <named-color> | currentcolor | <deprecated-system-color>where
<rgb()> = rgb( <percentage>{3} [ / <alpha-value> ]? ) | rgb( <number>{3} [ / <alpha-value> ]? ) | rgb( <percentage>#{3} , <alpha-value>? ) | rgb( <number>#{3} , <alpha-value>? )
<rgba()> = rgba( <percentage>{3} [ / <alpha-value> ]? ) | rgba( <number>{3} [ / <alpha-value> ]? ) | rgba( <percentage>#{3} , <alpha-value>? ) | rgba( <number>#{3} , <alpha-value>? )
<hsl()> = hsl( <hue> <percentage> <percentage> [ / <alpha-value> ]? ) | hsl( <hue>, <percentage>, <percentage>, <alpha-value>? )
<hsla()> = hsla( <hue> <percentage> <percentage> [ / <alpha-value> ]? ) | hsla( <hue>, <percentage>, <percentage>, <alpha-value>? )where
<alpha-value> = <number> | <percentage>
<hue> = <number> | <angle>
In this example, we include three shadows: an inset shadow, a regular drop shadow, and a 2px shadow that creates a border effect (we could have used an
outline
instead for that third shadow).
<blockquote><q>You may shoot me with your words,<br/> You may cut me with your eyes,<br/> You may kill me with your hatefulness,<br/> But still, like air, I'll rise.</q> <p>— Maya Angelou</p> </blockquote>
blockquote {
padding: 20px;
box-shadow:
inset 0 -3em 3em rgba(0,0,0,0.1),
0 0 0 2px rgb(255,255,255),
0.3em 0.3em 1em rgba(0,0,0,0.3);
}
When the
x-offset
,
y-offset
,和
blur
are all zero, the box shadow will be a solid-colored outline of equal-size on all sides. The shadows are drawn back to front, so the first shadow sits on top of subsequent shadows. When the
border-radius
is set to 0, as is the default, the corners of the shadow will be, well, corners. Had we put in a
border-radius
of any other value, the corners would have been rounded.
We added a margin the size of the widest box-shadow to ensure the shadow doesn't overlap adjacent elements or go beyond the border of the containing box. A box-shadow does not impact box model dimensions.
<div><p>Hello World</p></div>
p {
box-shadow: 0 0 0 2em #F4AAB9,
0 0 0 4em #66CCFF;
margin: 4em;
padding:1em;
}
| 规范 | 状态 | 注释 |
|---|---|---|
|
CSS Backgrounds and Borders Module Level 3
The definition of 'box-shadow' in that specification. |
候选推荐 | 初始定义 |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
box-shadow
|
Chrome
完整支持
10
注意事项
|
Edge 完整支持 12 |
Firefox
完整支持
4
注意事项
|
IE
完整支持
9
注意事项
|
Opera
完整支持
10.5
注意事项
|
Safari
完整支持
5.1
注意事项
|
WebView Android
完整支持
≤37
注意事项
|
Chrome Android
完整支持
18
注意事项
|
Firefox Android
完整支持
4
注意事项
|
Opera Android
完整支持
14
注意事项
|
Safari iOS
完整支持
5
注意事项
|
Samsung Internet Android
完整支持
1.0
注意事项
|
inset
|
Chrome 完整支持 10 | Edge 完整支持 12 |
Firefox
完整支持
4
|
IE
部分支持
9
注意事项
|
Opera 完整支持 10.5 | Safari 完整支持 5.1 | WebView Android 完整支持 ≤37 | Chrome Android 完整支持 18 |
Firefox Android
完整支持
4
|
Opera Android 完整支持 14 | Safari iOS 完整支持 5 | Samsung Internet Android 完整支持 1.0 |
| Multiple shadows | Chrome 完整支持 10 | Edge 完整支持 12 |
Firefox
完整支持
4
|
IE
完整支持
9
注意事项
|
Opera 完整支持 10.5 | Safari 完整支持 5.1 | WebView Android 完整支持 ≤37 | Chrome Android 完整支持 18 |
Firefox Android
完整支持
4
|
Opera Android 完整支持 14 | Safari iOS 完整支持 5 | Samsung Internet Android 完整支持 1.0 |
| Spread radius | Chrome 完整支持 10 | Edge 完整支持 12 |
Firefox
完整支持
4
|
IE
完整支持
9
注意事项
|
Opera 完整支持 10.5 | Safari 完整支持 5.1 | WebView Android 完整支持 ≤37 | Chrome Android 完整支持 18 |
Firefox Android
完整支持
4
|
Opera Android 完整支持 14 | Safari iOS 完整支持 5 | Samsung Internet Android 完整支持 1.0 |
完整支持
部分支持
见实现注意事项。
用户必须明确启用此特征。
要求使用供应商前缀或不同名称。
<color>
data type
color
,
background-color
,
border-color
,
outline-color
,
text-decoration-color
,
text-emphasis-color
,
caret-color
,和
column-rule-color
text-shadow
background
background-attachment
background-clip
background-color
background-image
background-origin
background-position
background-position-x
background-position-y
background-repeat
background-size
border
border-bottom
border-bottom-color
border-bottom-left-radius
border-bottom-right-radius
border-bottom-style
border-bottom-width
border-color
border-image
border-image-outset
border-image-repeat
border-image-slice
border-image-source
border-image-width
border-left
border-left-color
border-left-style
border-left-width
border-radius
border-right
border-right-color
border-right-style
border-right-width
border-style
border-top
border-top-color
border-top-left-radius
border-top-right-radius
border-top-style
border-top-width
border-width
box-shadow