ОБНОВЛЕНИЕ 4
То же, что и обновление 3, но с современным css (= меньше правил), так что не требуется никакого специального позиционирования на псевдоэлементе.
#box {
background-color: #3D6AA2;
width: 160px;
height: 90px;
position: absolute;
top: calc(10% - 10px);
left: calc(50% - 80px);
}
.box-shadow:after {
content:"";
position:absolute;
width:100%;
bottom:1px;
z-index:-1;
transform:scale(.9);
box-shadow: 0px 0px 8px 2px #000000;
}
<div id="box" class="box-shadow"></div>
ОБНОВЛЕНИЕ 3
Все мои предыдущие ответы использовали дополнительную разметку, чтобы создать этот эффект, который не обязательно нужен. Я думаю, что это намного более чистое решение ... единственный трюк - это подыгрывать значениям, чтобы получить правильное расположение тени, а также правильную силу / непрозрачность тени. Вот новая скрипка, использующая псевдоэлементы :
http://jsfiddle.net/UnsungHero97/ARRRZ/2/
HTML
<div id="box" class="box-shadow"></div>
CSS
#box {
background-color: #3D6AA2;
width: 160px;
height: 90px;
margin-top: -45px;
margin-left: -80px;
position: absolute;
top: 50%;
left: 50%;
}
.box-shadow:after {
content: "";
width: 150px;
height: 1px;
margin-top: 88px;
margin-left: -75px;
display: block;
position: absolute;
left: 50%;
z-index: -1;
-webkit-box-shadow: 0px 0px 8px 2px #000000;
-moz-box-shadow: 0px 0px 8px 2px #000000;
box-shadow: 0px 0px 8px 2px #000000;
}
ОБНОВЛЕНИЕ 2
По-видимому, вы можете сделать это, просто добавив дополнительный параметр к CSS для box-shadow, как и все остальные. Вот демо:
http://jsfiddle.net/K88H9/821/
CSS
-webkit-box-shadow: 0 4px 4px -2px #000000;
-moz-box-shadow: 0 4px 4px -2px #000000;
box-shadow: 0 4px 4px -2px #000000;
Это было бы лучшим решением. Добавляемый дополнительный параметр описывается так:
Четвертая длина - это расстояние распространения. Положительные значения заставляют форму тени расширяться во всех направлениях на указанный радиус. Отрицательные значения приводят к сокращению формы тени.
ОБНОВИТЬ
Проверьте демо на jsFiddle: http://jsfiddle.net/K88H9/4/
Я создал «теневой элемент», который скрылся бы за фактическим элементом, который вы хотели бы иметь тень. Я сделал ширину «теневого элемента» точно меньшей ширины, чем фактический элемент, в 2 раза больше указанной вами тени; тогда я выровнял это правильно.
HTML
<div id="wrapper">
<div id="element"></div>
<div id="shadow"></div>
</div>
CSS
#wrapper {
width: 84px;
position: relative;
}
#element {
background-color: #3D668F;
height: 54px;
width: 100%;
position: relative;
z-index: 10;
}
#shadow {
background-color: #3D668F;
height: 8px;
width: 80px;
margin-left: -40px;
position: absolute;
bottom: 0px;
left: 50%;
z-index: 5;
-webkit-box-shadow: 0px 2px 4px #000000;
-moz-box-shadow: 0px 2px 4px #000000;
box-shadow: 0px 2px 4px #000000;
}
Оригинальный ответ
Да, вы можете сделать это с тем же синтаксисом, который вы указали. Первое значение контролирует горизонтальное позиционирование, а второе значение контролирует вертикальное позиционирование. Так что просто установите для первого значения, 0px
а для второго смещение, которое вы хотите, следующим образом:
-webkit-box-shadow: 0px 5px #000000;
-moz-box-shadow: 0px 5px #000000;
box-shadow: 0px 5px #000000;
Для получения дополнительной информации о тенях коробки, проверьте эти:
Надеюсь, это поможет.
box-shadow-bottom
что не существует и не поддерживается никем. См. Nicolasgallagher.com/css-drop-shadows-without-images/demo для законных методов теней.