Подтвердить что ты не робот

Интернет-обозреватель - CSS-тень вокруг

Я срывал свои волосы по этой проблеме, мне нужна простая тень вокруг всего элемента, кроме того, для верха. Я получил его для работы в Firefox и Chrome без проблем. Но IE имеет эту странную настройку "направление", где, как и другие, четыре цифры определяют тень.

Может ли кто-нибудь помочь мне определить правильный CSS, чтобы у него была тень вокруг всего элемента, кроме вершины.

/* For Firefox and Chrome */
-moz-box-shadow: 0px 0px 7px #000;
-webkit-box-shadow: 0px 0px 7px #000;
 box-shadow: 0px 0px 7px #000;

 /* for IE */
 -ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=600, Color='#000000')";
4b9b3361

Ответ 1

Теневой фильтр является однонаправленным, а направление - числом от 1 до 360 градусов. Чтобы создать тень окна с возможностью смещения этой тени, вам понадобятся несколько теневых фильтров:

   filter: progid:DXImageTransform.Microsoft.Shadow(Color=#cccccc, Strength=5, Direction=0),
     progid:DXImageTransform.Microsoft.Shadow(Color=#cccccc, Strength=5, Direction=90),
     progid:DXImageTransform.Microsoft.Shadow(Color=#cccccc, Strength=5, Direction=180),
     progid:DXImageTransform.Microsoft.Shadow(Color=#cccccc, Strength=5, Direction=270);

Это отсортировано сверху/справа/снизу/слева, и изменение силы на одной стороне изменяет размер этой тени. Например, 2 5 5 10 создаст прямую тень, создающую иллюзию высоты.

Ответ 2

Подобно предыдущему ответу (см. примечание ниже):

#boxContainer{ 
   filter:
        progid:DXImageTransform.Microsoft.Shadow(Strength=3, Direction=0, Color='#000000'),
        progid:DXImageTransform.Microsoft.Shadow(Strength=3, Direction=90, Color='#000000'),
        progid:DXImageTransform.Microsoft.Shadow(Strength=3, Direction=180, Color='#000000'),
        progid:DXImageTransform.Microsoft.Shadow(Strength=3, Direction=270, Color='#000000');
}

Важно: Имейте в виду, что там также есть ошибка в IE, где он будет применять тот же стиль к дочерним элементам. Поэтому вам может потребоваться применить "счетчик" / "Nullifier", если вы это сделаете.

Пример:

#boxContainer button, #boxContainer div, #boxContainer span {
  /* Nullify Inherited Effect - Set "Strength=0" */
  filter:
    progid:DXImageTransform.Microsoft.Shadow(Strength=0, Direction=0, Color='#000000'),
    progid:DXImageTransform.Microsoft.Shadow(Strength=0, Direction=90, Color='#000000'),
    progid:DXImageTransform.Microsoft.Shadow(Strength=0, Direction=180, Color='#000000'),
    progid:DXImageTransform.Microsoft.Shadow(Strength=0, Direction=270, Color='#000000');
}

Ответ 4

здесь есть решения: http://www.artlebedev.com/tools/technogrette/html/filters-in-ie/ сочетая фильтры свечения и размытия, которые выглядят значительно лучше, чтобы процитировать один из примеров кода на странице выше:

.shadowed .shadow-3
{
filter: progid:DXImageTransform.Microsoft.Glow(Color=#000000,Strength=1.0)
progid:DXImageTransform.Microsoft.Alpha(opacity=25)
progid:DXImageTransform.Microsoft.Blur(pixelradius=1.75, enabled='true');
-ms-filter: "progid:DXImageTransform.Microsoft.Glow(Color=#000000,Strength=1.0)"
"progid:DXImageTransform.Microsoft.Alpha(opacity=25)"
"progid:DXImageTransform.Microsoft.Blur(pixelradius=1.75, enabled='true')";
color: #111111;
top: -2px;
left: -2px;
}