2011-05-11 11 views
8

Sadece saçma davranışlara benzeyen şeylere rastladım. IE8 Kural kısmını anlamazsa o şeyin tamamını yok sayar:IE8'i yalnızca kısmen anladığı bir CSS kuralını yok saymamak için bir yol var mı?

input[type=radio]:checked, 
input.checked { 
    /* Some CSS */ 
} 

Zaten IE8 belirli JS .checked sınıf ekleyerek var ama :checked anlamıyor çünkü, o kadar, tüm şey yok sayar Şimdi birkaç kurallara sahip zorunda kalıyorum:

input[type=radio]:checked{ 
    /* Some CSS */ 
} 
input.checked { 
    /* The exact same CSS */ 
} 

benim soru

- herkes IE8 almak için bir yol biliyor mu ve aşağıdaki tüm kural dışarı atma yerine :checked görmezden?

çok temel bir örnek: http://jsfiddle.net/8UT56/

+0

"Anlaşıldı" kuralı ilk önce gelirse ne olur? Örneğin. input.checked, input [type = radio]: checked'? –

+0

@pst - hala yok sayılıyor –

+3

Bu saçma bir davranış değil. Bir kez, IE8 [özellikler] 'e göre hareket eder (http://www.w3.org/TR/CSS21/syndata.html#rule-sets): 'herhangi bir yerde bir hata varsa, tüm ifade göz ardı edilmelidir. seçici '. Yine de bir geçici çözüm olup olmadığından emin değil. – user123444555621

cevap

1

Sen IE yeni seçiciler vermek http://selectivizr.com/ gibi bir kütüphane kullanabilirsiniz.

+1

olduğunu anlamış olmaktan mı çıkarıyorum? CSS'yi düzeltmek için JS'yi kullanmaktan rahatsız olan tek kişi miyim? –

+1

Eh, sadece eski tarayıcılar içindir ve çoğu insan için sadece CSS kullanmanıza izin verir. Böyle hissetmekteydim, ancak şimdi HTML + CSS + JS'nin platform olduğunu ve çoğu projede zaten işi bitirmek için 3'üne güventiğinizin farkına vardım. –

+0

CSS'nin paralel olarak indirilip ayrıştırılabildiğini aklınızdan çıkarmayın. JS bunu yapmayacaktır. IE8 kullanıcıları, kullanıcı tabanınızın büyük bir parçasıysa, bu sunucu tarafını yapmayı düşünün. – Henrik

İlgili konular