Bagaimana cara mereset atau mengganti filter IE CSS?

89

Saya menggunakan properti MS 'filter' untuk mencoba dan membuat padanan yang tidak jelek untuk teks-shadow dan box-shadow css3;

Sebenarnya saya melakukannya dengan sangat baik sampai saya menemukan masalah ini. Sepertinya ketika saya menerapkan filter ke div di dalam div lain yang juga memiliki filter, efek filter akhirnya digabungkan pada objek anak.

Saya sudah mencoba menggunakan filter: none; untuk melakukan reset tetapi tidak ada kegembiraan. Saya juga telah mencoba variasi berbeda pada sintaks, yaitu "-ms-filter: 'progid: ... Glow ()'", "filter: progid: ... Glow ()", "filter: Glow ()" , dll ..

Menguji di IE8

SpliFF
sumber
8
Ini bekerja untuk saya:filter:;
Web_Designer
1
Saring:; tidak bekerja dengan preprosesor css lessphp, filter: -; tidak.
David Meister
gunakan filter: ;. ini saya kira akan memaksa IE untuk menghapus semua properti bersama-sama karena itu bukan nilai yang valid.
Bhumi Singhal
3
Menggunakan SCSS, saya harus menggunakan filter:none;untuk menghindari kesalahan Sintaks.
Nic Barbier

Jawaban:

95

Ada atribut boolean yang diaktifkan , di mana Anda dapat menyetel false atau true http://msdn.microsoft.com/en-us/library/ms532997%28v=vs.85%29.aspx

Contoh:

-ms-filter: "progid:DXImageTransform.Microsoft.gradient(enabled=false)";
el22or
sumber
1
Terima kasih! Ini berhasil untuk saya berdua. Saya memiliki gaya latar belakang yang mengganggu yang tidak akan hilang dan tidak dapat menemukannya tidak peduli seberapa keras saya mencoba.
racl101
Terima kasih! filter gradien untuk tombol tidak berfungsi dengan baik kemudian memiliki tombol tertentu dengan gambar latar belakang - filter muncul di gambar ...
Adam
Bekerja seperti pesona! Terima kasih!
Bogdan
20

Properti -ms-filter adalah entri CSS khusus browser non-standar dan dengan demikian parameternya harus diapit dengan tanda kutip. Jadi -ms-filter: "none" akan bekerja dengan baik.

Bebek Merah Muda
sumber
16

coba ini:

Saring: -;

browzah
sumber
Bekerja untuk saya di IE7 sementara -ms-filter: "progid: DXImageTransform.Microsoft.gradient (enabled = false)"; tidak. Thx
Simon Arnold
@SimonArnold "-ms-filter" hanya didukung oleh IE8 dan yang lebih baru; IE7 hanya mendukung atribut "filter". Lihat msdn.microsoft.com/en-us/library/ie/ms530752(v=vs.85).aspx .
vee
6

Saya telah berhasil dengan memposisikan anak-anak secara absolut atau relatif. Ini sepertinya tidak berfungsi sebelumnya sehingga mungkin rusak lagi setelah saya menjadi lebih rumit

Saya pikir begitu orang tua memiliki filter yang diterapkan, semua anaknya pada dasarnya menjadi permukaan directx secara internal. Anda masih dapat memilih teks tetapi tertinggal. Saya pikir pemilihan teks adalah retasan yang membuat setiap huruf menjadi permukaan yang terpisah. Ini adalah kekacauan menyebalkan yang menjelaskan mengapa browser secara umum dan filter pada khususnya sangat bermasalah.

SpliFF
sumber
6

Jika Anda menggunakan HTML5, Anda mungkin ingin menyusuri cara penggunaan

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

dan di CSS Anda gunakan sesuatu seperti:

.ie9 .element {filter: none; }
John C
sumber
1

Sudahkah Anda mencoba mengaktifkan / menonaktifkan filter?

anddoutoi
sumber
2
itu tidak berhasil, Anda tidak dapat mengganti filter orang tua dari anak.
SpliFF
0

Saya telah menemukan cara terbaik adalah display: inline-block (menerapkan white-space: nowrap ke container). Tetapi tampaknya berfungsi buruk dengan IE7 dan yang lebih rendah

maks
sumber