2015-04-01 5 views
6

In che modo la progettazione viene ingrandita o ridotta? Sto cercando di capire cosa succede esattamente a livello CSS e quali sono le conseguenze per i diversi metodi di dimensionamento (px, em, rem, ecc.).Che cosa cambia esattamente nel rendering css, quando i browser desktop ingrandiscono o rimpiccioliscono su un sito web?


A proposito, sono principalmente interessato al comportamento dello zoom per i moderni browser desktop. (Sospetto che il browser mobile sia un ingrandimento lineare dell'intera pagina dopo averlo eseguito normalmente, e sappia che i browser vecchio stile incrementano solo la dimensione del font di base). Ciò che non è chiaro tuttavia, è ciò che i browser moderni (ad esempio le ultime versioni di Chrome o FF) fanno esattamente quando l'utente preme Ctrl + o Ctrl -.

Anche loro rendono semplicemente la pagina normalmente (cioè al 100%) e quindi semplicemente ingrandiscono l'immagine renderizzata? Perché FF sembra ancora rispettare le larghezze%, ad esempio, quindi non sembra un ingrandimento diretto.

+0

Il CSS non cambia. È abbastanza semplice mettersi alla prova usando i tuoi strumenti di sviluppo preferiti per i browser: scegli un elemento, controlla il suo CSS, ingrandisci la pagina! – gvee

+0

"Cambia la dimensione del carattere di base (o sono solo vecchi browser che lo fanno)?" Solo vecchi browser. – BoltClock

+1

@gvee: Il codice sorgente CSS non cambia, ma cosa succede ai calcoli di stile? Nota che gli strumenti per gli sviluppatori di browser possono mentire su determinati valori. – BoltClock

risposta

7

Lo zoom come implementato nei browser moderni non consiste nient'altro che "allungare" i pixel. Cioè, la larghezza dell'elemento non è cambiata da 128 a 256 pixel; invece i pixel effettivi sono raddoppiati. Formalmente, l'elemento ha ancora una larghezza di 128 pixel CSS, anche se capita di prendere lo spazio di 256 pixel del dispositivo.

In altre parole, lo zoom al 200% aumenta di un pixel CSS fino a quattro volte la dimensione dei pixel di un dispositivo. (Due volte la larghezza, due volte l'altezza, produce quattro volte in totale).

Per una spiegazione dettagliata si poteva leggere la pagina seguente: Concept of device pixels and CSS pixels

0

Se si fa riferimento a ciò che accade all'interno del browser quando si esegue lo zoom, dipende dal browser utilizzato e dal dispositivo. Credo che il tipo di unità di misura che usi nel tuo CSS possa essere anche un fattore (%, em e px). In genere, ad esempio, il CSS applicato ai font, viene sottoposto a rendering di nuovo quando si esegue lo zoom. Lo stesso con i valori delle proprietà di sfondo. Ma in molti browser questo re-rendering avviene così velocemente che non dovresti nemmeno notarlo, a meno che non ci sia un problema di prestazioni che sta rallentando il browser (che potrebbe essere legato al codice o al sistema).

+0

Quindi, ma più precisamente, cosa succede esattamente? Ad esempio, tutte le dimensioni di 'px' sono incrementate di' 10px'? O è solo uno zoom grafico dritto? – vkjb38sjhbv98h4jgvx98hah3fef

+0

Non posso essere sicuro al 100%, ma non credo che questo cambiamento sia incrementale di una certa dimensione di pixel poiché non tutte le dichiarazioni CSS usano unità di misura pixel. Penso che sia sicuro dire che il cambiamento è probabilmente basato sulla percentuale e la misura esatta del cambiamento sarebbe determinata dalla percentuale di zoom. Sebbene la dichiarazione CSS all'interno del DOM non cambi mai effettivamente. Tutto questo è fatto dal browser. Quindi, tecnicamente, il CSS non cambia per impostazione predefinita a meno che non si stiano utilizzando query multimediali o altri mezzi per mirare a finestre o dispositivi specifici e per regolare le misure in questo modo. –

Problemi correlati