Używam zastrzeżonej właściwości „filter” MS, aby spróbować stworzyć nie brzydki odpowiednik css3 text-shadow i box-shadow;
Właściwie szło mi naprawdę dobrze, dopóki nie napotkałem tego problemu. Wygląda na to, że gdy zastosuję filtr do elementu div wewnątrz innego elementu div, który również ma filtr, efekty filtru zostaną połączone na obiekcie podrzędnym.
Próbowałem użyć filtra: brak; zrobić reset, ale bez radości. Próbowałem też różnych odmian składni, np. „-Ms-filter: 'progid: ... Glow ()'", "filter: progid: ... Glow ()", "filter: Glow ()" itp.
Testowanie w IE8
css
filter
internet-explorer
SpliFF
źródło
źródło
filter:;
filter: ;
. to chyba zmusi IE do usunięcia tej właściwości razem, ponieważ nie jest to poprawna wartość.filter:none;
aby uniknąć błędów składniowych.Odpowiedzi:
Jest włączony atrybut boolean , dla którego można ustawić wartość false lub true http://msdn.microsoft.com/en-us/library/ms532997%28v=vs.85%29.aspx
Przykład:
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(enabled=false)";
źródło
Właściwość -ms-filter jest niestandardowym wpisem CSS specyficznym dla przeglądarki i jako taka wymaga, aby jej parametr był ujęty w cudzysłów. Więc -ms-filter: "none" będzie działać dobrze.
źródło
Spróbuj tego:
filtr: -;
źródło
Odniosłem pewien sukces, ustawiając dzieci jako bezwzględne lub względne. To nie wydawało się działać wcześniej, więc może się ponownie zepsuć, gdy stanę się bardziej skomplikowany
Myślę, że gdy rodzic zastosuje filtr, wszystkie jego dzieci zasadniczo stają się wewnętrznie powierzchniami directx. Nadal możesz zaznaczyć tekst, ale jest on opóźniony. Myślę, że zaznaczanie tekstu to sztuczka, która sprawia, że każda litera jest oddzielną powierzchnią. To gówniany bałagan, który w dużym stopniu wyjaśnia, dlaczego przeglądarka w ogóle, a filtry w szczególności, są tak błędne.
źródło
Jeśli używasz HTML5, możesz zechcieć przejść dalej ścieżką używania
<!doctype html> <!--[if lt IE 7 ]> <html lang="en" class="ie6 oldie"> <![endif]--> <!--[if IE 7 ]> <html lang="en" class="ie7 oldie"> <![endif]--> <!--[if IE 8 ]> <html lang="en" class="ie8 oldie"> <![endif]--> <!--[if IE 9 ]> <html lang="en" class="ie9"> <![endif]--> <!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="gtie9 modern"> <!--<![endif]-->
aw swoim CSS użyj czegoś takiego:
.ie9 .element {filter: none; }
źródło
Czy próbowałeś włączyć / wyłączyć filtr (y)?
źródło
Znalazłem najlepszy sposób wyświetlania: inline-block (zastosowanie spacji: nowrap do kontenera). Ale wydaje się, że działa źle z IE7 i niższymi
źródło