Las consultas de medios (media queries) son una característica poderosa de CSS que permite aplicar estilos específicos a diferentes dispositivos y tamaños de pantalla. Esto es esencial para crear diseños responsivos que se adapten a una variedad de dispositivos, desde teléfonos móviles hasta monitores de escritorio.
¿Qué son las Consultas de Medios?
Las consultas de medios permiten definir condiciones bajo las cuales se aplican ciertos estilos CSS. Estas condiciones pueden basarse en características del dispositivo, como el ancho de la pantalla, la resolución, la orientación, entre otras.
Sintaxis Básica
La sintaxis básica de una consulta de medios es la siguiente:
Ejemplo Básico
/* Estilos para todos los dispositivos */ body { background-color: white; color: black; } /* Estilos para dispositivos con un ancho máximo de 600px */ @media (max-width: 600px) { body { background-color: black; color: white; } }
En este ejemplo, el fondo del body
será blanco y el texto negro en todos los dispositivos. Sin embargo, en dispositivos con un ancho máximo de 600px, el fondo será negro y el texto blanco.
Tipos de Consultas de Medios
Ancho y Alto
Las consultas de medios más comunes se basan en el ancho y el alto de la ventana gráfica (viewport).
max-width
: Aplica estilos si el ancho de la ventana gráfica es menor o igual al valor especificado.min-width
: Aplica estilos si el ancho de la ventana gráfica es mayor o igual al valor especificado.max-height
: Aplica estilos si la altura de la ventana gráfica es menor o igual al valor especificado.min-height
: Aplica estilos si la altura de la ventana gráfica es mayor o igual al valor especificado.
Ejemplo
@media (max-width: 768px) { .container { width: 100%; } } @media (min-width: 769px) { .container { width: 50%; } }
Orientación
Las consultas de medios también pueden basarse en la orientación del dispositivo.
orientation: portrait
: Aplica estilos si la orientación es vertical.orientation: landscape
: Aplica estilos si la orientación es horizontal.
Ejemplo
@media (orientation: portrait) { .sidebar { display: none; } } @media (orientation: landscape) { .sidebar { display: block; } }
Resolución
Las consultas de medios pueden basarse en la resolución del dispositivo.
min-resolution
: Aplica estilos si la resolución es mayor o igual al valor especificado.max-resolution
: Aplica estilos si la resolución es menor o igual al valor especificado.
Ejemplo
Ejercicio Práctico
Ejercicio 1: Estilos Responsivos Básicos
Crea un archivo CSS que aplique diferentes estilos a un contenedor .box
dependiendo del ancho de la pantalla.
- Si el ancho de la pantalla es menor o igual a 600px, el contenedor
.box
debe tener un fondo rojo. - Si el ancho de la pantalla es mayor a 600px y menor o igual a 1200px, el contenedor
.box
debe tener un fondo azul. - Si el ancho de la pantalla es mayor a 1200px, el contenedor
.box
debe tener un fondo verde.
Solución
.box { width: 100%; height: 100px; } /* Ancho de pantalla menor o igual a 600px */ @media (max-width: 600px) { .box { background-color: red; } } /* Ancho de pantalla mayor a 600px y menor o igual a 1200px */ @media (min-width: 601px) and (max-width: 1200px) { .box { background-color: blue; } } /* Ancho de pantalla mayor a 1200px */ @media (min-width: 1201px) { .box { background-color: green; } }
Resumen
Las consultas de medios son una herramienta esencial para el diseño responsivo en CSS. Permiten aplicar estilos específicos basados en características del dispositivo, como el ancho de la pantalla, la orientación y la resolución. Con las consultas de medios, puedes crear sitios web que se adapten a una variedad de dispositivos, proporcionando una experiencia de usuario óptima en todas las plataformas.
En el próximo tema, exploraremos la tipografía responsiva y cómo ajustar el tamaño del texto para diferentes dispositivos.
Maestría en CSS: De Principiante a Avanzado
Módulo 1: Introducción a CSS
- ¿Qué es CSS?
- Sintaxis y Selectores de CSS
- Cómo Añadir CSS a HTML
- Propiedades Básicas de CSS
- Colores en CSS
- Unidades y Medidas en CSS
Módulo 2: Estilización de Texto y Fuentes
- Propiedades de Texto
- Propiedades de Fuentes
- Integración de Google Fonts
- Alineación y Espaciado de Texto
- Decoración y Transformación de Texto
Módulo 3: Modelo de Caja y Diseño
- Entendiendo el Modelo de Caja
- Margen y Relleno
- Borde y Contorno
- Ancho y Alto
- Tamaño de Caja
- Propiedad Display de CSS
Módulo 4: Posicionamiento y Flotación
- Propiedad Position de CSS
- Posicionamiento Estático, Relativo, Absoluto y Fijo
- Flotación y Limpieza en CSS
- Creando Diseños con Flotación
- Índice Z en CSS
Módulo 5: Flexbox
- Introducción a Flexbox
- Propiedades del Contenedor Flex
- Propiedades del Ítem Flex
- Creando Diseños con Flexbox
- Diseño Responsivo con Flexbox
Módulo 6: CSS Grid
- Introducción a CSS Grid
- Propiedades del Contenedor Grid
- Propiedades del Ítem Grid
- Creando Diseños con CSS Grid
- Diseño Responsivo con CSS Grid
Módulo 7: Técnicas Avanzadas de CSS
Módulo 8: Diseño Responsivo
- Introducción al Diseño Responsivo
- Consultas de Medios
- Tipografía Responsiva
- Imágenes Responsivas
- Diseño Mobile-First
Módulo 9: Preprocesadores y Frameworks
- Introducción a los Preprocesadores de CSS
- Conceptos Básicos de Sass
- Conceptos Básicos de Less
- Introducción a los Frameworks de CSS
- Usando Bootstrap
Módulo 10: Mejores Prácticas y Optimización
- Mejores Prácticas de CSS
- Organización del Código CSS
- Minificación de CSS
- Optimización del Rendimiento de CSS
- Depuración de CSS