Regola @media CSS
- pagina precedente max-width
- pagina successiva min-block-size
Definizione e uso
La regola @media nelle query di media viene utilizzata per applicare stili diversi per diversi tipi di media/dispositivi.
Le query di media possono essere utilizzate per controllare molte cose, tra cui:
- Larghezza e altezza della viewport
- Larghezza e altezza dell'hardware
- Orientamento (lo schermo del telefono o del tablet è in modalità orizzontale o verticale?)
- Risoluzione
L'uso delle query di media è una tecnica popolare per fornire tabelle di stili personalizzati per desktop, laptop, tablet e smartphone (progettazione web responsive).
È possibile utilizzare le query di media per definire stili che si applicano solo ai documenti stampabili o ai lettori di schermo (mediatype: print, screen o speech).
Oltre al tipo di media, ci sono anche le caratteristiche dei media. Le caratteristiche dei media forniscono dettagli più specifici per le query di media, permettendo di testare le caratteristiche specifiche degli user agent o dei dispositivi di visualizzazione. Ad esempio, puoi applicare lo stile solo agli schermi con una larghezza maggiore o minore di una determinata misura.
Vedi anche:
Tutorial CSS:Query Media CSS
Tutorial CSS:Esempio di query di media CSS
Tutorial RWD:Realizzare un design web responsivo attraverso le query di media
Manuale JavaScript:Metodo window.matchMedia()
Esempio
Esempio 1
Se la larghezza della finestra del browser è di 600px o meno, cambia il colore di sfondo dell'elemento <body> in "blu chiaro":
@media only screen and (max-width: 600px) { body { background-color: lightblue; } }
Puoi trovare più esempi TIY nella parte inferiore della pagina.
Sintassi CSS
@media not|only mediatype and (mediafeature and|or|not mediafeature) { CSS-Code; }
Significato di not, only e and:
not: La parola chiave not invertisce il significato dell'intera query di media.
only: La parola chiave only impedisce agli browser obsoleti di applicare lo stile specificato, che non supportano le query di media con caratteristiche di media. Non ha alcun impatto sugli browser moderni.
and: La parola chiave and combina le caratteristiche dei media con il tipo di media o altre caratteristiche dei media.
Sono opzionali. Tuttavia, se si utilizza not o only, è necessario specificare anche il tipo di media.
Puoi anche utilizzare diversi fogli di stile per diversi media, come questo:
<link rel="stylesheet" media="screen and (min-width: 900px)" href="widescreen.css"> <link rel="stylesheet" media="screen and (max-width: 600px)" href="smallscreen.css"> ....
Tipo di media
Valore | Descrizione |
---|---|
all | Predefinito. Utilizzato per tutti i tipi di dispositivi di media. |
Utilizzato per stampanti. | |
screen | Utilizzato per schermi dei computer, tablet, smartphone e altro. |
speech | Utilizzato per lettori di schermo per leggere le pagine web. |
Caratteristiche dei media
Valore | Descrizione |
---|---|
any-hover |
Esiste qualsiasi meccanismo di input disponibile che permetta agli utenti (come il mouse) di hover su un elemento? Aggiunto nel Media Queries Level 4. |
any-pointer |
Esistono qualsiasi dispositivo di input tra i meccanismi di input disponibili, e se esiste, quanto è precisa la sua precisione? Aggiunto nel Media Queries Level 4. |
aspect-ratio | Il rapporto larghezza/altezza del viewport (area di visualizzazione). |
color |
Il numero di bit per pixel dell'output del dispositivo, comuni sono 8, 16, 32 bit. Il valore è 0 se il dispositivo non supporta l'output a colori. |
color-gamut |
L'estensione del gamut di colore supportata approssimativamente dall'agente utente e dall'output del dispositivo. Aggiunto nel Media Queries Level 4. |
color-index |
Il numero di voci nella tabella di ricerca dei colori (color lookup table) dell'output del dispositivo. Il valore è 0 se il dispositivo non utilizza la tabella di ricerca dei colori. |
device-aspect-ratio |
Il rapporto larghezza/altezza dell'output del dispositivo. È stato deprecato nel livello 4 delle Media Queries. |
device-height |
L'altezza della superficie di rendering dell'output del dispositivo (ad esempio lo schermo). È stato deprecato nel livello 4 delle Media Queries. |
device-width |
La larghezza della superficie di rendering dell'output del dispositivo (ad esempio lo schermo). È stato deprecato nel livello 4 delle Media Queries. |
display-mode |
Il modello di visualizzazione dell'applicazione, come specificato dal membro display del manifest web app. Definito nella spec Web App Manifest. |
forced-colors |
Se l'agente utente limita la tavola dei colori. Aggiunto nel Media Queries Level 5. |
grid | Se l'output del dispositivo utilizza uno schermo a griglia o uno schermo a matrice. |
height | L'altezza del viewport (area di visualizzazione). |
hover |
Se il meccanismo di input principale permette agli utenti di posizionare il mouse sopra l'elemento? Aggiunto nel Media Queries Level 4. |
inverted-colors |
Se il browser o il sistema operativo di base ha invertito i colori. Aggiunto nel Media Queries Level 5. |
light-level |
Il livello di luce attuale dell'ambiente. Aggiunto nel Media Queries Level 5. |
max-aspect-ratio | La massima proporzione tra larghezza e altezza dell'area di visualizzazione. |
max-color | Il numero massimo di bit per ogni componente di colore dell'output del dispositivo. |
max-color-index | Il numero massimo di colori che il dispositivo può visualizzare. |
max-height | L'altezza massima dell'area di visualizzazione, ad esempio la finestra del browser. |
max-monochrome | Il numero massimo di bit per ogni 'colore' su dispositivi monocromatici (grigio). |
max-resolution | La massima risoluzione del dispositivo, espressa in dpi o dpcm. |
max-width | La larghezza massima dell'area di visualizzazione, ad esempio la finestra del browser. |
min-aspect-ratio | La minima proporzione tra larghezza e altezza dell'area di visualizzazione. |
min-color | Il numero minimo di bit per ogni componente di colore dell'output del dispositivo. |
min-color-index | Il numero minimo di colori che il dispositivo può visualizzare. |
min-height | L'altezza minima dell'area di visualizzazione, ad esempio la finestra del browser. |
min-monochrome | Il numero minimo di bit per ogni 'colore' su dispositivi monocromatici (grigio). |
min-resolution | Risoluzione minima del dispositivo, utilizzando dpi o dpcm. |
min-width | Larghezza minima dell'area di visualizzazione, ad esempio la finestra del browser. |
monochrome |
Profondità di bit di ogni pixel nel buffer di frame monocromatico dell'output del dispositivo. Se il dispositivo non ha uno schermo a singolo colore, il valore è 0. |
orientation | Direzione di rotazione della viewport (modalità orizzontale o verticale). |
overflow-block |
Come l'output del dispositivo gestisce il contenuto che si spinge oltre la viewport (viewport) lungo l'asse blocco. Aggiunto nel Media Queries Level 4. |
overflow-inline |
Il contenuto che si spinge oltre la viewport (viewport) lungo l'asse inline può essere scollato? Aggiunto nel Media Queries Level 4. |
pointer |
Il meccanismo di input principale è un dispositivo puntatore? Se sì, quanto è precisa la sua precisione? Aggiunto nel Media Queries Level 4. |
prefers-color-scheme |
Rileva se l'utente tende a scegliere un schema di colori chiaro o scuro. Aggiunto nel Media Queries Level 5. |
prefers-contrast |
Rileva se l'utente desidera aumentare o ridurre la contrasto tra colori simili richiesto al sistema. Aggiunto nel Media Queries Level 5. |
prefers-reduced-motion |
Se l'utente desidera che ci siano meno effetti dinamici sulla pagina. Aggiunto nel Media Queries Level 5. |
prefers-reduced-transparency |
Se l'utente tende a scegliere una trasparenza più bassa. Aggiunto nel Media Queries Level 5. |
resolution | Risoluzione dell'output del dispositivo, utilizzando dpi o dpcm. |
scan | Processo di scansione dell'output del dispositivo (adatto a televisioni ecc.). |
scripting |
Rileva se lo scripting (ad esempio JavaScript) è disponibile. Aggiunto nel Media Queries Level 5. |
update |
Frequenza con cui l'output del dispositivo aggiorna il rendering del contenuto. Aggiunto nel Media Queries Level 4. |
width | Larghezza della viewport (viewport). |
Più esempi
Esempio 2
Quando la larghezza del browser è di 600px o inferiore, nascondi l'elemento:
@media screen and (max-width: 600px) { div.example { display: none; } }
Esempio 3
Se la larghezza della viewport è di 800 pixel o superiore, utilizza la query media per impostare il colore di sfondo in lavanda; se la larghezza della viewport è compresa tra 400 e 799 pixel, utilizza la query media per impostare il colore di sfondo in verde chiaro. Se la viewport è inferiore a 400 pixel, il colore di sfondo è azzurro chiaro:
body { background-color: lightblue; } @media screen and (min-width: 400px) { body { background-color: verde chiaro; } } @media screen and (min-width: 800px) { body { background-color: lavanda; } }
Esempio 4
Crea un menu di navigazione responsive (visualizzato orizzontalmente su grandi schermi e verticalmente su schermi piccoli):
@media screen and (max-width: 600px) { .topnav a { float: none; width: 100%; } }
esempio 5
Crea una layout di colonne responsive utilizzando le query media:
/* Da quattro colonne a due colonne in uno schermo di 992px o più piccolo */ @media screen and (max-width: 992px) { .column { width: 50%; } } /* In uno schermo con larghezza inferiore o uguale a 600 pixel, fa stackare le colonne invece di posizionarle in parallelo */ @media screen and (max-width: 600px) { .column { width: 100%; } }
esempio 6
Crea un sito web responsive utilizzando le query media:
esempio 7
Le query media possono anche essere usate per cambiare la layout della pagina in base alla direzione del browser. Puoi scrivere un gruppo di proprietà CSS che si applicano solo quando la larghezza della finestra del browser è maggiore dell'altezza (cioè la direzione orizzontale).
Usa lo sfondo di colore chiaro se la direzione è in modalità orizzontale:
@media only screen and (orientation: landscape) { body { background-color: lightblue; } }
esempio 8
Imposta il colore del testo utilizzando le query media in modo che il testo sia verde quando il documento viene visualizzato sullo schermo e nero quando viene stampato:
@media screen { body { color: green; } } @media print { body { color: black; } }
esempio 9
elenco separato da virgola: usa la virgola per aggiungere un'altra query media a una query media esistente (il suo comportamento è simile all'operatore OR):
/* Modifica l'aspetto del <div> quando la larghezza è tra 600px e 900px o maggiore di 1100px */ @media screen and (max-width: 900px) and (min-width: 600px), (min-width: 1100px) { div.example { font-size: 50px; padding: 50px; border: 8px solid black; background: yellow; } }
supporto del browser
I numeri nella tabella indicano la versione del browser che supporta completamente @media rule.
Chrome | IE / Edge | Firefox | Safari | Opera |
---|---|---|---|---|
21 | 9 | 3.5 | 4.0 | 9 |
- pagina precedente max-width
- pagina successiva min-block-size