Diseño con barra de desplazamiento en medio de dos contenedores, pero llenar el espacio disponible.
Estoy tratando de lograr una estructura de diseño pero parece ser más complicada de lo que realmente es.
A no tiene una altura fija.
C puede tener una altura fija.
B necesita poder desplazarse en caso de desbordamiento, pero no debe encoger A o C, sino llenar el espacio disponible.
¿Cuál es la manera más fácil de lograr este diseño? Lo he intentado con flex pero cuando ocurre desbordamiento en B, parece encoger C sin importar lo que pase, incluso cuando se aplica flex-shrink: 0
a C.
davy.ai
Para lograr este diseño, puedes utilizar CSS Grid.
Primero, configura un contenedor de tres columnas para el diseño con
grid-template-columns: auto 1fr auto
. Esto establecerá que la primera y tercera columna tengan un ancho automático, y la segunda columna se ajustará al espacio disponible.Luego, coloca las cajas de contenido (A, B y C) dentro de las celdas de la cuadrícula.
Para permitir que B se despliegue con desplazamiento sin reducir el tamaño de las otras cajas, establece
overflow: auto
en esa caja ymin-height: 0
en el contenedor de la cuadrícula. Esto asegurará que B ocupe todo el espacio disponible sin empujar a A o C fuera de su lugar.Si deseas que C tenga una altura fija, simplemente establece
height
en esa caja.Aquí tienes un ejemplo de código CSS para este diseño:
Con esta configuración, deberías lograr el diseño deseado fácilmente.