CSS'de gülen yüz “:)” ne anlama geliyor?


321

Bu CSS kodunu bir projede gördüm:

html, body { :)width: 640px;}

Ben uzun zamandır CSS ile olmuştur ama daha önce bu ":)" kodunu hiç görmedim. Bir şey ifade ediyor mu yoksa sadece bir yazım hatası mı?


17
Bana bir yazım hatası gibi görünüyor. Geliştirici eğlenceli olmaya çalışıyor, ya da belki kodun arayacağı alanları işaretlemesi için bir yol?
Lee

2
@stijn hala bazı satıcıya özel kod olabilir ...
Mark

22
@ series0ne Ben bunu hiç Internet Explorer yıldız işareti kesmek görmedim.
Nit

11
Bu gerçekten bir tarayıcı hack ise, CSS dosyasına bunu açıklayan bir yorum eklemek isteyeceksiniz.
user247702

32
Benim tahminim: Kod yazarı :) odak IM istemcisi olduğunu düşünüyorum. Anlık ileti istemcisini tıklayıp oradan ilerlediklerinde, imlecinin oturduğu son yere bir CSS dosyası olan bir surat yazdıklarını fark etmediler.
Nathan

Yanıtlar:


279

IE 7 ve önceki sürümleri için uygulanan javascriptkit.com'daki bir makaleden :

*özellik adından hemen önce yıldız işareti ( ) gibi alfasayısal olmayan bir karakter eklerseniz , özellik IE'de uygulanır ve diğer tarayıcılarda uygulanmaz.

Ayrıca <= IE 8 için bir kesmek var :

div {
  color: blue;      /* All browsers */
  color: purple\9;  /* IE8 and earlier */
 *color: pink;      /* IE7 and earlier */
}

Ancak bu iyi bir fikir değil, doğrulamıyorlar. Hep birlikte çalışması çekinmeyin Şartlı yorumların belirli sürümlerini hedeflemek için IE :

<!--[if lte IE 8]><link rel="stylesheet" href="ie-8.css"><![endif]-->
<!--[if lte IE 7]><link rel="stylesheet" href="ie-7.css"><![endif]-->
<!--[if lte IE 6]><link rel="stylesheet" href="ie-6.css"><![endif]-->

Ancak hack'i gerçekte görmek isteyenler için lütfen bu sayfayı sahip olduğunuz IE'nin son sürümünde açın . Ardından, bir geliştirici moduna geçin F12. Öykünme bölümünde ( ctrl+ 8) belge modunu değiştirin 7ve ne olduğunu görün.

resim açıklamasını buraya girin

Sayfada kullanılan özellik :)font-size: 50px;.


2
Seçiciden önce "_" ve "*" hakkında bilgi sahibiydim, ama bunu söylemedin.
valerio0999

2
@vlrprbttst Bunlar kolaylık sağlamak için kullanılan geleneksel karakterlerdir. Ancak, alfasayısal olmayan tüm değerleri sonuçlandırır.
revo

1
Salman-a da doğru ama biraz daha yavaş olsa da bu cevabı doğru olarak işaretliyorum. Ben bu hack farkındaydı ama her zaman bir "*" kullanılır. Bu sayfayı yapan kişi şakacı;).
Mark

1
Burada bir şeyi özleyecek kadar aptal olabilirim, ama neden 2 karakter kullanarak yapabilir? "Bir veya daha fazla ekleyin ..." değil "alfasayısal olmayan bir ekle" yazıyor. Yoksa :başka bir şey mi demek? Aksi takdirde, koyamıyorum *********************font-size: "150%";vb.?
Max

1
Sadece bu cevaba ekstra bir parça atmak. Cevap büyük ve doğrudur, ancak bunun en iyi uygulama olmadığı gerçeğini kaçırmaktadır. Genel bir kural olarak, kullanıcı tabanınızın kullandığı tüm tarayıcılarda en iyi deneyimi sunmak için elinizden geleni yapmalısınız. Bence, onları yapan şirketin artık desteklemediği tarayıcıları desteklememelisiniz.
AlienDev

171

IE7 ve önceki tarayıcıları hedefleyen bir CSS kesmek gibi görünüyor. Bu ise bir geçersiz CSS ve tarayıcıları, IE7 yoksaymalısınız ve önceki ayrıştırmak ve bu kural onur. İşte bu hack eyleminin bir örneği:

CSS

body {
    background: url(background.png);
    :)background: url(why-you-little.png);
}

IE8 (kuralı yoksayar)

Örnek 1 - IE8

IE7 (kuralı uygular)

Örnek 1 - IE7

Gülen bir yüz olması gerekmediğini unutmayın; BrowserHacks şunlardan bahseder:

Bu karakterlerin herhangi bir kombinasyonu: [özellik adının üzerinde çalışmasından önce] Internet Explorer ≤ 7
! $ & * ( ) = % + @ , . / ` [ ] # ~ ? : < > |


GAH hot dog stand örneği burada .


62
GAH Hot dog stand flashback
MikeTheLiar

Evet, IE8 ve yukarıdan gelen IE kendini CSS uyumlu olarak görür ve tüm IE'ye özgü css düzeltmelerini kırarak bitirir. (bu nedenle javascript çözümlerine başvurmamız gerekiyor)
Flip Vernooij

39
Tüm siteler, tüm <IE10 kullanıcıları için bir hot dog stand teması kullanmalıdır. +1
Pete TNT

6
@ikkuh Adil olmak gerekirse, IE11 oldukça iyi ve uyumlu bir tarayıcıdır. IE koşullu yorumları için destek bırakmalarının bir nedeni var.
ajp15243

2
@ apj15243 Evet uzun bir yol kat ettiler ve devam etmeyi umuyorlar, gerçek şu ki bunun için koşullu desteğe ihtiyacım var ve bu sadece IE11 değil, aynı zamanda 10,9 ve 8 de. IE11'i ticari nedenler dışında XP'de çalıştırmamak için bir neden yoktur. Ama bu farklı bir tartışma.
Flip Vernooij
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.