Ăndice
- Sintaxis antigua:
min-width
ymax-width
- La nueva sintaxis de Rangos para Media Querys
- Las etiquetas
<picture>
y<source>
de HTML - ÂżY el Can I Use?
- State of CSS 2023
- Conclusiones
- Referencias
- Agradecimientos
Ahora en CSS tenemos una nueva sintaxis para poder escribir media querys de una manera mĂĄs intuitiva y menos confusa, mediante rangos.
1. Sintaxis antigua: min-width
y max-width
La Ășnica sintaxis que tenĂamos para escribir media querys era usando las palabras clave min-width
y max-width
, por ejemplo:
@media screen and (min-width: 600px) {
.element {
/* La media query se aplica para resoluciones mayores a 600px */
}
}
o también tenemos la misma sintaxis usando max-width
:
@media screen and (max-width: 800px) {
.element {
/* La media query se aplica para resoluciones menores a 600px */
}
}
Como puedes ver, tanto min-width
y max-width
son un poco ambiguas para el desarrollador, tenemos que pensar siempre cuando usar uno u el otro.
Si quisiĂ©ramos hacer un rango con esta sintaxis tendrĂamos que hacer algo como lo siguiente:
@media screen and (min-width: 400px) and (max-width: 1000px) {
.element {
/* La media query se aplica para
resoluciones entre 400px y 1000px */
}
}
Aunque esta Ășltima sintaxis estĂĄ un poco mĂĄs clara es muy larga.
2. La nueva sintaxis de Rangos para Media Querys
La nueva sintaxis de rangos para media querys de CSS consiste en usar operadores de comparaciĂłn (populares en cualquier lenguaje de programaciĂłn) en lugar de min-width
y max-width
.
-
<
evalĂșa si un valor es menor que otro valor. -
>
evalĂșa si un valor es mayor que otro valor. -
=
evalĂșa si un valor es igual a otro valor. -
<=
evalĂșa si un valor es menor o igual a otro valor. -
>=
evalĂșa si un valor es mayor o igual a otro valor.
Veamos algunos ejemplos:
// sintaxis clĂĄsica
@media screen and (min-width: 600px) {
.element {
/* La media query se aplica para resoluciones mayores a 600px */
}
}
// sintaxis de rango
@media screen and (width >= 375px) {
.element {
/* La media query se aplica para
resoluciones mayores o iguales a 600px */
}
}
Con la nueva sintaxis omitimos el uso de min-width
y max-width
y pasamos a usar siempre width
acompañado de los operadores de comparación vistos anteriormente.
Con max-width
tendrĂamos algo similar:
// sintaxis clĂĄsica
@media screen and (max-width: 800px) {
.element {
/* La media query se aplica para resoluciones menores a 800px */
}
}
// sintaxis de rango
@media screen and (width <= 800px) {
.element {
/* La media query se aplica para
resoluciones menores o iguales a 600px */
}
}
Ahora con solo leer el cĂłdigo me queda claro cuando se aplicaran las distintas media querys. Y eso no es todo, ahora veamos cĂłmo podemos hacer rangos:
// sintaxis clĂĄsica
@media screen and (min-width: 400px) and (max-width: 1000px) {
.element {
/* La media query se aplica para
resoluciones entre 400px y 1000px */
}
}
//sintaxis de rangos
@media screen and (400 <= width <= 1000) {
.element {
/* La media query se aplica para
resoluciones entre 400px y 1000px */
}
}
ÂĄMuchĂsimo mĂĄs claro! ÂżNo crees?
3. Las etiquetas <picture>
y <source>
de HTML
Con HTML puro es posible hacer imagenes responsive en la web modera. Para ello usamos el atributo media
de la etiqueta <source>
para crear una media query y el punto de quiebre que deseamos para que se muestren diferentes imagenes.
La sintaxis de rangos de media querys también funcionan con estas etiquetas:
4. ÂżY el Can I Use?
A la fecha de publicado este post, tenemos un soporte de mĂĄs de 80% en navegadores.
Puedes verificarlo aquĂ.
5. State of CSS 2023
En la encuesta las importante de CSS que se realiza de manera anual me encontré con interesantes datos sobre esta nueva sintaxis.
Analizando la data tenemos que (Del 2022 al 2023)
- Se redujo la cantidad de desarrolladores que desconocĂan esta nueva sintaxis de CSS, lo que es algo muy positivo.
- Se incrementĂł la cantidad de desarrolladores que al menos han oido hablar de esta sintaxis, pero no la han usado todavĂa.
- Y tambiĂ©n hubo un leve incremento de programadores que usaron esta nueva caracterĂstica, lo que tambiĂ©n es positivo.
Toda la informaciĂłn apunta que para el 2024 el uso los rangos en las media querys se volverĂĄn mĂĄs conocidos y por ende mas usados en los proyectos.
6. Conclusiones
La nueva sintaxis de rangos para media querys genera un cĂłdigo mucho mĂĄs limpio y entendible a simple vista, visto que la compatibilidad con los navegadores es muy alta recomiendo familiarizarse con su uso.
7. Referencias
- https://filisantillan.com/bits/media-query-ranges/
- https://2023.stateofcss.com/en-US/features/layout/
- https://css-tricks.com/the-new-css-media-query-range-syntax/
8. Agradecimientos
Agradezco a @midudev por su post en X mediante el cual me enteré y me anime a escribir este breve post.
MĂĄs post de mi autorĂa:
Top comments (2)
Gracias, me fue muy Ăștil leer respecto a la nueva sintaxis de los media queries!
gracias a por el agradecimiento y por dejar un comentario!