2010-05-06 20 views
9

Ogni volta che trovo che IE sta visualizzando il mio sito web strano (diverso da chrome e firefox), provo a inserire un zoom:1 nella classe css per la parte che viene mostrata strana. Molto spesso questo risolve il problema e lo rende coerente con gli altri browser.Va bene usare lo zoom: 1 nelle mie classi css?

È un problema utilizzare zoom:1? So che il mio CSS non verrà convalidato, ma ci sono dei problemi reali che possono sorgere se mi affido troppo all'utilizzo di zoom:1?

risposta

17

Il problema con cui stai combattendo è il problema IE hasLayout. Here è un buon articolo e panoramica su quali proprietà attivano anche "avere il layout" in IE.

Non so effetti collaterali a zoom: 1 eccetto che non è valido W3C. Sono sicuro che lo sto usando io stesso in alcuni progetti.

Tuttavia, vi è ovviamente la possibilità remota che zoom diventi una vera proprietà CSS un giorno - o venga utilizzata in un altro contesto proprietario come nell'iPad o in qualsiasi altro modo - il che potrebbe portare a rotture.

A veramente pulito soluzione, lo zoom non è. Se possibile, è una buona idea dare l'elemento "Layout" in qualche altro modo come indicato nell'articolo.

+3

è possibile attenuare eventuali aspetti negativi usando i commenti condizionali per servire solo la regola 'zoom' a IE-7-o-inferiore. (Il motore di layout di IE8 funziona in modo diverso e tende a non presentare lo stesso tipo di problemi.) – bobince

0

lo zoom è supportato solo da IE, quindi non al momento. Potenzialmente potrebbe esserci una proprietà futura chiamata zoom che potrebbe rovinare le cose, ma questo è improbabile a causa dell'uso diffuso.

+1

Lo zoom è ora supportato anche da Chrome e Safari, secondo questo sito: http://css-tricks.com/almanac/properties/z/zoom / – thenickdude

0

display: inline-block; fa la stessa cosa, ma è un codice standard.

Nel caso rara si crea un problema, è possibile utilizzare

display: block !important; /* or inline, etc. */ 
display: inline-block; /* in this order */ 

di inviare solo le antiche versioni di Internet Explorer per i quali è utile.

1

Al contrario, esistono degli svantaggi definitivi nell'utilizzo dello zoom: 1, anche in IE. Solitamente, lo includo solo in fogli di stile solo IE, ma anche nei giorni scorsi ho affrontato alcuni problemi di layout perché ho scelto di utilizzare * {zoom: 1;}

- il take-away - utilizzare su una base limitata. Se ti interessa solo IE7 +, puoi usare min-height: 1%, che ha lo stesso effetto di trigger hasLayout

Problemi correlati