CSS RWD - Media Queries

Benvenuti, futuri sviluppatori web! Oggi esploreremo il mondo emozionante del Design Web Responsivo (RWD) e ci concentreremo su uno degli strumenti più potenti: le Media Queries. Immagina di creare una bellissima pittura, ma deve sembrare fantastica sia su una piccola cartolina che su un'enorme billboard. Ecco esattamente ciò che facciamo con i siti web, e le media queries sono il nostro pennello magico!

CSS RWD - Media Queries

Cos'è una Media Query?

Le media queries sono come i camaleonti del mondo CSS. Permettono al tuo sito web di adattarsi e cambiare aspetto in base al dispositivo su cui viene visualizzato. Che sia uno smartphone, un tablet o un computer desktop, le media queries aiutano a garantire che il tuo sito sembri fantastico ovunque.

Iniziamo con un esempio di base:

@media screen and (max-width: 600px) {
body {
background-color: lightblue;
}
}

In questo codice, stiamo dicendo: "Ehi browser, se la larghezza dello schermo è di 600 pixel o meno, pittura lo sfondo di colore azzurro chiaro!" È come dare al tuo sito web un look fresco e rinfrescante su schermi più piccoli.

Proprietà width delle Media Query CSS RWD

La proprietà width è il nostro miglior amico quando si tratta di creare design responsivi. Ci permette di impostare stili diversi in base alla larghezza dello schermo del dispositivo.

Guardiamo un esempio più completo:

/* Stili predefiniti per schermi più grandi */
.container {
width: 80%;
margin: 0 auto;
}

/* Stili per schermi di 768px o più piccoli */
@media screen and (max-width: 768px) {
.container {
width: 95%;
}
}

/* Stili per schermi di 480px o più piccoli */
@media screen and (max-width: 480px) {
.container {
width: 100%;
}
}

Ecco cosa sta succedendo:

  1. Per impostazione predefinita, il nostro contenitore è largo l'80% con un po' di margine sui lati.
  2. Quando lo schermo si restringe a 768px o meno, aumentiamo la larghezza al 95%.
  3. Su schermi molto piccoli (480px o meno), rendiamo il contenitore a larghezza piena.

È come se il tuo sito web facesse yoga, stirandosi e piegandosi per adattarsi perfettamente a qualsiasi schermo!

Media Query CSS RWD - Punti di Rottura Multipli

Ora parliamo dei punti di rottura. Questi sono i punti in cui il layout del tuo sito web cambia per fornire la migliore esperienza utente. Pensali come i "punti di rottura" dove il tuo design deve adattarsi.

Ecco un esempio che utilizza punti di rottura multipli:

/* Stili di base */
body {
font-size: 16px;
}

/* Schermi grandi */
@media screen and (min-width: 1200px) {
body {
font-size: 18px;
}
}

/* Schermi medi */
@media screen and (min-width: 992px) and (max-width: 1199px) {
body {
font-size: 17px;
}
}

/* Schermi piccoli */
@media screen and (max-width: 991px) {
body {
font-size: 15px;
}
}

In questo esempio, stiamo regolando la dimensione del font in base alle diverse dimensioni degli schermi:

  • Su schermi grandi (1200px e oltre), aumentiamo la dimensione del font a 18px.
  • Per schermi medi (tra 992px e 1199px), utilizziamo una dimensione del font di 17px.
  • Su schermi piccoli (991px e meno), riduciamo leggermente la dimensione del font a 15px.

È come avere un guardaroba responsivo che si adatta sempre perfettamente, indipendentemente da quanto hai mangiato!

Utilizzo dell'Orientazione nelle Media Query CSS RWD

Sapevi che il tuo sito web può sapere se un dispositivo è tenuto in orizzontale o in verticale? Proprio così, e possiamo utilizzare questa informazione per creare design ancora più personalizzati.

Ecco come possiamo utilizzare la funzione di orientazione:

/* Stili per l'orientazione in verticale */
@media screen and (orientation: portrait) {
.sidebar {
width: 100%;
float: none;
}
.main-content {
margin-left: 0;
}
}

/* Stili per l'orientazione in orizzontale */
@media screen and (orientation: landscape) {
.sidebar {
width: 25%;
float: left;
}
.main-content {
margin-left: 26%;
}
}

In questo esempio:

  • Quando il dispositivo è in modalità portrait (più alto che largo), rendiamo la barra laterale a larghezza piena e rimuoviamo il float.
  • In modalità landscape, creiamo un layout affiancato con la barra laterale che occupa il 25% della larghezza.

È come se il tuo sito web facesse acrobazie, cambiando tra modalità portrait e landscape con stile!

Mettere Tutto Insieme

Ora che abbiamo coperto le basi, esaminiamo un esempio più complesso che combina tutto ciò che abbiamo imparato:

/* Stili di base */
body {
font-family: Arial, sans-serif;
line-height: 1.6;
color: #333;
}

.container {
width: 80%;
margin: 0 auto;
}

/* Schermi grandi */
@media screen and (min-width: 1200px) {
body {
font-size: 18px;
}
.container {
max-width: 1140px;
}
}

/* Schermi medi */
@media screen and (min-width: 992px) and (max-width: 1199px) {
body {
font-size: 17px;
}
.container {
max-width: 960px;
}
}

/* Schermi piccoli */
@media screen and (max-width: 991px) {
body {
font-size: 16px;
}
.container {
width: 95%;
}
}

/* Schermi extra piccoli */
@media screen and (max-width: 576px) {
body {
font-size: 15px;
}
.container {
width: 100%;
padding: 0 15px;
}
}

/* Orientazione landscape */
@media screen and (orientation: landscape) and (max-height: 500px) {
.header {
position: static;
}
.main-content {
margin-top: 20px;
}
}

Questo esempio completo dimostra come possiamo creare un design completamente responsivo che si adatta a diverse dimensioni e orientazioni degli schermi. Stiamo regolando dimensioni dei font, larghezze dei contenitori e persino il layout in base alle caratteristiche del dispositivo.

Conclusione

Complimenti! Hai appena fatto i tuoi primi passi nel mondo del design web responsivo con le media queries. Ricorda, creare siti web responsivi è come essere un trasformista digitale - il tuo contenuto dovrebbe sembrare fantastico indipendentemente dalla forma che assume.

Mentre pratichi e sperimenti con le media queries, svilupperai un'intuizione per creare design che funzionano senza problemi su tutti i dispositivi. Continua a esplorare, a programmare e, soprattutto, divertiti! I tuoi siti web ti ringrazieranno rendendosi favolosi ovunque vadano.

Metodo Descrizione
@media screen Targetizza tutti i tipi di schermo
max-width Imposta una condizione di larghezza massima
min-width Imposta una condizione di larghezza minima
orientation: portrait Targetizza dispositivi in modalità portrait
orientation: landscape Targetizza dispositivi in modalità landscape

Buon coding, e possa i tuoi siti web sempre essere responsivi!

Credits: Image by storyset