2011-10-20 13 views
11

Zrywałem włosy z tego powodu, chcę prosty cień, który działa na cały element, oprócz tego na szczyt. Mam go do pracy w Firefoksie i Chrome bez problemu. Ale IE ma to dziwne ustawienie "kierunku", gdzie jako 4 cyfry definiują cień.Internet Explorer - Cień w CSS Wokół

Czy ktoś może mi pomóc zdefiniować odpowiedni CSS, tak aby miał cień wokół całego elementu poza szczytem.

/* 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')"; 
+2

+1 za wyrywanie włosów z tego numeru Zrobiłem to samo: d – Jack

Odpowiedz

24

Filtr cień jest jednokierunkowy, a kierunek jest liczbą od 1 do 360 stopni. Aby wygenerować pole cień z możliwością przesunięcia że cień, trzeba użyć wielu filtrów shadow:

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); 

To jest posortowana góra/prawo/dół/lewo i różnej wytrzymałości na jednym boku zmieni rozmiar tego cienia. Na przykład, 2 5 5 10 wytworzy prosty cień, który daje iluzję wysokości.

+1

+1 działa jak czar, przeszukałem to wszystko i wszystko, co mam, nie działa, wypróbowałem to i zadziałało :) – Jack

+0

Dla przypomnienia, odpowiedź @ timothy-pereza [poniżej] (http://stackoverflow.com/a/ 12684880/1005913) to bardziej kompletna wersja mojego - nie wiedziałem o problemie z dziedziczeniem. <3 IE. – egid

8

Podobnie jak powyższa odpowiedź (patrz uwaga poniżej):

#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'); 
} 

Ważne: Pamiętaj, nie ma również błąd w IE, gdzie będzie stosować ten sam styl do elementów podrzędnych. Być może będziesz musiał zastosować "counter"/"Nullifier", jeśli zechcesz.

Przykład:

#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'); 
} 
0

istnieją rozwiązania tutaj: http://www.artlebedev.com/tools/technogrette/html/filters-in-ie/ połączenie blasku i rozmycia filtrów, które wyglądają znacznie lepiej, by zacytować jednego z próbkami kodu na stronie powyżej:

.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; 
} 
Powiązane problemy