Tujuan tanda bintang sebelum properti CSS

101

Berikut ini diambil dari pengaturan ulang Yahoo CSS. Bisakah seseorang menjelaskan tujuan tanda bintang?

body {
  font:13px/1.231 arial,helvetica,clean,sans-serif;
  *font-size:small;
  *font:x-small;
}
Jeremy
sumber

Jawaban:

117

Ini adalah peretasan CSS khusus browser untuk versi 7 atau lebih rendah dari Internet Explorer.

*nilai properti

Meskipun Internet Explorer 7 mengoreksi perilakunya ketika nama properti diawali dengan garis bawah atau tanda hubung, awalan karakter non-alfanumerik lainnya diperlakukan seperti di IE6. Oleh karena itu, jika Anda menambahkan karakter non-alfanumerik seperti tanda bintang (*) tepat sebelum nama properti, properti tersebut akan diterapkan di IE dan bukan di browser lain. Berbeda dengan metode tanda hubung dan garis bawah, spesifikasi CSS tidak membuat reservasi untuk tanda bintang sebagai awalan, jadi penggunaan peretasan ini dapat mengakibatkan perilaku yang tidak terduga saat spesifikasi CSS berkembang.

* properti: nilai menerapkan nilai properti di IE 7 dan di bawahnya. Ini mungkin atau mungkin tidak berfungsi di versi masa depan. Peringatan: ini menggunakan CSS yang tidak valid.

Dari: http://www.javascriptkit.com/dhtmltutors/csshacks3.shtml

Waleed Amjad
sumber
5

Ini adalah retasan Internet Explorer. Jika Anda menambahkan karakter non-alfanumerik seperti asterisk (*) tepat sebelum nama properti, properti tersebut akan diterapkan di IE7 dan di bawahnya, tetapi tidak di browser lain.

http://www.javascriptkit.com/dhtmltutors/csshacks3.shtml

Robert Harvey
sumber
1

Semua browser kecuali IE mengabaikan aturan tersebut. Ini dikenal sebagai peretasan bintang. Saya pikir IE7 akan mengabaikan aturan dalam mode standar.

Dalam kasus ini, aturan font ditetapkan dan kemudian diganti untuk IE 6 dan terkadang 7.

Frank DeRosa
sumber
Ini bukan hack star-html. Yang itu masuk ke pemilih dan merupakan CSS yang valid.
sejak
@bobince Star Hack dan Star HTML Hack adalah dua hal yang berbeda: en.wikipedia.org/wiki/CSS_filter#Star_hack vs en.wikipedia.org/wiki/CSS_filter#Star_HTML_hack
Mike Covington
0

Sejauh yang saya tahu, tanda bintang mencegah Firefox untuk membaca atribut tersebut, tetapi valid di IE.

Vladimir Kocjancic
sumber
0

Ini adalah retasan CSS, aturan itu hanya akan diterapkan ke IE7 dan di bawahnya.

Saya tidak akan merekomendasikan menggunakannya, ada cara yang lebih baik untuk memperbaiki ketidakcocokan IE.

Psilokan
sumber
0

Menempatkan karakter seperti itu adalah jalan pintas / solusi untuk membuat IE 6 menggunakan properti gaya, sambil menyembunyikannya dari browser yang lebih "waras".

Dari sini :

Singkatnya, pengurai CSS Internet Explorer terlalu agresif dalam mencoba menemukan nama properti dan pada kenyataannya akan mengabaikan karakter non-alfanumerik utama. Dari pengujian saya, ini tampaknya menjadi kasus setidaknya dari IE5 dan seterusnya.

JasonWyatt
sumber