CSS тени все четыре стороны div

Я хочу достичь этого в CSS-не CSS3, поскольку я хочу, чтобы он поддерживался всеми браузерами bg с тенями со всех сторон http://img831.imageshack.us/img831/5339/27900717.png

ie div, содержащий контент, с тенями со всех сторон. Верхняя область будет использоваться для навигации. Я искал учебники, но до сих пор безрезультатно. Помогите!

12 ответов


Как сказал Ventus, невозможно использовать тени css с ie (только ie9). Но вы можете использовать shadowOn. Это отличный плагин jQuery и очень прост в использовании. С его помощью вы будете иметь кросс-совместимость браузера.


Box Shadow работает во всех браузерах mordern [IE>8], этот код не использует изображений и работает во всех браузерах в версиях IE ниже 9.

 box-shadow:2px 2px 10px 10px #C9C9C9;
 -webkit-box-shadow:2px 2px 10px 10px #C9C9C9;
 -moz-box-shadow:2px 2px 10px 10px #C9C9C9;

  /* For IE<9 */  
  filter:
  progid:DXImageTransform.Microsoft.Shadow(color=#C9C9C9,direction=0,strength=5),
  progid:DXImageTransform.Microsoft.Shadow(color=#C9C9C9,direction=45,strength=2),
  progid:DXImageTransform.Microsoft.Shadow(color=#C9C9C9,direction=90,strength=5),
  progid:DXImageTransform.Microsoft.Shadow(color=#C9C9C9,direction=135,strength=5),
  progid:DXImageTransform.Microsoft.Shadow(color=#C9C9C9,direction=180,strength=10),
  progid:DXImageTransform.Microsoft.Shadow(color=#C9C9C9,direction=225,strength=5),
  progid:DXImageTransform.Microsoft.Shadow(color=#C9C9C9,direction=270,strength=5),
  progid:DXImageTransform.Microsoft.Shadow(color=#C9C9C9,direction=315,strength=2);

тень коробки поддержанная от IE 9 и далее.


CSS3pie - это инструмент, который позволяет использовать некоторые свойства CSS3 в IE.

то, что вы пытаетесь сделать, довольно широко распространено css3 в новых браузерах и эмулируется очень хорошо (и легко) в IE с помощью .файл htc вы можете скачать оттуда.

Что касается разметки, я вижу только 2 элемента, например, с верхним плавающим справа. Вам придется играть с z-index, чтобы скрыть лишние тени. На этом сайте также есть очень похожий эффект, вы должны быть в состоянии приспособить его для ваших нужд.


Это должно работать во всех браузерах:


    .allSidesShadow {
        box-shadow: 2px 2px 19px #aaa;
        -o-box-shadow: 2px 2px 19px #aaa;
        -webkit-box-shadow: 2px 2px 19px #aaa;
        -moz-box-shadow: 2px 2px 19px #aaa;

        /* For IE 5.5 - 7 */
        /* for IE4 - IE7 */
        filter:
            progid:DXImageTransform.Microsoft.Shadow(Strength=9, Direction=1, Color=#C4C4C4),
            progid:DXImageTransform.Microsoft.Shadow(Strength=9, Direction=90, Color=#C4C4C4),
            progid:DXImageTransform.Microsoft.Shadow(Strength=9, Direction=180, Color=#C4C4C4),
            progid:DXImageTransform.Microsoft.Shadow(Strength=9, Direction=270, Color=#C4C4C4);
        -ms-filter: "
            progid:DXImageTransform.Microsoft.Shadow(Strength=9, Direction=1, Color=#C4C4C4),
            progid:DXImageTransform.Microsoft.Shadow(Strength=9, Direction=90, Color=#C4C4C4),
            progid:DXImageTransform.Microsoft.Shadow(Strength=9, Direction=180, Color=#C4C4C4),
            progid:DXImageTransform.Microsoft.Shadow(Strength=9, Direction=270, Color=#C4C4C4)
        ";
    }


ответ, опубликованный Sekar, нуждается в небольшом редактировании,

box-shadow:2px 2px 10px 10px #C9C9C9;
-webkit-box-shadow:2px 2px 10px 10x #C9C9C9;
-moz-box-shadow:2px 2px 10px 10px #C9C9C9;

это не работает на IE(я проверил на IE8).


box-shadow: inset 0 0 3px 0 #000;

означает 0 пикселей влево, 0 пикселей вправо, 3px размытие, 0 пикселей диффузное, используйте цвет немного темнее, чем BGs.


Я не могу видеть вашу фотографию сейчас, но для всех боковых теней я использую приведенный ниже код:

box-shadow: 0 0 5px 0 #000;

вместо 5px используйте свой размер.


вы должны создать несколько образов. Один с левой стороны. Один справа. Одно для дна, etc. А затем иметь несколько div и установить фон для каждого из них.


вы можете сделать это с тремя дивами, предполагая, что они все одинаковы (фиксированная) ширина:

<div class='top'>
</div>
<div class='middle'>
<p>Hello World!</p>
</div>
<div class='bottom'>
</div>

.top{
  background:url('top.png');
  height:20px;
  width:800px;
}
.middle{
  background:url('middle.png') repeat-y;
  width:800px;
  }
.bottom{
  background:url('bottom.png');
  height:20px;
  width:800px;
}

кроме того, вы можете сделать одно большое изображение, и использовать его в качестве фона для всей области содержимого; затем жестко позиции и размеры элементов.


вы можете поместить следующий код в div, чтобы отбросить тени со всех четырех сторон.

-webkit-box-shadow: 0 0 10px rgba(0,0,0,.1);
box-shadow: 0 0 10px rgba(0,0,0,.1);    

ниже строки работал для меня. Я использовал изображение с размерами 600x600.

-webkit-filter: drop-shadow(-10px 8px 30px #000) !important;