26
10
06

Internet Explorer 7 in the wild

23:06 Technocracy

Internet Explorer 7 ha finalmente migliorato il supporto agli standard! Hurrah! …non troppo. Due giorni dopo il rilascio ho già ricevuto la segnalazione che un sito che avevo fatto ha un problema sotto IE7.

Una buona parte dei webdesigner punterà il dito: “Hai usato hacks CSS!”. Vero… quasi.

L’unico hack che ho sempre utilizzato era lo “star hack”, ovvero quell’errore di parsing di Internet Explorer che credeva che il tag fosse figlio di qualcuno. Da qui: * html selettore. IE7 ovviamente non lo legge più… ma non essendo egualmente standard, il sito non si vede correttamente.

Checché ne dicessero i predicatori del “non usate hack”, lo star hack è sempre stata la soluzione “perfetta”: letto solo da IE, ma comunque aderente agli standard CSS, equivaleva a dire “se sei IE, allora aggiungi questa regola”. Così, con un foglio di stile perfettamente standard e alcune istruzioni per IE, si otteneva un risultato eccellente.

Se IE7 fosse perfettamente aderente agli standard, o quantomeno come tutti gli altri browser (Firefox, Opera, Safari, …) l’eliminazione dello star hack è evidente che non avrebbe comportato la minima modifica ai CSS.

A chi interessasse, l’istruzione condizionale per IE che “servirebbe” ancora nel CSS che non funziona più sotto IE7 è questa:

#header { position: absolute; }
* html #header { margin-left: -255px; }
/* [IEfix] “absolute” has a different position in IE */

Come ho già avuto modo di trovare in rete (articolo), basta aggiungere una riga solo per IE7:

*:first-child+html #header { margin-left: -255px; }
/* [IE7fix] still buggy *sic* */

Esatto: così come “* html selettore” funziona per tutti gli IE inferiori al 7, il selettore “*:first-child+html selettore” funziona solo per IE7. Ed è CSS standard.

Mi spiace, IE7, non sei ancora all’altezza. Ma, come ormai accade, andrai avanti con i debiti, come è sempre successo.

16 comments Add yours below

1

Simbul 2006 10 26 at 23:33

Che barba, un altro set nuovo nuovo di scostamenti dagli standard con cui dovremo fare i conti... -_-
2

Khorne 2006 10 27 at 07:25

Adoro questo tipo di post.
Non capisco assolutamente nulla, ma son belli da leggere così come può esser bella una canzone in giapponese, per il semplice suono delle parole :D
3

zappeo 2006 10 27 at 10:25

O_O

foll mi insegnò lo star hack, salvandomi la vita. ora questo. foll, ti sposerò. ma prima eredito da khorne.
ti giuro che mentre leggevo le prime 5 righe del post avevo aperto il blocco note per scrivere la mia lettera di dimissioni.

-frase ironica-
ora mi toccherà modificare un macello di cose .. grazie, IE7!

-frase sentita-
ti amo, foll! :D
4

Digital Meadows » Blog Archive » Certe cose (non) cambiano 2006 10 29 at 14:10

[...] La cosa “divertente” è che non solo IE7 interpreta a modo suo gli standard W3C (come del resto Microsoft ha sempre fatto), ma li interpreta in modo diverso rispetto alle precedenti versioni di IE. Il mitico star-hack, vero e proprio salvavita per chi sviluppa siti web, ora non funziona più. Fortunatamente, come segnala Foll, è già stato scoperto un hack equivalente. * html #header { margin-left: -255px; } /* Star Hack classico per IE */ [...]
5

Fusionman 2006 10 31 at 15:15

Meadown...quello per ie7 è *:first-child+html #header { margin-left: -255px; }

Cmq hanno rotto davvero loro e sti browser tutti diversi. Non se ne può più!
6

wiz 2006 10 31 at 15:47

Boh, secondo me fanno apposta.

Microsoft (al megafono): SICUREZZA! ADERENZA AGLI STANDARD! ERGONOMIA!

Massa di utenti (con occhi sgranati e ammirati): Woooooowww!

Massa di sviluppatori web (disperati): Nnnnnnoooooooo!!

Microsoft (sottovoce): li abbiamo fregati anche questa volta: l'illusione di un aggiornamento rivoluzionario, ma in realtà le differenze ancora presenti costringeranno gli sviluppatori ad impazzire come sempre. I più deboli si arrenderanno e si voteranno alla nostra causa, perché l'utenza è già dalla nostra parte. Chi usa IE6 sarà costretto ad aggiornare per i siti che inizieranno ad essere fatti per IE7, chi non ha il PC abbastanza potente per aggiornare può anche usare Firefox e eat flaming death come è giusto che sia per chi si oppone a noi. Gli standard li detta il più forte. Gli standard li dettiamo noi. Darth Gates ha parlato.
7

Folletto Malefico 2006 10 31 at 16:24

@Fusionman: quello è un trackback... in effetti ho come la sensazione che dovrei distinguerli dai commenti normali. Appena trovo due minuti... :D

@Wiz: hai solo dimenticato "khwwwww-shhhhh khwwww-shhhhhh" :D
8

Paolo Dodet 2006 11 03 at 12:23

Caro Foletto,

Mi chiamo Paolo e faccio siti in Brasile. Ho letto il tuo intervento nel blog di Zeldman sui "conditional comments".
Mi dispiace dirti che non è come dici visto che i "conditional comments" possono essere aggiunti al markup esattamente come un qualsiasi css esterno, e cioè usando il tag <link />.

Un abbraccio dl Brasile

Paolo
9

