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


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

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.



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.


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


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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.