SPACEBAR to move forward through slides.
SHIFT & SPACEBAR to move backwards through slides.
LEFT ARROW & RIGHT ARROW to move through sections.
ESC to see overview and ESC again to exit.
F to enter presentation mode and ESC to exit.
The CSS3 box-shadow
property allows you to apply one or more shadows to any box - including outer and inner box shadows.
An outer box-shadow casts a shadow as if the box were opaque. The shadow is drawn outside the border edge only.
An inner box-shadow casts a shadow as if everything outside the box were opaque. The inner shadow is drawn inside the padding edge only.
The box-shadow should follow any curved corners that have been defined with border-radius.
The <'box-shadow'>
property syntax is:
<'box-shadow'> =
none | <shadow>#
This means that the <shadow>
value can be specified as none
or using one or more <shadow>
values, separated by commas.
The <shadow>
property syntax is:
<shadow>
= inset? && <length>{2,4} && <color>?
This means that a <shadow>
can be written with an optional inset
keyword value, 2-4 <length>
values and an optional <color>
value.
The &&
symbol indicates that the optional inset
value, the 2-4 <length>
values and the optional <color>
value can be written in any order.
Some examples of the box-shadow
syntax in action:
/* all possible values specified */
p { box-shadow:
inset 10px 10px 10px 10px red; }
/* different order */
p { box-shadow:
red 10px 10px 10px 10px inset; }
/* no inset specified */
p { box-shadow:
10px 10px 10px 10px red; }
/* no color specified */
p { box-shadow:
10px 10px 10px 10px; }
/* no spread-radius specified */
p { box-shadow:
10px 10px 10px; }
/* no blue-radius specified */
p { box-shadow:
10px 10px; }
The inset
value is optional. If it is not specified, the shadow will appear outside and behind the box as a drop shadow.
If the inset
value is specified, the shadow will appear inside the box.
An inset
shadow will be positioned inside the border-box.
It will sit above any background-images or background colors, but below the content.
Open this HTML file in an editor:
exercises-start/exercise-214-03-01.html
Write a CSS rule to style example1
with a box-shadow
value of 10px 10px 10px 0 #777
.
.example1 {
box-shadow: 10px 10px 10px 0 #777;
}
Write a second CSS rule to style example2
with a box-shadow
value of inset 10px 10px 10px 0 #777
.
.example2 {
box-shadow: inset 10px 10px 10px 0 #777;
}
Check your work against the finished HTML file:
exercises-finished/exercise-214-03-01.html
The <color>
value is optional. If it is not specified, the shadow should default to the <color>
value used for the box.
The <color>
value can be written using any of the following options:
<color> =
<hex-color> |
<rgb()> |
<rgba()> |
<hsl()> |
<hsla()> |
<named-color> |
<deprecated-system-color> |
currentcolor |
transparent
These options are explained in the Property - color slide deck.
Open this HTML file in an editor:
exercises-start/exercise-214-03-02.html
Write a CSS rule to style example1
with a box-shadow
value of 10px 10px 10px 0 black
.
.example1 {
box-shadow:
10px 10px 10px 0 black;
}
Write a second CSS rule to style example2
with a box-shadow
value of 10px 10px 10px 0 rgba(140,140,0,.5)
.
.example2 {
box-shadow:
10px 10px 10px 0 rgba(140,140,0,.5);
}
Check your work against the finished HTML file:
exercises-finished/exercise-214-03-02.html
The first length value, <offset-x>
defines the horizontal offset.
A positive value will place the shadow on the right of the box.
p {
box-shadow: 10px 0 5px 0 #777;
}
A negative value will place the shadow on the left of the box.
p {
box-shadow: -10px 0 5px 0 #777;
}
A value of 0
will place the shadow directly behind the box on the horizontal axis.
The <offset-x>
is defined using a <length>
value, which means the value can be defined using any of the following units.
/* Font-relative lengths */
ch
em
ex
rem
/* Viewport-percentage lengths */
vh
vw
vmin
vmax
/* Absolute length units */
px
cm
mm
in
pc
pt
Open this HTML file in an editor:
exercises-start/exercise-214-03-03.html
Write a CSS rule to style example1
with a box-shadow
value of 10px 0 5px 0 #777
.
.example1 {
box-shadow: 10px 0 5px 0 #777;
}
Write a second CSS rule to style example2
with a box-shadow
value of -10px 0 5px 0 #777
.
.example2 {
box-shadow: -10px 0 5px 0 #777;
}
Check your work against the finished HTML file:
exercises-finished/exercise-214-03-03.html
The second length value, <offset-y>
defines the vertical offset.
A positive value will place the shadow below the box.
p {
box-shadow: 0 10px 5px 0 #777;
}
A negative value will place the shadow above the box.
p {
box-shadow: 0 -10px 5px 0 #777;
}
A value of 0
will place the shadow directly behind the box on the vertical axis.
The <offset-y>
is defined using a <length>
value, which means the value can be defined using any of the following units.
/* Font-relative lengths */
ch
em
ex
rem
/* Viewport-percentage lengths */
vh
vw
vmin
vmax
/* Absolute length units */
px
cm
mm
in
pc
pt
Open this HTML file in an editor:
exercises-start/exercise-214-03-04.html
Write a CSS rule to style example1
with a box-shadow
value of 10px 0 5px 0 #777
.
.example1 {
box-shadow: 0 10px 5px 0 #777;
}
Write a second CSS rule to style example2
with a box-shadow
value of -10px 0 5px 0 #777
.
.example2 {
box-shadow: 0 -10px 5px 0 #777;
}
Check your work against the finished HTML file:
exercises-finished/exercise-214-03-04.html
The third length value, <blur-radius>
defines the amount of blur in the shadow.
This value is optional. If not specified, it will default to 0
.
If set to a value of 0
the shadow will be hard-edged.
p {
box-shadow: 10xp 10px 0 0 #777;
}
The higher the blur radius number, the softer the box-shadow will be.
p {
box-shadow: 10xp 10px 10px 0 #777;
}
Negative values are not allowed for the blur radius.
The <blur-radius>
is defined using a <length>
value, which means the value can be defined using any of the following units.
/* Font-relative lengths */
ch
em
ex
rem
/* Viewport-percentage lengths */
vh
vw
vmin
vmax
/* Absolute length units */
px
cm
mm
in
pc
pt
Open this HTML file in an editor:
exercises-start/exercise-214-03-05.html
Write a CSS rule to style example1
with a box-shadow
value of 10px 10px 0 0 #777
.
.example1 {
box-shadow: 10px 10px 0 0 #777;
}
Write a second CSS rule to style example2
with a box-shadow
value of 10px 10px 20px 0 #777
.
.example2 {
box-shadow: 10px 10px 20px 0 #777;
}
Check your work against the finished HTML file:
exercises-finished/exercise-214-03-05.html
The fourth length value, <spread-radius>
defines the amount that the shadow increases or decreases in size compared to the box.
This value is optional. If not specified, it will default to 0
.
If set to a value of 0
the shadow will remain the same size as the box.
Positive values cause the shadow to expand in all directions (so the shadow appears larger than the box).
p {
box-shadow: 10xp 10px 10px 10px #777;
}
Negative values cause the shadow to contract in all directions (so the shadow appears smaller than the box).
p {
box-shadow: 10xp 10px 10px -10px #777;
}
The <spread-radius>
is defined using a <length>
value, which means the value can be defined using any of the following units.
/* Font-relative lengths */
ch
em
ex
rem
/* Viewport-percentage lengths */
vh
vw
vmin
vmax
/* Absolute length units */
px
cm
mm
in
pc
pt
Open this HTML file in an editor:
exercises-start/exercise-214-03-06.html
Write a CSS rule to style example1
with a box-shadow
value of 25px 25px 10px 10px #777
.
.example1 {
box-shadow: 25px 25px 10px 10px #777;
}
Write a second CSS rule to style example2
with a box-shadow
value of 25px 25px 10px -10px #777
.
.example2 {
box-shadow: 25px 25px 10px -10px #777;
}
Check your work against the finished HTML file:
exercises-finished/exercise-214-03-06.html
Multiple box shadows can be applied to a box. They are applied as a comma-separated list.
p {
box-shadow:
10px 10px 5px 5px black,
20px 20px 5px 5px yellow;
}
The shadow that is defined first is displayed at the top and the others are layered behind.
Open this HTML file in an editor:
exercises-start/exercise-214-03-07.html
Write a CSS rule to style example1
with three box-shadow
values:
.example1 {
box-shadow:
5px 5px 0 0 green,
10px 10px 0 0 red,
15px 15px 0 0 blue;
}
Write a second CSS rule to style example2
with three box-shadow
values:
.example2 {
box-shadow:
inset 5px 5px 0 0 green,
inset 10px 10px 0 0 red,
inset 15px 15px 0 0 blue;
}
Check your work against the finished HTML file:
exercises-finished/exercise-214-03-07.html