Reputation: 1635
I am using box-shadow to create an inner shadow...
box-shadow: inset 0 0 10px #000000;
-moz-box-shadow: inset 0 0 10px #000000;
-webkit-box-shadow: inset 0 0 10px #000000;
...but would like the inner shadow to come in from the bottom only. I have tried several ways of trying to make this work but can't... How would I do this with box-shadow?
Upvotes: 67
Views: 101902
Reputation: 2599
Use a negative value for the fourth length which defines the spread distance. This is often overlooked, but supported by all major browsers. See this Fiddle for the result.
div {
background: red;
height: 100px;
width: 200px;
-moz-box-shadow: inset 0 -10px 10px -10px #000000;
-webkit-box-shadow: inset 0 -10px 10px -10px #000000;
box-shadow: inset 0 -10px 10px -10px #000000;
}
<div></div>
Upvotes: 157
Reputation: 6596
On top only:
-moz-box-shadow: inset 0 10px 10px -10px grey;
-webkit-box-shadow: inset 0 10px 10px -10px grey;
box-shadow: inset 0 10px 10px -10px grey;
On bottom only:
-moz-box-shadow: inset 0 -10px 10px -10px grey;
-webkit-box-shadow: inset 0 -10px 10px -10px grey;
box-shadow: inset 0 -10px 10px -10px grey;
On top and bottom only:
-moz-box-shadow: inset 0 10px 10px -10px grey,
inset 0 -10px 10px -10px grey;
-webkit-box-shadow: inset 0 10px 10px -10px grey,
inset 0 -10px 10px -10px grey;
box-shadow: inset 0 10px 10px -10px grey,
inset 0 -10px 10px -10px grey;
Quick Example
.shadow-top {
-moz-box-shadow: inset 0 10px 10px -10px grey;
-webkit-box-shadow: inset 0 10px 10px -10px grey;
box-shadow: inset 0 10px 10px -10px grey;
}
.shadow-bottom {
-moz-box-shadow: inset 0 -10px 10px -10px grey;
-webkit-box-shadow: inset 0 -10px 10px -10px grey;
box-shadow: inset 0 -10px 10px -10px grey;
}
.shadow-top-bottom {
-moz-box-shadow: inset 0 10px 10px -10px grey,
inset 0 -10px 10px -10px grey;
-webkit-box-shadow: inset 0 10px 10px -10px grey,
inset 0 -10px 10px -10px grey;
box-shadow: inset 0 10px 10px -10px grey,
inset 0 -10px 10px -10px grey;
}
div { display:inline-block; margin-right:15px; width:150px; height:100px; background:yellow; }
<div class='shadow-top'></div>
<div class='shadow-bottom'></div>
<div class='shadow-top-bottom'></div>
Upvotes: 24