Al-76
Tengo lo siguiente para el escritorio, que crea 4 columnas iguales, todas al 25%.
.footer-inner {
display: grid;
grid-template-columns: repeat(4, 1fr);
}
<div class="footer-inner">
<div>One</div>
<div>Two</div>
<div>Three</div>
<div>Four</div>
</div>
Sin embargo, ¿cómo puedo cambiar el tamaño de estos en una consulta de medios para que la primera columna vaya al 100 % y el resto de las columnas se ajusten naturalmente debajo y ahora el 33,333 % siga usando cuadrículas CSS?
.footer-inner {
display: grid;
grid-template-columns: 100% 1fr 1fr 1fr;
/* AND THIS */
grid-template-columns: 100% 33.333% 33.333% 33.333%;
}
Cambie la cuadrícula a tres columnas y configure el primer div para abarcarlas todas en el punto apropiado.
.footer-inner {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
.footer-inner div {
border: 1px solid grey;
text-align: center;
}
.footer-inner :first-child {
grid-column: 1 / -1;
}
<div class="footer-inner">
<div>One</div>
<div>Two</div>
<div>Three</div>
<div>Four</div>
</div>
-
Impresionante respuesta, agregaría para cualquier desarrollador de Magento (sí, es un poco tenue) que si quiere hacer esto con
.lib-css()
Deberías usargrid-column-start, 1
ygrid-column-end, -1
en vez degrid-column
taquigrafía–Scott Anderson
15 de diciembre de 2020 a las 13:31
Puedes hacerlo con el grid-column: span 3
puesto en el :first-child
:
.footer-inner {
display: grid;
grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 650px) {
.footer-inner {
grid-template-columns: repeat(3, 1fr);
}
.footer-inner > div:first-child {
grid-column: span 3;
border: 1px solid;
}
}
<div class="footer-inner">
<div>One</div>
<div>Two</div>
<div>Three</div>
<div>Four</div>
</div>
miguel benjamin
Aquí hay un método muy simple. Solo necesitas tres líneas de código.
Para pantallas anchas:
.footer-inner {
display: grid;
grid-auto-columns: 1fr;
}
.footer-inner > div {
grid-row: 1;
}
/* non-essential demo styles */
.footer-inner { background-color: gray; grid-gap: 1px; }
.footer-inner > div { background-color: lightgreen; text-align: center; padding: 5px;}
<div class="footer-inner">
<div>One</div>
<div>Two</div>
<div>Three</div>
<div>Four</div>
</div>
Para pantallas estrechas:
.footer-inner {
display: grid;
grid-auto-columns: 1fr;
}
.footer-inner > div:first-child {
grid-column: span 3;
}
/* non-essential demo styles */
.footer-inner { background-color: gray; grid-gap: 1px; }
.footer-inner > div { background-color: lightgreen; text-align: center; padding: 5px;}
<div class="footer-inner">
<div>One</div>
<div>Two</div>
<div>Three</div>
<div>Four</div>
</div>
Explicaciones
pantallas anchas
Él grid-auto-columns
La propiedad establece el ancho de las columnas implícitas. Al establecer el valor en 1fr
, todas las columnas creadas consumirán una distribución equitativa de espacio libre en la fila. Con grid-row: 1
aplicado a todos los elementos, aparecerán en la primera fila.
pantallas estrechas
Una vez que configura el primer elemento para que abarque tres columnas implícitas, el contenedor debe crear tres columnas. Los elementos restantes pueden encajar perfectamente debajo en las columnas recién creadas.
Por último, considere usar fr
unidades en lugar de porcentajes (como 33.33%) en el tamaño de su pista. Entonces no tiene que preocuparse por tener en cuenta los márgenes y las brechas de la cuadrícula. Aquí hay más información: La diferencia entre el porcentaje y las unidades fr en el diseño de cuadrícula CSS