Як скинути чи замінити фільтри CSS IE?


89

Я використовую властивість власника MS 'filter', щоб спробувати створити некрасивий еквівалент css3 text-shadow та box-shadow;

Насправді у мене все було дуже добре, поки я не вирішив цю проблему. Схоже, коли я застосовую фільтр до div всередині іншого div, який також має фільтр, ефекти фільтру в кінцевому підсумку поєднуються з дочірнім об'єктом.

Я пробував використовувати filter: none; зробити скидання, але ніякої радості. Я також пробував різні варіанти синтаксису, тобто "-ms-filter: 'progid: ... Glow ()'", "filter: progid: ... Glow ()", "filter: Glow ()" тощо.

Тестування в IE8


8
Це працює для мене:filter:;
Web_Designer

1
фільтр :; не працює з препроцесором css lessphp, фільтр: -; все ж робить.
Девід Мейстер,

використання filter: ;. це, я думаю, змусить IE видалити властивість разом, оскільки воно не є дійсним значенням.
Bhumi Singhal

3
Використовуючи SCSS, мені довелося використовувати, filter:none;щоб уникнути синтаксичних помилок.
Nic Barbier

Відповіді:


95

Увімкнено логічний атрибут , для якого ви можете встановити false або true http://msdn.microsoft.com/en-us/library/ms532997%28v=vs.85%29.aspx

Приклад:

-ms-filter: "progid:DXImageTransform.Microsoft.gradient(enabled=false)";

1
Дякую! Це працювало для мене двох. У мене був настирливий стиль тла, який не зникав і не міг його знайти, як би я не старався.
racl101

Дякую! градієнтні фільтри для кнопок погано грають, а потім мають певні кнопки з фоновими зображеннями - фільтр надходить на зображення ...
Адам,

Працював як оберіг! Дякую!
Богдан

20

Властивість -ms-filter є нестандартною, специфічною для браузера записом CSS, і як така вимагає, щоб її параметр був заключений у лапки. Так -ms-filter: "none" буде працювати нормально.



6

Я мав певний успіх, позиціонуючи дітей як абсолютних чи відносних. Здавалося, це не спрацювало раніше, тому, можливо, воно знову зламається, коли я ускладнюсь

Я думаю, що коли батько застосував фільтр, усі його діти по суті стають поверхнями directx внутрішньо. Ви все ще можете виділити текст, але він відстає. Я думаю, що виділення тексту - це хак, який робить кожну букву окремою поверхнею. Це дерьмове безладдя, яке дуже довго пояснює, чому браузер загалом і фільтри, зокрема, такі глючні.


6

Якщо ви використовуєте HTML5, можливо, ви захочете піти шляхом використання

<!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]-->

і у своєму CSS використовуйте щось на зразок:

.ie9 .element {filter: none; }


0

Я знайшов найкращий спосіб display: inline-block (застосовуючи пробіл: nowrap до контейнера). Але, здається, це погано працює з IE7 і нижче

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.