Il comportamento di Mozilla nella modalità Quirks
Articolo originale: http://developer.mozilla.org/en/docs/Mozilla_Quirks_Mode_Behavior
Autori: David Baron, Boris Zbarsky
Traduzione: Gabriele Romanato (21 febbraio 2008)
Quello che segue è un approssimativo elenco delle differenze
esistenti tra la modalità standard di Mozilla e quella quirks. Questo elenco
arriva fino al giugno 2001 (con alcune aggiunte seguenti, ma non un elenco completo).
Da quel periodo i cambiamenti più significativi hanno riguardato l'eliminazione
di molti quirk dai controlli dei form. Un altro cambiamento significativo,
è che in modalità standard rifiutiamo i fogli di stile CSS con un tipo
MIME diverso da text/css.
Contenuti
1. Vari e di stile
- Si applicano tutte le regole di
layout/style/quirk.css. - In modalità quirks i nomi di classe CSS non sono sensibili al caso. In modalità standard lo sono.
- I fogli di stile collegati al documento con un tipo MIME
text/csssaranno trattati come CSS anche se il server restituisce un headerContent-Typediverso datext/css. - Il parser CSS accetta i colori che non iniziano con
#. - Il parser CSS interpreta i numeri senza unità come
px(tranne perfont-sizeperché lo faceva Netscape Navigator 4, e tranne perline-heighte ogni altra proprietà dove hanno un significato distinto). - I colori HTML vengono letti in modo diverso (
#non viene richiesto, e le cifre mancanti vengono completate in modo diverso) - Una stringa vuota per l'attributo
backgroundimposta l'URL come vuoto solo in modalità quirks. - I font di sistema funzionano in modo diverso (non dovrebbero funzionare in modo diverso anche i controlli dei form che li usano?).
- Le dimensioni dei font HTML (1-7) e CSS (
xx-small-xx-large) vengono calcolate in modo leggermente diverso (vedi il bug 18136). - I pallini degli elenchi non ereditano la dimensione del font dell'elenco.
- La pseudo-classe
:hoverviene applicata solo ai link, alle immagini e ai controlli dei form, a meno che il selettore non includa nomi, id, o attributi.
2. Layout di blocco e inline
- [Questo quirk è presente in modalità almost standards.] I calcoli dell'interlinea (non
line-height) sono diversi per risolvere i bug 5821 e bug 24186 (altri problemi vengono descritti nel bug 22274). - Ci sono molti quirk per far funzionare le altezze in percentuale di immagini, tabelle, oggetti e applets (come in Netscape Navigator 4), anche se i CSS affermano che le altezze in percentuale dovrebbero comportarsi come 'auto' se l'elemento genitore non ha un'altezza fissa. Si veda la descrizione del bug 33443#c9. Si veda anche il bug 41656 e i suoi duplicati. Alcuni di questi quirk possono causare altri effetti (si veda il bug 54119).
- L'elemento
HRè trattato in modo differente nella modalità standard e quirks (e forse sbagliato in entrambe).
3. Tabelle
- I colori di sfondo delle tabelle funzionano in modo diverso (si veda il bug 4510) Non è chiaro se questo quirk è necessario. [Questo quirk è stato rimosso]
absmiddle(gestito in modo scorretto?) emiddle(anche questo gestito in modo scorretto?) vengono accettati come valori dialignsulle celle di tabella, eabsmiddle,abscenter, emiddlesono supportati sulle tabelle (trattati comecenter).TD,TH,TR,THEAD,TBODY, eTFOOThanno lo sfondo (e il colore?) applicato su di essi (quando lo sfondo del documento viene specificato in alcuni modi?) (si veda anche il bug 70831 ).- La proprietà
empty-cellsdi default suhidein modalità quirks ma sushow(secondo l'errata corrige dei CSS2) in modalità standard (si veda il bug 33244) (sebbene la soluzione corretta sarebbe quella di specificarla sull'elementoTABLEinquirk.css). - Le tabelle flottate non si spostano mai sulla riga successiva se non hanno abbastanza spazio. Continuano semplicemente ad allargare la pagina (si veda il bug 43086).
colspan="0"erowspan="0"sono trattati di proposito in modo diverso da come descritto in HTML4.hspaceevspacesono supportati suTABLE.- Quando le tabelle hanno uno stile del bordo
insetooutset, il colore del bordo si basa sul colore dello sfondo della tabella o dell'antenato più prossimo con uno sfondo non trasparente. - Le celle di tabella con un bordo hanno una larghezza minima di un pixel.
- A partire da Gecko 1.8 (si veda il bug 277232):
Una larghezza fissa specificata su una cella di tabella resetta l'attributo
nowrap. Se l'attributonowrapè presente la larghezza della cella non sarà mai inferiore della larghezza specificata. - La strategia di layout delle tabelle ignora il padding.
- La strategia di layout delle tabelle gestisce le larghezze in modo differente.
4. Form
- I bottoni di input calcolano le loro dimensioni in modo diverso.
- In modalità standard un elemento
BUTTON(?) può eseguire l'invio solo quando manca dell'attributotype. - Gli input testuali (e altri controlli che contengono testo???) calcolano le loro dimensioni in modo diverso
- I font per gli elementi
INPUTeSELECTvengono calcolati in modo diverso. - Il requisito HTML secondo cui un solo bottone in un gruppo radio viene sempre selezionato (di default) non viene rispettato.
5. Frame
marginwidthemarginheightsu unFRAMEvengono propagati aBODY.- Nella dimensione di un frame,
0*viene trattato come1*(si veda il bug 40383). - L'attributo
scrollingsu unFRAMEviene gestito in modo diverso.
6. Parser HTML
- I commenti HTML vengono letti
in un modo campatibile con i vecchi browser, invece di trattare
"
--" come delimitatori iniziali e terminali del commento.
6.1 Informazioni sul documento originale
- Autori: David Baron, Boris Zbarsky
- Data dell'ultimo aggiornamento: 8 luglio 2003