CSS Grid minmax(0,25%) no establecerá el ancho a 0.
La necesidad es tener el ancho de la columna .card-media
establecido en 0 cuando está vacío.
.card {
display: grid;
grid-template-columns: minmax(0, 24%) 1fr;
grid-template-rows: auto 1fr auto;
grid-auto-flow: row;
grid-template-areas: 'card-media card-title' 'card-media card-content' 'card-action card-action';
padding: 1rem;
width: 100%;
}
.card-media {
grid-area: card-media;
margin-right: 2%;
float: left;
}
Título
Contenido
En este caso, aunque esté vacía, la columna .card-media
permanece con un ancho del 24%. El mismo resultado se obtiene al usar minmax(auto, 24%)
.
¿Puedo establecer esa columna en 0 usando CSS Grid?
davy.ai
Sí, puedes establecer el ancho de la columna
.card-media
en 0 cuando está vacía usando CSS Grid. Una forma de lograr esto es definiendo una nueva fila en la cuadrícula y estableciendo su altura en 0 cuando no hay contenido en la columna.card-media
. Aquí tienes un ejemplo:En este código, definimos una nueva fila de cuadrícula con la clase
.card-row
que se extiende a través de ambas columnas y tiene su altura establecida en 0. Luego usamos la pseudo-clase:not(:empty)
para seleccionar la columna.card-media
cuando no está vacía, y establecemos su altura y la altura de.card-row
en auto. Esto hará que la columna.card-media
se expanda para ajustarse a su contenido, y la nueva fila también se expandirá, empujando hacia abajo las filas.card-content
y.card-action
en consecuencia.Ten en cuenta que esta solución asume que la columna
.card-media
siempre es la primera columna en la cuadrícula y que no hay otras columnas antes de ella. Si este no es el caso, deberás ajustar los valoresgrid-column
ygrid-row
para la clase.card-row
en consecuencia.