Una pregunta recurrente que nuestros alumnos nos hacen en nuestros cursos de Desarrollo Web es sobre la diferencia entre los valores “cover” y “contain” en el estilo background-size. Pensando en eso, en este artículo hablaremos sobre este estilo CSS, entender cuál es su objetivo y las diferencias entre sus posibles valores.
Función del estilo background-size
El objetivo del estilo background-size es definir cuál será el tamaño de la imagen de fondo de alguna etiqueta, generalmente un 1 - Un número. Con este valor podemos informar el ancho y la altura de la imagen de fondo. Este valor puede ser tanto en píxeles como en porcentaje. Ejemplo: Si informamos solo un número, como en el caso anterior, tanto el ancho como la altura será de 100 píxeles. Si deseamos especificar también la altura, basta con informar su valor después del primer número, como podemos ver a continuación: Ahora hablemos sobre los valores “cover” y “contain”. Ambos tienen el mismo objetivo: hacer que la imagen de fondo ocupe el máximo posible del área donde se aplicó y también mantener la proporción de la imagen. Pero hay una pequeña diferencia entre estos dos valores. 2 - Expresión “cover”. Este valor hace que la imagen ocupe todo el espacio donde se aplicó. Pero, para eso, realiza algunos recortes en la imagen si tiene dimensiones diferentes al área de su ocupación. 3 - Expresión “contain”. Este valor hace que la imagen ocupe el máximo posible del área donde se aplicó. Sin embargo, no realiza ningún corte en la imagen. Incluso si tiene dimensiones diferentes del área de su ocupación, se garantizará que esté “contenida” en la etiqueta por completo. Si la imagen no puede contener el 100% del área, se utilizará el color de fondo de la etiqueta, si está definido. ¿Qué opinas de desarrollar un pequeño ejemplo para ver esta diferencia en la práctica? Crearemos un archivo HTML que contendrá un Primero probaremos el background-size informando un valor en números. El contenido del archivo CSS será el siguiente: Explicando: nuestro La imagen se agregó como fondo sin problemas. Sin embargo, quedó mucho espacio vacío en nuestro Ahora aplicaremos el valor “contain”. El contenido CSS quedará así: El resultado en nuestro navegador será este: Ahora nuestra imagen se volvió más grande y ocupó una gran parte del Finalmente, usaremos el valor “cover”. Nuestro CSS quedará de la siguiente manera: Este será el resultado en el navegador: Ahora sí, nuestra imagen ocupó toda el área del Quizás pensemos: “Pero ahora no se puede ver bien la imagen. Después de todo, se cortó gran parte de ella”. Algo que podemos hacer para solucionar este problema es usar el estilo background-position. Vamos a añadirlo a nuestro selector CSS informando como su valor la expresión “center”: El resultado en el navegador ahora será este: La imagen se ve mucho mejor ahora, ya que está posicionada en su centro. El estilo background-position es muy interesante. Creo que podemos hablar más sobre él, pero eso será para un próximo artículo. En este artículo vimos a través de ejemplos prácticos las diferencias entre los posibles valores para el estilo background-size. Con este conocimiento estamos ahora preparados para decidir cuándo usar este estilo y cuál de sus valores elegir. Si te gustó este contenido, no olvides compartirlo con otras personas, eso nos ayuda mucho a seguir produciendo materiales interesantes para ustedes. ¡Nos vemos en el próximo artículo! :) Regístrate en la plataforma de cursos y sigue las próximas guías del blog.div {
background: url('example.jpg') no-repeat;
background-size: 100px;
}
div {
background: url('example.jpg') no-repeat;
background-size: 100px 200px;
}
Ejemplo
#background-example {
width: 600px;
height: 500px;
background: url('./image.jpg') no-repeat;
background-color: #ccc;
background-size: 200px;
}
#background-example {
width: 600px;
height: 500px;
background: url('./image.jpg') no-repeat;
background-color: #ccc;
background-size: contain;
}
#background-example {
width: 600px;
height: 500px;
background: url('./image.jpg') no-repeat;
background-color: #ccc;
background-size: cover;
}
background-position: center;
Sigue aprendiendo con Hcode