Introducción
En este laboratorio, aprenderemos a crear un contenedor reactivo con una relación de aspecto específica utilizando CSS. Se te presentará la propiedad personalizada --aspect-ratio y cómo utilizar la función calc() para calcular la altura del contenedor. También aprenderás a establecer el elemento hijo para mantener la relación de aspecto utilizando la propiedad object-fit: cover. Al final de este laboratorio, tendrás una mejor comprensión de cómo crear contenedores visualmente atractivos y reactivos en tus páginas web.
Relación de aspecto
index.html y style.css ya se han proporcionado en la máquina virtual.
Este código crea un contenedor reactivo con una relación de aspecto específica utilizando propiedades personalizadas de CSS y la función calc(). Siga estos pasos para lograr esto:
- Defina la relación de aspecto deseada utilizando una propiedad personalizada de CSS,
--aspect-ratio. - Establezca la propiedad
positiondel elemento contenedor enrelativey su propiedadheighten0. - Calcule la altura del elemento contenedor utilizando la función
calc()y la propiedad personalizada--aspect-ratio, y asígnela como la propiedadpadding-bottom. - Establezca el hijo directo del elemento contenedor en
position: absolute,top: 0,left: 0,width: 100%yheight: 100%. - Mantenga la relación de aspecto del elemento hijo estableciendo su propiedad
object-fitencover.
Utilice el siguiente código HTML y CSS para crear el contenedor:
<div class="container">
<img src="https://picsum.photos/id/119/800/450" />
</div>
.container {
--aspect-ratio: 16/9;
position: relative;
height: 0;
padding-bottom: calc(100% / var(--aspect-ratio));
}
.container > * {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
Haga clic en 'Go Live' en la esquina inferior derecha para ejecutar el servicio web en el puerto 8080. Luego, puede actualizar la pestaña Web 8080 para previsualizar la página web.
Resumen
¡Felicidades! Has completado el laboratorio de Relación de aspecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.