Co oznacza uśmiechnięta twarz „:)” w CSS?


321

Zauważyłem ten kod CSS w projekcie:

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

Pracuję z CSS już od dłuższego czasu, ale nigdy wcześniej nie widziałem tego kodu „:)”. Czy to coś znaczy, czy to tylko literówka?


17
Dla mnie wygląda na literówkę. Deweloper próbuje się zabawić, a może sposób na oznaczenie obszarów kodu, których będzie szukał?
Lee,

2
@stijn nadal może być jakimś dziwnym kodem specyficznym dla dostawcy ...
Mark

22
@ series0ne Rozumiem, że nigdy nie widziałeś włamania do gwiazdki w Internet Explorerze.
Nit

11
Jeśli to rzeczywiście włamanie do przeglądarki, możesz dodać komentarz w pliku CSS wyjaśniający to.
user247702,

32
Zgaduję: autor kodu napisał :) myśląc, że skupiono się na kliencie IM. Kiedy tak się nie stało, kliknęli na klienta czatu i zaczęli odtąd, nie zdając sobie sprawy, że w ostatnim miejscu, w którym siedział kursor, czyli w pliku CSS, wpisali buźkę.
Nathan

Odpowiedzi:


279

Z artykułu na javascriptkit.com , który dotyczy IE 7 i wcześniejszych wersji:

jeśli dodasz znak niealfanumeryczny, taki jak gwiazdka ( *) bezpośrednio przed nazwą właściwości, właściwość zostanie zastosowana w IE, a nie w innych przeglądarkach.

Jest też hack dla <= IE 8 :

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

Jednak nie jest to dobry pomysł, nie sprawdzają poprawności. Zawsze możesz pracować z komentarzami warunkowymi do kierowania na określone wersje 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]-->

Ale dla tych, którzy chcą zobaczyć hack w rzeczywistości, otwórz tę stronę w najnowszej wersji IE. Następnie przejdź do trybu programisty, wykonując F12. W sekcji Emulacja ( ctrl+ 8) zmień tryb dokumentu na 7i zobacz, co się stanie.

wprowadź opis zdjęcia tutaj

Właściwość użyta na stronie to :)font-size: 50px;.


2
przed selektorem wiedziałem o „_” i „*”, ale nie o tym, co powiedziałeś.
valerio0999

2
@vlrprbttst Są to konwencjonalne znaki używane dla ułatwienia. Jednak zawiera wszystkie wartości niealfanumeryczne.
revo

1
Zaznaczam tę odpowiedź jako poprawną, chociaż Salman-a również był poprawny, ale nieco wolniejszy. Byłem świadomy tego hacka, ale zawsze użyłem „*”. Ten, który zrobił tę stronę, jest żartem;).
Mark

1
Mogę być na tyle głupi, żeby coś tutaj przegapić, ale dlaczego może to zrobić, używając 2 postaci? Mówi „dodaj nie alfanumeryczny”, a nie „dodaj jeden lub więcej ...”. Czy oznacza :to coś jeszcze? W przeciwnym razie nie mogę umieścić *********************font-size: "150%";itp.?
Maks.

1
Wystarczy rzucić dodatkową część na tę odpowiedź. Odpowiedź jest świetna i poprawna, ale brakuje w tym faktu, że nie jest to najlepsza praktyka. Zasadniczo powinieneś zrobić wszystko, aby zapewnić najlepszą jakość we wszystkich przeglądarkach, z których korzysta twoja baza użytkowników. Nie wspominając, moim zdaniem, nie powinieneś obsługiwać przeglądarek, których firma, która je stworzyła, już nie obsługuje.
AlienDev

171

Wygląda jak włamanie CSS do przeglądarki IE7 i wcześniejszych przeglądarek. Chociaż jest to nieprawidłowy CSS i przeglądarki powinny go zignorować, IE7 i wcześniejsze będą analizować i honorować tę regułę. Oto przykład tego hacka w akcji:

CSS

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

IE8 (ignoruje regułę)

Przykład 1 - IE8

IE7 (stosuje regułę)

Przykład 1 - IE7

Pamiętaj, że nie musi to być buźka; BrowserHacks wspomina:

Dowolna kombinacja tych znaków: [zanim nazwa właściwości zadziała] Internet Explorer ≤ 7
! $ & * ( ) = % + @ , . / ` [ ] # ~ ? : < > |


Przykład stoiska z hot dogami GAH jest tutaj .


62
GAH Hot dog standback retrospekcja
MikeTheLiar

Tak, od IE8 i wyższych IE uważa się za zgodny z CSS i krok po kroku łamie wszystkie swoje specyficzne dla IE poprawki css. (dlatego musimy skorzystać z rozwiązań javascript)
Flip Vernooij

39
Wszystkie strony powinny używać motywu hot doga dla wszystkich użytkowników <IE10. +1
Pete TNT

6
@ikkuh Aby być uczciwym, IE11 jest dość przyzwoitą i zgodną przeglądarką. Istnieje powód, dla którego porzucili obsługę komentarzy warunkowych IE.
ajp15243,

2
@ apj15243 Tak, przeszli długą drogę i mają nadzieję, że będą kontynuować, prawda jest taka, że ​​nadal potrzebuję wsparcia warunkowego, a to nie tylko IE11, ale także 10,9 i 8. Więc życzmy automatycznego aktualizacji, nie ma powodu, aby nie uruchamiać IE11 na XP poza przyczynami komercyjnymi. Ale to inna dyskusja.
Flip Vernooij,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.