IE CSS filtrelerini nasıl sıfırlarım veya geçersiz kılarım?


89

Css3 metin gölge ve kutu gölge gibi çirkin olmayan bir eşdeğer denemek ve oluşturmak için MS 'filtre' özelliğini kullanıyorum;

Aslında bu sorunu çözene kadar gerçekten iyiydim. Görünüşe göre bir filtreye sahip başka bir div'in içindeki bir div'e filtre uyguladığımda, filtre efektleri alt nesnede birleştiriliyor.

Filtre kullanmayı denedim: yok; sıfırlama yapmak ama neşe yok. Ayrıca söz diziminde farklı varyasyonlar denedim, yani "-ms-filter: 'progid: ... Glow ()'", "filter: progid: ... Glow ()", "filter: Glow ()" , vb..

IE8'de test etme


8
Bu benim için çalışıyor:filter:;
Web_Designer

1
filtre :; lessphp css ön işlemcisi ile çalışmaz, filtre: -; olsa da.
David Meister

kullanın filter: ;. bu, geçerli bir değer olmadığı için IE'yi özelliği tamamen kaldırmaya zorlayacaktır.
Bhumi Singhal

3
SCSS'yi kullanarak, filter:none;Sözdizimi hatalarını önlemek için kullanmak zorunda kaldım .
Nic Barbier

Yanıtlar:


95

Boolean nitelik Orada etkin kendisi için ayarlayabilirsiniz, sahte ya da gerçek http://msdn.microsoft.com/en-us/library/ms532997%28v=vs.85%29.aspx

Misal:

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

1
Teşekkür ederim! Bu benim için iki çalıştı. Ne kadar uğraşırsam uğraşayım da onu bulamayan sinir bozucu bir arka plan stilim vardı.
racl101

Teşekkürler! düğmeler için gradyan filtreleri, arka plan resimleri olan belirli düğmelere sahip olduktan sonra iyi oynamıyor - filtre resmin üzerine geliyor ...
Adam

Büyü gibi çalıştı! Teşekkür ederim!
Bogdan

20

-Ms-filter özelliği, standart olmayan, tarayıcıya özgü bir CSS girişidir ve bu nedenle parametresinin tırnak işaretleri içine alınmasını gerektirir. So -ms-filter: "hiçbiri" iyi çalışacaktır.



6

Çocukları mutlak veya göreceli olarak konumlandırarak biraz başarı elde ettim. Bu daha önce işe yaramadı, bu yüzden daha karmaşık hale geldiğimde tekrar kırılabilir

Bence bir ebeveyne bir filtre uygulandığında tüm çocukları esasen dahili olarak direkt yüzeyler haline gelir. Yine de metni seçebilirsiniz, ancak gecikiyor. Bence metin seçimi, her harfi ayrı bir yüzey yapan bir hiledir. Genel olarak tarayıcının ve özellikle filtrelerin neden bu kadar hatalı olduğunu açıklamak için uzun bir yol kat eden boktan bir karmaşa.


6

HTML5 kullanıyorsanız, kullanma yolunda ilerlemek isteyebilirsiniz

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

ve CSS'nizde şuna benzer bir şey kullanın:

.ie9 .element {filter: none; }


0

En iyi yolun display: inline-block (beyaz boşluk uygulama: şimdi kaba kapama) olduğunu buldum. Ancak IE7 ve daha düşük sürümlerle kötü çalışıyor gibi görünüyor

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.