Les consultes de mitjans (media queries) són una característica poderosa de CSS que permet aplicar estils específics en funció de les característiques del dispositiu, com la mida de la pantalla, la resolució, l'orientació, etc. Són essencials per crear dissenys responsius que s'adaptin a diferents dispositius i mides de pantalla.
Conceptes Bàsics de les Consultes de Mitjans
Sintaxi de les Consultes de Mitjans
La sintaxi bàsica d'una consulta de mitjans és la següent:
Exemples de Condicions Comunes
-
Amplada Màxima (max-width): Aplica estils quan l'amplada de la pantalla és menor o igual a un valor específic.
@media (max-width: 600px) { body { background-color: lightblue; } }
-
Amplada Mínima (min-width): Aplica estils quan l'amplada de la pantalla és major o igual a un valor específic.
@media (min-width: 601px) { body { background-color: lightgreen; } }
-
Orientació (orientation): Aplica estils en funció de l'orientació del dispositiu (landscape o portrait).
@media (orientation: landscape) { body { background-color: lightcoral; } }
-
Resolució (resolution): Aplica estils en funció de la resolució del dispositiu.
@media (min-resolution: 2dppx) { body { background-color: lightgoldenrodyellow; } }
Combinació de Condicions
Les condicions es poden combinar utilitzant operadors lògics com and
, or
i not
.
Exemples Pràctics
Exemple 1: Disseny Responsiu Bàsic
Aquest exemple mostra com canviar el disseny d'una pàgina web en funció de la mida de la pantalla.
<!DOCTYPE html> <html lang="ca"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Exemple de Consultes de Mitjans</title> <style> body { font-family: Arial, sans-serif; margin: 0; padding: 0; } .container { width: 100%; padding: 20px; box-sizing: border-box; } .header, .footer { background-color: #333; color: white; text-align: center; padding: 10px 0; } .main { background-color: #f4f4f4; padding: 20px; } @media (max-width: 600px) { .container { padding: 10px; } .header, .footer { padding: 5px 0; } .main { padding: 10px; } } </style> </head> <body> <div class="container"> <div class="header">Capçalera</div> <div class="main">Contingut Principal</div> <div class="footer">Peu de pàgina</div> </div> </body> </html>
Exemple 2: Canvi d'Estils en Funció de l'Orientació
Aquest exemple mostra com canviar els estils en funció de l'orientació del dispositiu.
<!DOCTYPE html> <html lang="ca"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Exemple d'Orientació</title> <style> body { font-family: Arial, sans-serif; margin: 0; padding: 0; background-color: lightgray; } .content { text-align: center; padding: 50px; } @media (orientation: landscape) { body { background-color: lightblue; } } @media (orientation: portrait) { body { background-color: lightgreen; } } </style> </head> <body> <div class="content"> <h1>Canvi d'Estils en Funció de l'Orientació</h1> <p>Gira el dispositiu per veure el canvi de color de fons.</p> </div> </body> </html>
Exercicis Pràctics
Exercici 1: Disseny Responsiu per a Diferents Mides de Pantalla
Objectiu: Crear un disseny que canviï el color de fons i la mida del text en funció de la mida de la pantalla.
Instruccions:
- Crea un fitxer HTML amb una estructura bàsica.
- Afegeix estils CSS per canviar el color de fons i la mida del text per a pantalles petites (menys de 600px) i grans (més de 600px).
Solució:
<!DOCTYPE html> <html lang="ca"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Exercici de Consultes de Mitjans</title> <style> body { font-family: Arial, sans-serif; margin: 0; padding: 0; background-color: white; text-align: center; padding: 50px; } h1 { font-size: 2em; } @media (max-width: 600px) { body { background-color: lightcoral; } h1 { font-size: 1.5em; } } @media (min-width: 601px) { body { background-color: lightseagreen; } h1 { font-size: 2.5em; } } </style> </head> <body> <h1>Exercici de Consultes de Mitjans</h1> <p>Canvia la mida de la finestra per veure els canvis d'estil.</p> </body> </html>
Exercici 2: Estils Diferents per a Orientació Landscape i Portrait
Objectiu: Aplicar estils diferents en funció de l'orientació del dispositiu.
Instruccions:
- Crea un fitxer HTML amb una estructura bàsica.
- Afegeix estils CSS per canviar el color de fons i l'alineació del text en funció de l'orientació del dispositiu.
Solució:
<!DOCTYPE html> <html lang="ca"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Exercici d'Orientació</title> <style> body { font-family: Arial, sans-serif; margin: 0; padding: 0; background-color: white; text-align: center; padding: 50px; } h1 { font-size: 2em; } @media (orientation: landscape) { body { background-color: lightblue; text-align: left; } } @media (orientation: portrait) { body { background-color: lightgreen; text-align: right; } } </style> </head> <body> <h1>Exercici d'Orientació</h1> <p>Gira el dispositiu per veure els canvis d'estil.</p> </body> </html>
Errors Comuns i Consells
Errors Comuns
-
No incloure la meta etiqueta viewport: Sense aquesta etiqueta, les consultes de mitjans poden no funcionar correctament en dispositius mòbils.
<meta name="viewport" content="width=device-width, initial-scale=1.0">
-
No tancar correctament les claus de les consultes de mitjans: Assegura't que totes les claus
{}
estiguin correctament tancades. -
Utilitzar condicions contradictòries: Evita utilitzar condicions que es contradiguin entre elles, ja que pot causar comportaments inesperats.
Consells
- Prova les teves consultes de mitjans en diferents dispositius: Utilitza eines com el mode de desenvolupador del navegador per simular diferents dispositius i mides de pantalla.
- Comença amb un disseny mobile-first: Escriu els estils per a dispositius mòbils primer i després afegeix consultes de mitjans per a pantalles més grans.
- Utilitza unitats relatives: Les unitats relatives com
em
irem
poden ajudar a mantenir un disseny més flexible i responsiu.
Conclusió
Les consultes de mitjans són una eina fonamental per crear dissenys web responsius que s'adaptin a diferents dispositius i mides de pantalla. Amb una comprensió sòlida de la seva sintaxi i l'ús adequat de les condicions, pots assegurar-te que el teu lloc web ofereixi una experiència òptima per a tots els usuaris, independentment del dispositiu que utilitzin.
Domini del CSS: De Principiant a Avançat
Mòdul 1: Introducció al CSS
- Què és el CSS?
- Sintaxi i Selectors de CSS
- Com Afegir CSS a HTML
- Propietats Bàsiques de CSS
- Colors en CSS
- Unitats i Mesures en CSS
Mòdul 2: Estilització de Text i Fonts
- Propietats de Text
- Propietats de Fonts
- Integració de Google Fonts
- Alineació i Espaiat de Text
- Decoració i Transformació de Text
Mòdul 3: Model de Caixa i Disseny
- Comprendre el Model de Caixa
- Marge i Farciment
- Vora i Contorn
- Amplada i Alçada
- Dimensionament de Caixa
- Propietat de Visualització de CSS
Mòdul 4: Posicionament i Flotació
- Propietat de Posició de CSS
- Posicionament Estàtic, Relatiu, Absolut i Fix
- Flotació i Neteja de CSS
- Crear Dissenys amb Flotació
- Índex Z de CSS
Mòdul 5: Flexbox
- Introducció a Flexbox
- Propietats del Contenidor Flex
- Propietats dels Elements Flex
- Crear Dissenys amb Flexbox
- Disseny Responsiu amb Flexbox
Mòdul 6: CSS Grid
- Introducció a CSS Grid
- Propietats del Contenidor Grid
- Propietats dels Elements Grid
- Crear Dissenys amb CSS Grid
- Disseny Responsiu amb CSS Grid
Mòdul 7: Tècniques Avançades de CSS
Mòdul 8: Disseny Responsiu
- Introducció al Disseny Responsiu
- Consultes de Mitjans
- Tipografia Responsiva
- Imatges Responsives
- Disseny Mobile-First
Mòdul 9: Preprocessadors i Frameworks
- Introducció als Preprocessadors de CSS
- Conceptes Bàsics de Sass
- Conceptes Bàsics de Less
- Introducció als Frameworks de CSS
- Ús de Bootstrap
Mòdul 10: Millors Pràctiques i Optimització
- Millors Pràctiques de CSS
- Organització del Codi CSS
- Minificació de CSS
- Optimització del Rendiment de CSS
- Depuració de CSS