Edgar Lopez Arroyo
José Luis Díaz Santos
Muchas gracias Edgar ;)
Eliezer Hernandez
Muy buen aporte.
Cuando trabajamos con datos dinámicos provenientes de una API, no siempre sabemos cuántos elementos vamos a renderizar. Hoy pueden ser tres cards y mañana veinte. Definir manualmente cada fila y columna se vuelve insostenible, y es aquí donde la grid implícita de CSS se convierte en una herramienta fundamental para cualquier frontend developer que quiera construir layouts flexibles y escalables.
¿Qué es un track y por qué importa en CSS Grid?
Un track es la unión de dos o más celdas dentro de una grilla [0:18]. Puede ser una fila completa o una columna completa. Cuando definimos nuestras filas y columnas con grid-template-rows y grid-template-columns, estamos creando tracks de forma explícita, es decir, le indicamos al navegador exactamente cuántos queremos y de qué tamaño.
El problema aparece cuando el contenido es dinámico. Imagina que consumes una API y recibes tres elementos, pero al día siguiente el backend agrega más datos y ahora son seis [0:44]. Como frontends, no podemos estar contando elementos constantemente para ajustar nuestro CSS.
¿Cómo funciona la grid implícita para contenido dinámico?
La grid implícita significa que no necesitamos definir absolutamente nada desde el principio más allá de lo esencial [1:20]. Por ejemplo, si establecemos tres columnas, los elementos adicionales se organizarán automáticamente en las filas necesarias sin intervención manual.
¿Cómo se ubican los elementos con líneas de grid?
Cuando posicionamos elementos de forma explícita, contamos las líneas de la cuadrícula, no las filas ni las columnas como tal [2:10]. Por ejemplo:
grid-column: 1 / 2 indica que el elemento empieza en la línea 1 y termina en la línea 2.grid-row: 1 / 2 ubica el elemento entre la primera y segunda línea de fila.Para un segundo elemento que debe ir debajo del primero, cambiamos las líneas de fila: grid-row: 2 / 3. La clave está en visualizar las líneas y contar desde dónde empieza hasta dónde termina cada elemento.
¿Qué pasa cuando se crean columnas implícitas con tamaño cero?
Cuando un nuevo elemento se ubica en una zona no definida, CSS Grid crea columnas o filas implícitas con un tamaño de cero [3:36]. Esto produce un resultado visual inesperado: los elementos aparecen comprimidos o con espacios extraños que no corresponden al diseño solicitado.
Para resolver esto existen dos propiedades esenciales:
grid-auto-columns: define el tamaño que tendrán las columnas creadas automáticamente [3:52]. Cada vez que llega un nuevo elemento, la columna implícita se genera con el ancho exacto que especifiquemos.grid-auto-rows: hace lo mismo pero para filas generadas de forma automática.¿Qué hace grid-auto-flow y cuándo usarlo?
La propiedad grid-auto-flow controla la dirección en la que se colocan los nuevos elementos [4:24]. Acepta dos valores principales:
row: los elementos se van agregando en nuevas filas.column: los elementos se van agregando en nuevas columnas.Esto es especialmente útil cuando no sabemos la cantidad de datos que llegarán. Inicialmente pueden ser cinco, pero después pueden ser veinte, y el layout se ajusta sin que tengamos que modificar el código [4:30].
El quiz propuesto en la sesión plantea una pregunta clave: ¿con qué propiedad o propiedades de CSS podemos darle tamaño a tracks implícitos? Las opciones son grid-gap, grid-auto-columns y grid-auto-rows [4:50]. La recomendación es abrir CodePen, escribir el código y experimentar antes de responder.
La mejor forma de consolidar estos conceptos es la práctica constante [5:15]. Toma cualquiera de los ejemplos, replícalo en CodePen y observa cómo se comportan las propiedades. Las definiciones se olvidan con el tiempo, pero la experiencia práctica permanece. En la próxima sesión se abordarán funciones de CSS Grid como repeat, minmax y fit-content con mucho más detalle.
Edgar Lopez Arroyo
José Luis Díaz Santos
Muchas gracias Edgar ;)
Eliezer Hernandez
Muy buen aporte.
Tatiana Giselle Ahumada Lobo
mmmm un poco enredado el tema, hubiese sido mejor algo práctico para entender un poco más
Matías Wasiak
Creo que el curso en general con más práctica hubiera estado mejor jajaja
Paul Isaac Guala Bravo
¡Apoyo! Le faltan más ejemplos prácticos al los temas y explicar más a detalle cada propiedad
Carlos Eduardo Gomez García
Hmmmm si no entiendo mal, un track puede estar formado tanto vertical como horizontalmente, por lo que si es así, las respuestas serían la B y la C ya que estas propiedades permiten asignar el tamaño a los tracks que se generan de manera automática 🤔. . Algo que sí me pareció MindBlow al momento de aprender CSS Grid es el hecho de contar desde líneas y no desde tracks, es dificl adaptarse, pero cuando lo ves con las guías en el navegador, ya todo comienza a cobrar más sentido :D
Alex Leonardo Rodriguez Carvajal
totalmente de acuerdo!
Irving Juárez
Si deben ser las respuestas B y C, ya que bueno, podemos descalificar al gap, ya que este lo único que hace es dar un tamaño entre las celdas. Ahora, estamos seguros de que son las dos ya mencionadas porque ambas tienen auto en sus nombres, lo que significa que se van a agregar a los tracks implicitos (los que no se establecieron en el css en un inicio).
OLIVER FERNANDO CHARRY BENAVIDES
La verdad con todo respeto, no me gusta la forma como ella explica las cosas vengo con los videos seguidos y por ejemplo el profesor de Granda, explica todo codificando que es la idea, ir programando con el estudiante y como cada tema que se dicta lo abarca todo con código y ver como van cambiando los elementos de HTML con el código que se dicta para CSS y para este tema tan importante como CSS grid me perece fundamental ir haciendo código para uno entender mejor las cosas.
Bernardo Di Leo
estoy de acuerdo
Benjamin Allen Ramirez Horna
estamos*
Fernando Quinteros Gutierrez
🤖 Generación automática de tracks
Ideas/conceptos claves
Track ⇒ Union de dos o más celdas dentro de una grid
Apuntes
.container { grid-auto-columns: 60px; }
.container { grid-auto-flow: row | column | row dense | column dense; }
RESUMEN: Debido a que existen casos que nunca sabremos cuantos elementos exactamente tendrá nuestra grilla entonces podemos generarla automáticamente con grillas implícitas.
Matías Wasiak
Estos aportes son arte jajaja
Rocio Salgado
dice que hay que practicar.. porque no da las clases practicas para que podamos aprender en vez de tanta teoria? esta clase me parece super interesante e impornatnte y entendi la mitad.
Benjamin Allen Ramirez Horna
y se hace llamar curso profecional jajaja
Isabel Cristina Berrio Jimenez
me siento muy perdida hago el ejercicio y no me sale como el ejemplo esto sin practica es muy malo
Benjamin Allen Ramirez Horna
asi es.
Ricardo Mazuera
Hizo falta más live-code en esta clase, poco comprendí este concepto.
Benjamin Allen Ramirez Horna
en todas jaja
Luis Alexander Chip Teleyón
En caso de que se nos dificulte el contar con las lineas, podemos contar con tracks utilizando la palabra reservada span.
.item-a { grid-column: span 2; } .item-b { grid-column: span 2; grid-row: span 3; } /* Tener en cuenta que se empezara a contar los span o espacios desde donde se encuentra ubicado el elemento. */
También podemos indicar de donde se empieza a contar los span pasandole como primer parámetro el número de la linea.
.item-a { grid-column: 1 / span 2; grid-row: 3 / span 3; } .item-b { grid-column: 2 / span 2; grid-row: 1 / span 3; }
Christian Velázquez
Gracias.
Zedovius .
Veo muchos comentarios de gente que se perdió en esta clase y fue por un gran error del curso: hasta esta clase no se ha explicado qué es una celda, una línea y sus propiedades, contrario a lo que dice la profesora al inicio del video solo se mostró un dibujo en una diapositiva. Tal vez el argumento sea que con ese dibujo se da por entendido esos temas pero hacer eso en un curso introductorio es un gran error didáctico.
Benjamin Allen Ramirez Horna
en esta y en las anteriores por si no encontraste esos comentarios, saludos.
Griger Ratia
He leído muchos comentarios acerca de que este curso debería ser mucho más práctico en lugar de que veamos solo diapositivas. Sin embargo, no puedo estar de acuerdo con esta idea. Vengo de haber terminado el curso de maquetación con CSS Grid en el que el profesor De Granda explica muy bien de forma práctica. Sin embargo, como es un concepto nuevo se me hizo muy complicado adaptarme y aprenderlo. Así que me pasé todos los niveles del juego de CSS Grid que muchos han compartido, y así pude entender más. Luego, leí documentación en línea para reforzar, pero por supuesto, se me olvidan algunas cosas. Así que este curso es el complemento perfecto para mi aprendizaje. Yo mismo hago el código, y sus presentaciones me han servido de mucho. Mi cuaderno de notas está repleto de información supervaliosa.
Arturo Orlando Flores Soto
Estoy muy deacuerdo con el comentario .
Marco Palmieri
no me quedo claro para que sirve el grid-auto-flow
Diego Alvaro Parra Abad
grid-auto-flow: row | column, dependiendo del valor que sea asignado los elementos que no ocupen la anchura (column) o altura (row) máxima del grid pasarán a la siguiente columna o fila respectivamente.
Aquí te dejo un enlace donde puede aterrizar mejor este tema. https://webdesign.tutsplus.com/es/tutorials/understanding-the-css-grid-auto-placement-algorithm--cms-27563
Johann Rios
la profe indica que se usa cuando queremos que se vayan ubicando automaticamente. si usamos el grid-auto-flow: row las nuevas celdas se iran ubicando llenado los espacios de celdas horizontalmente. en cambio, si usamos grid-auto-flow: column las nuevas celdas iran llenando los espacios de manera vertical. (https://css-tricks.com/snippets/css/complete-guide-grid/)
Yefry Rodelo
A todos les recomiendo que este tema de ccs grid busquen informacion en youtube, las explicaciones van mas al grano y son mas entendibles, ya si quieren pueden volver aca pero para reforzar
Diego Cucaresse
Hola Yefry:
¿Algún video para recomendar?
Gracias
Fabian Flores
La respuesta es B y C
Notas de la clase
Joel Eduardo Sánchez Herrera
Como vimos anteriormente, un track es la union de dos o mas celdas.
Por mas que definamos cierto numero de elementos, no sabemos si por parte del backend, se nos agregarían mas y para poder solucionar esto, necesitamos no establecer la cantidad de filas desde el principio, dejamos que se creen solas. Esto se llama Grid Implícita donde se crean filas o columnas si las necesitamos con anchos sin tamaño.
Para poder acomodar los elementos en ciertas lineas, necesitamos el comando:
.item{ grid-column:1/2; //QUIERE DECIR QUE EL ELEMENTO ESTARA DESDE LA LINEA 1 A LA 2 DE COLUMNAS grid-row:1/2; //QUIERE DECIR QUE ESTARA EN LA LINEA 1 A LA 2 DE FILAS }
Existe una propiedad que nos permite crear columnas desde antes que llegue un elemento, aunque no lo hayamos definido desde el principio de una grid, este elemento nos permitirá crear columnas de un tamaño predefinido:
.container{ grid-auto-columns:60px; }
Tambien tenemos otra propiedad que nos ayuda a ir agregando mas elementos en cierto orden, si son columnas o filas, con la propiedad:
.container{ grid-auto-flow:row | Column | row dense | column dense }
Liza Fernanda Castrillón Díaz
Grid Implícita
CSS grid es definido usando el valor grid en la propiedad display; puedes definir columnas y filas en tu diseño grid, con las propiedades grid-template-rows y grid-template-columns . | El grid que configures usando estas propiedades es definido como la grilla explícita (explicit grid). | Si colocas contenido fuera de esta cuadrícula explícita, o si confías en la ubicación automática y el algoritmo de cuadrícula necesita crear tracks de filas o columnas adicionales para contener grid items, luego se crearán pistas adicionales en la cuadrícula implícita. La cuadrícula implícita es la cuadrícula creada automáticamente debido al contenido que se agrega fuera de las pistas definidas.
La propiedad CSS grid-template-rows define el nombre de las líneas y las funciones de tamaño de línea de grid rows.
La propiedad CSS grid-template-columns define el nombre de las líneas y las funciones de tamaño de línea de grid columns.
La propiedad grid-auto-rows de CSS especifíca el tamaño de una nueva fila creada de forma implícita.
La propiedad de css grid-auto-columns especifíca el tamaño de una columna de cuadrícula creada implícitamente track.
);
Y como te dice RetaxMaster, no defines las filas, lo cual indica que se crearan de forma implicita.
Erick Cordova
si quieren repasar los conceptos de css grid pueden revisar learncssgrid
La respuesta al Quiz es B y C
.contanier { display: grid; grid-template: repeat(2, 100px) / repeat(2, 100px); grid-auto-flow: column; /* Agrega automaticamente columnas */ grid-auto-flow: row; /* Agrega automaticamente Filas */ grid-auto-columns: 100px; /* Define el tamaño de columnasa que se agregaran automaticamente*/ grid-auto-rows: 100px; /* Define el tamaño de las filas que se agregaran automaticamente */ }