Ho notato questo codice CSS in un progetto:
html, body { :)width: 640px;}
Sono in giro con CSS da molto tempo ormai ma non ho mai visto questo codice ":)" prima. Significa qualcosa o è solo un refuso?
Ho notato questo codice CSS in un progetto:
html, body { :)width: 640px;}
Sono in giro con CSS da molto tempo ormai ma non ho mai visto questo codice ":)" prima. Significa qualcosa o è solo un refuso?
Risposte:
Da un articolo su javascriptkit.com , applicato per IE 7 e versioni precedenti:
se aggiungi un carattere non alfanumerico come un asterisco (
*
) immediatamente prima del nome di una proprietà, la proprietà verrà applicata in IE e non in altri browser.
Inoltre c'è un trucco per <= IE 8 :
div {
color: blue; /* All browsers */
color: purple\9; /* IE8 and earlier */
*color: pink; /* IE7 and earlier */
}
Tuttavia non è una buona idea, non convalidano. Ti senti sempre libero di lavorare con i commenti condizionali per il targeting di versioni specifiche di 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]-->
Ma per quelli che vogliono vedere l'hacking in realtà, per favore apri questa pagina nell'ultima versione di IE che hai. Quindi vai alla modalità sviluppatore facendo un F12. Nella sezione Emulazione ( ctrl+ 8) cambia la modalità documento in 7
e vedi cosa succede.
La proprietà utilizzata nella pagina è :)font-size: 50px;
.
:
significa qualcos'altro? Altrimenti, non posso mettere *********************font-size: "150%";
, ecc.?
Sembra un hack CSS per colpire IE7 e i browser precedenti. Mentre questo è CSS non valido e i browser dovrebbero ignorarlo, IE7 e precedenti analizzeranno e rispetteranno questa regola. Ecco un esempio di questo hack in azione:
CSS
body {
background: url(background.png);
:)background: url(why-you-little.png);
}
IE8 (ignora la regola)
IE7 (applica la regola)
Nota che non deve essere una faccina sorridente; Menzioni BrowserHacks :
Qualsiasi combinazione di questi caratteri: [prima che il nome della proprietà funzionerà] Internet Explorer ≤ 7
! $ & * ( ) = % + @ , . / ` [ ] # ~ ? : < > |