2012-11-16 15 views
6

IE 9 için bazı koşullu stilleri kullanmak istiyorum - ancak ikinci stil sayfası kullanmama veya HTML sayfasına başvurma gibi ana stil sayfamdaki koşullara sahip olmak istiyorum. Böylece,CSS stil sayfasının içinde koşullu biçimlendirmeyi nasıl kullanırım?

<!--[if IE 9]> 
<style> 
nav li a:hover { 
    text-decoration: underline; 
    color: black; 
} 
nav .four a:hover{ 
    color:white; 
} 
</style> 
<![endif]--> 

Ama CSS sayfasında bu koşullara sahip istiyorum: Şu anda bunun ana stil sayfasındaki diğer stilleri üzerine yazar çünkü çalışır HTML sayfası, bu kodu koyarak am hepsi tek bir yerde bulunur ve her sayfada kodu tekrar etmek zorunda kalmam. Ayrıca IE 9 için ayrı bir CSS'den kaçınmayı tercih ederim - zaten IE 7-8 için bir tane var. Ben stil sayfasında bu çalıştı: (IE 9 metin gölgeleri desteklemediği için nav bar için onun bir düzeltme)

<!--[if IE 9]> 

nav li a:hover { 
    text-decoration: underline; 
    color: black; 
} 
nav .four a:hover{ 
    color:white; 
} 
<![endif]--> 

Yukarıdaki kod benim nav bar için IE 9 için özeldir.

Bunu CSS stil sayfasında yapmanın bir yolu var mı?

cevap

6

Koşullu Yorumlar sadece HTML için, ancak CSS'nizde bunun yararlanabilirsiniz. HTML5Boilerplate html elemanı (https://github.com/h5bp/html5-boilerplate/blob/master/index.html)

<!DOCTYPE html> 
<!--[if lt IE 7]>  <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]--> 
<!--[if IE 7]>   <html class="no-js lt-ie9 lt-ie8"> <![endif]--> 
<!--[if IE 8]>   <html class="no-js lt-ie9"> <![endif]--> 
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]--> 

Bu, sizin için kullanabileceğiniz bir kanca verir için bir sınıf ekleyerek yapar Yalnızca IE'yi hedefleme:

.lt-ie8 .my-style { color: red } 
+0

Teşekkürler, bu işe yaradı. Def gelecekteki projeler için daha sık boilerplate kullanmaya başlayacak! –

0

Bu standart olarak imkansız. IE'deki koşullu bloklar sadece HTML web sayfalarında kullanılabilir. Ancak, tarayıcı satıcıları Microsoft dahil olmak üzere css ayrıştırıcılarıyla her zaman komik olmuşlardır. Dolayısıyla, bazı ayrıştırıcılar tarafından yorumlanan bazı kuralların başkaları tarafından değil, css hacks olarak adlandırdığımız birkaç şey vardır.

Mümkünse kaçınılması gereken bir şey değil lütfen: stil sayfası artık w3c uyumlu olmayacaktır ve kesinlikle 'temiz' bir çözüm (IE6'nın karanlık saltanatı sırasında müşterek olan kirli eski geçici çözümler gibi) kesinlikle değil. .

+0

Doğru şeye bağlı olduğunuzu düşünmüyorum ... – Nathan

+0

Oops. Eh, en azından [bu] gibi değil (http://www.digipedia.pl/usenet/thread/17198/42524/) yanlış bağlantı! Teşekkürler –

+0

Haha, yikes! Bu hata raporundan sızan garipliği neredeyse hissediyorum. – Nathan

İlgili konular