2009-03-05 17 views
5
  • CSS içe aktarma etti hacks dahil etmek?
  • IE6 doğru, *html selector hack anlar?

o muhtemelenCSS yöntemi IE6 doğru,

//*html @import url(ie6hacks.css); 

ya, gibi onları birleştirmek mümkün

//*html { @import url(ie6hacks.css); } 

mi?

İyi tarayıcılar bunu atlamalı, hala IE6'da çalışacak mı? Çözüm olarak nasıl görünüyor? Gördüğüm kadarıyla normal CSS gibi çirkin görünüyor.

cevap

4

mümkün seçiciler değildir at-kurallar @import gibi

* html @import url(ie6hacks.css); 

sayılı gibi onları birleştirmek için mi, böylece diğer seçicileri ile kombine edilemez.

@import url(/* no! */iehacks.css); 

IE6/7 tarafından yüklenecek ancak diğer tarayıcılarda:

kuralları at-örneğin bunun için, kesmek olarak çalışması için yolları vardır. Ancak, bunu kullanmanızı tavsiye etmem; Bu tür bir şey gerçekten kırılgan olabilir. Bu özel örnek de geçersiz CSS'dir.

Daniel'in belirttiği gibi, hack için ayrı .css dosyaları istiyorsanız, en iyi yaklaşım koşullu olarak dahil edilen bir bağlantı etiketidir. “* Html” nin güzelliği, aynı stil sayfasındaki korsan kurallarını koyabilmenizdir, ki bu sadece birkaç tanesi varsa daha kolay yönetilebilir; zaten ayrı bir stil sayfası yaşıyorsanız, hiçbir avantajı yoktur.

IEO için IMO “* html”, bugün kullanmak için hala geçerli olan tek hacktir. Tüm kutu modeli şeyler IE5 ile birlikte ölüdür - IE6 Quirks Mode'u kullanmamanız gerektiği varsayıldığından - ve diğer tarayıcılar, IE7 bile, genellikle basit bir saldırıyla saldırabilmek için çok iyidir; Bunları hedefleyebilecek birkaç korsan, gerçekten kullanmak için çok karmaşık/kırılgan/geçersizdir.

(Ve Basitleştirilmiş Kutu Modeli Hack mucidi olarak, ben onlara doyurucu iyi ki kurtulduk.)

+0

Hahaha, bu temiz bir numara, her ne zaman yeni bir IE kesmek öğrendiğimde beynimin aynı zamanda acı içinde bilgi ve sözleşme ile genişlediğini hissediyorum. –

3

Maalesef *html kesmek diğer stil sayfalarını içe kullanılamaz. IE özgü böcek saldıran faydalı oldukları kesmek ve diğerlerini açıklayan

Here is an article.

+0

net cevap için teşekkür ederiz. Ne yazık ki bugün oy vermiyorum :) – temoto

12

Gereksinim duyduğunuz yorumları yalnızca ihtiyaç duyduğunuz CSS'yi içerecek şekilde kullanabildiğinizde neden bu kadar rahatsızlık duyuyorsunuz?

<!--[if IE 6]> 
    <link rel="stylesheet" type="text/css" href="ie-6.0.css" /> 
<![endif]--> 

Bazı kaynaklar:

Gerçekten @import kullanmanız gerekiyorsa, IE için spesifikasyonlar'ı takip etmez aslında yararlanabilirsiniz @import kuralı. Normalde ilk bir stil veya stil etiketinde düşünmek olmalı veya tamamen göz ardı ediyor. Ancak, IE6 (en azından ben test edildiğinde) umurumda değil. Sırası gelmişken, bunu yapabilirsiniz: I ve IE6 (o yani-style.css yüklenmemesi) FF3 ndan başka bir bu test etmedim

<style type="text/css"> 
.NotARealClass { } 

@import url("ie-style.css"); 
</style> 

Not (burada her durumda onu yükler). Yolculuğunuz değişebilir.

+0

Bunu biliyorum, teşekkürler. Niye ya? Çünkü CSS hacklerini CSS içinde tutmanın akıllıca ve güzel olacağını düşündüm. – temoto

+0

Tüm ie6 özel css'iniz ayrı bir dosyadaysa, bu yoldur. Eğer çok az ie6'ya özgü css'iniz varsa, alt çizgi-hack'i kullanabilirsiniz. _width, ie6 (ancak ie7 değil) tarafından genişlik olarak yorumlanır, ancak bu doğrulanmayacaktır .. – svinto

+0

Koşullu yorumlar, bir tarayıcının genişletilmiş özellik kümesinin avantajından yararlanarak bir hack değildir. Selector hack kesinlikle. –