Folletto Malefico 2006 11 04 at 20:17

Vero, ma io non stavo questionando sul fatto che possono essere aggiunti come qualunque CSS esterno, quello non era un punto della critica: so come si usano, altrimenti non potrei criticarli.

Il problema è proprio che devo:
1. usarli nell'XHTML invece che nel CSS (posizione sbagliata)
2. usarli per creare un altro file (+1 file da mantenere)
3. usarli per creare un altro file che quindi mi separa la correzione dal punto in cui la correzione avviene (ostacola la manutenzione)
4. sono non-sematici
5. sono controlli sul browser e non sulle funzionalità del browser

In tale ottica, è evidente che star-hack e analoghi sono egualmente non-semantici e sono controlli sul browser e non sulle funzionalità, ma almeno sono localizzati, precisi e senza richiedere una ulteriore riga nell'XHTML, senza richiedere un ulteriore file, senza separare la correzione dal problema da risolvere.
10

Roberto 2006 11 04 at 21:56

Ciao a tutti.
Sono perfettamente d'accordo che IE non rispetta molto gli standard W3C ma non andategli sempre addosso perchè anche IE ha i suoi pregi che altri browser non hanno.

E tanto per cronaca a quando pare molte persone che usano FIREFOX 2.0 riscontrano problemi (pc che si impianta, chiusura del programma ma processore che continua a lavorare ecc. ecc. e non dite che c'entra WINDOWS perchè pure con altri S.O. si riscontrano questi problemi.) Se trovo l'articolo vi posto il link....purtroppo l'ho letta ieri e ho cancellato la cronologia.
11

Folletto Malefico 2006 11 05 at 14:19

A parte che potrei dirti "pregi? ovvero?", il discorso qui è sugli standard e nient'altro. Sono passati ANNI, non pochi mesi. C'era tutto il tempo di fare un browser che finalmente non avrebbe costretto le persone a dover scrivere codice ad-hoc solo per Explorer. Ma così è. Punto.
E questo non è grave, è gravissimo. Lo è anche perché Microsoft ha dichiarato: "controllate che i vostri siti siano compatibili con IE", che è pura follia. E' IE che deve aderire agli standard, NON il contrario!

Il tanto per la cronaca, è del tutto fuori luogo qui e non vedo quale tesi avvalori. Nessun software è perfetto, tantomeno Firefox. Vogliamo elencare crash, bug, consumi di memoria e vulnerabilità di IE? Potremmo, ma come ho detto, non è ciò di cui si sta parlando qui. :)
Tra l'altro, perché invece di elencare i pregi di IE hai tirato fuori un singolo problema che ha Firefox? E bada bene, un problema esistente su Firefox 2: Firefox 1 era egualmente compatibile, nessuno costringe nessuno ad upgradare, da un punto di vista strettamente tecnico.

Poi, se per te trovarmi il lavoro complicato grazie alla negligenza di Microsoft è un "dare sempre addosso a IE", è evidente che non ti è chiara la portata del problema. In nessuna delle dimensioni.
12

carmine 2006 11 16 at 00:52

ho scaricato IE7 e da quel momento non riesco piu' ad interagire con i siti sensibili dove vengono richieste password, quali banca, poste, libero ecc. Come faccio a ripristinare l'operativa' su questi siti?. Grazie Carmine
13

Folletto Malefico 2006 11 16 at 01:01

Guarda, non saprei dirti, mi spiace. Il mio unico consiglio è: usa Firefox. :)
14

Sean Carlos 2007 04 02 at 15:51

Credo che l'approccio più sano è di sviluppare per Firefox o Opera, inserendo poi tutti gli accorgimenti per rimediare i difetti di IE 6 e 7 utilizzano i commenti condizionali noti solo ad Internet Explorer:

http://msdn.microsoft.com/workshop/author/dhtml/overview/ccomment_ovw.asp

E' anche un buon modo per presentare contenuto mirato ai utenti di browser obsolete di aggiornare il loro browser a Firefox, Opera o simile!

Ho implementato una cosa così:

<!--[if IE]>
<div id="SideFF">
<p><strong>Aggiorna il vostro browser!</strong></p>
<script type="text/javascript" src="/j/ffg1.js"></script>
</div>
<![endif]-->

(se non reso bene, è anche nel sorgente di questa pagina sui problemi flash).
15

Folletto Malefico 2007 04 02 at 19:03

Credo che qualunque professionista serio sul web lavori prima su Firefox e poi su IE. E' un dato di fatto la superiorità di Firefox nel supporto degli standard.

Non sono però d'accordo, come accennavo sopra, all'uso dei commenti proprietari di Microsoft:
Il problema è proprio che devo:
1. usarli nell'XHTML invece che nel CSS (posizione sbagliata)
2. usarli per creare un altro file (+1 file da mantenere)
3. usarli per creare un altro file che quindi mi separa la correzione dal punto in cui la correzione avviene (ostacola la manutenzione)
4. sono non-sematici
5. sono controlli sul browser e non sulle funzionalità del browser


Né trovo corretto cmq a discriminare gli utenti per un errore dei produttori. D'accordo invitare ad aggiornare, ma a tutto c'è un limite. :)
16

wastZzz 2007 04 23 at 14:57

Un altro problema di interpretazione di IE si spiega meglio con un esempio.

pagina1:
contiene una funzione javascript pippo()

pagina2:
stampa pagina1 tramite una richiesta xmlhttp
esegue pippo() //non va!!

in firefox tale problema non sussiste

Leave your Comment

required

required, hidden, never shared

Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post ~ Subscribe to the comments via RSS Feed