Я до сих пор не нашел прилично выглядящего способа, который бы работал во всех ситуациях. Вот два метода:
1.) http://jsfiddle.net/pGGXH/28/ - используйте отступы + переполнение, чтобы показать тень.
<div class="no-overflow">
<div class="box">my box</div>
</div>
.no-overflow {
overflow:hidden;
padding:5px 5px 0 5px;
}
.box {
border:1px solid #000;
border-radius:5px;
box-shadow:0 0 5px #333;
padding:10px;
}
2.) http://jsfiddle.net/pGGXH/33/ - использует наложение теней границ (можно сложить несколько теней границ друг на друга)
<div class="box">my box</div>
.box {
border:1px solid #000;
border-radius:5px;
box-shadow:0 10px 0 #fff, 0 0 5px #333;
padding:10px;
}
Однако с радиусом границы оба решения не так уж хороши.