Интернет-обозреватель - 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')";
Ответы
Ответ 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');
}
Ответ 3
Попробуйте вместо этого фильтр "glow":
http://msdn.microsoft.com/en-us/library/ms532995(v=VS.85).aspx
DIV.aFilter {
filter:progid:DXImageTransform.Microsoft.Glow(Color=blue,Strength=5);
width: 150px;}
Ответ 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;
}