2009-02-20 16 views

cevap

17

IE koşullu (ları) HTML'de gider ve IE bilgisayarları için gerektiğinde CSS'nin üzerine yazacak ek bir CSS dosyası eklemek için kullanılmalıdır.


Örnek:

<head> 
    <style type="text/css"> 
    @import url(/styles.css); 
    </style> 
    <!--[if lte IE 6]> 
     <link rel="stylesheet" type="text/css" href="ie6.css" /> 
    <![endif]--> 
</head> 
11

JQuery öğesinden işaretimi aldım ve kapsayıcı öğeler oluşturmak için koşullu biçimlendirmeyi kullanıyorum

<body class="center"> 
<!--[if IE 5]><div id="ie5" class="ie"><![endif]--> 
<!--[if IE 6]><div id="ie6" class="ie"><![endif]--> 
<!--[if IE 7]><div id="ie7" class="ie"><![endif]--> 
<!--[if IE 8]><div id="ie8" class="ie"><![endif]--> 
    <div class="site text-left"> 

    </div> 
<!--[if IE]></div><![endif]--> 
</body> 

sonra böyle

CSS böyle bir koşul yoktur
.site { width:500px; } 
.ie .site { width:400px; } 
#ie5 .site { width:300px; } 
+0

Bu numarayı kendim kullanıyorum. Bu sizin CSS dosyalarınızı tidier * yapar ve * seçmen önceliği hakkında endişelenmenize engel olur. –

+0

İlginç bir yaklaşım, bunu daha önce görmemiştim. Kişisel olarak işaretlememi CSS'mden düzenli tutmak isterim. Ama her biri kendi başına! Şık hile için –

+0

+1. – Ishmael

3

gibi css koşullu bilgi koyabilir, ancak IE çeşitli sürümleri arasındaki farklar hizmet etmeyen "Holly kesmek" kullanabilirsiniz anlamlılık derecesine:

div.class { /* whatever */ } 
* html div.class { /* IE-only */ } 
+0

AFAIK, IE8'den '* html' kaldırıldı. – bendewey

+0

Daha da iyisi. Bu hile gerçekten IE'lerde gerçekten gereklidir <= 7 zaten. – greyfade

1

Ben bendewey tarafından önerilen çözüm benzer bir şey kullanmak, ancak bunun yerine html etiketi etrafında koşullu sınıflar için gitmek öneriyoruz. Bildiğim kadarıyla bu bildiği gibi ilk Paul İrlandaca en Blog (http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/)

<!--[if lt IE 7 ]> <html class="ie6"> <![endif]--> 
<!--[if IE 7 ]> <html class="ie7"> <![endif]--> 
<!--[if IE 8 ]> <html class="ie8"> <![endif]--> 
<!--[if IE 9 ]> <html class="ie9"> <![endif]--> 
<!--[if (gt IE 9)|!(IE)]><!--> <html class=""> <!--<![endif]--> 

sözü edilen ve daha sonra css kullanmak:

.box {background: blue;} 
.ie7 .box {background: green;} 

Bu fazladan kullanarak çözüme kıyasla bazı avantajları vardır div. Ayrıntılar için yukarıdaki yazıyı kontrol edin.

İlgili konular