Jose Luis Grande Acevedo
Lidia María Ramirez Navarro
Cristian Nahuel Kairiyama
Ana Shek
Julian Trujillo
Jonner paz
Pepe Sosa
Eduardo Peña Ramos
Juan Gui Arenas
Estefany Salas
Team PlatziJuan Gui Arenas
Elcira Ibarra
Elcira Ibarra
Estefany Salas
Team PlatziFacundo Martin Corengia
Adal Alberto Obregon Uribe
Bayron Sneider Arciniegas Aldana
Benjamin Allen Ramirez Horna
Juan Gui Arenas
Thomas André Dale Guevara
Dario Paladines
Jonathan David Olivos
Yuliani Paoleth Alcántara Galindo
Benjamin Allen Ramirez Horna
Larry Finol
Raul Romero
Marcos Avila Rodriguez
Benjamin Allen Ramirez Horna
Rolando Jose Lugo Palomino
Jazmin Ocampo Marin
Luisa María Franco Jiménez
Omar ali
José R. Lemus
Sebastian Pedroza
Estefany Salas
Team PlatziJuan Daniel Zuluaga Serna
Juan Castro
ProfesorFernando Yutiz
Código Emmet para generar el contenedor y items:
div.contenedor>(div.item{$}*6)
Podría ser también:
.contenedor>.item*6
tengo una duda existencial, si se le quiere dar clases a estos divs como sería?
Apuntes de la clase
**Propiedades del contenedor grid: ** *Display: Grid *Grid-template *Gaps *Grid-auto
Para comenzar a usar grillas es necesario colocar en CSS al
contenedor padre: display: grid;
grid-template-colums: indica cuantas columnas va a tener y
de que ancho va a ser cada columna grid-template-rows: indica cuantas filas va a tener y de que
altura va a ser cada fila
++Ejemplo,++ para crear 3 columnas (cada uno de diferentes
tamaño): grid-template-colums: 100px 200px 300px; Nota: Si en tu contenedor hay 4 o más items, grid-template-
columns te creará automáticamente 1 nueva fila y comenzará a
llenarla, y pondrá cada fila en 3 columnas
Además, también podemos colocar ambos tipos de grid-template Ejemplo: grid-template-columns: 100px 200px 300px; grid-template-rows: 150px 250px;
Otra forma de colocar los tamaños de las filas y columnas, sería
usar grid-auto Esta propiedad define el tamaño de cualquier fila o columna que
se crea. Existe grid-auto-rows; grid-auto-columns; **grid-auto-
flow**
Ejemplo: grid-auto-rows: 150px; *Esto hara que todas tus filas siempre tenga una altura de
150px.
grid-auto-flow: Modifica cómo se está llenando nuestra grilla.
Por defecto está el row, ya que cuando los elementos no caben
en lo que hemos definido, lo que hace es crear mas filas nuevas
grid-auto-flow: dense; : Si hay un espacio vacío en la grilla, lo
que va a hacer es poner los elementos allí, en vez de seguir
poniéndolos en filas y columnas grid-auto-flow: column; :Crea nuevas columnas, en vez de
nuevas filas
++Para definir espacios entre filas y/o columnas++ row-gap: crea un espacio solo entre filas (no se crea un
espacio entre una fila y el borde de su contenedor) column-gap: se crea un espacio solo entre sus columnas gap: una combinación entre row-gap y column-gap (crea un
espacio entre filas y entre columnas con el mismo tamaño puesto
en CSS)
Muchas gracias! se me aclararon las dudas, buen resumen!
Hola! Esta clase me costó mucho entender la diferencia entre grid-template y grid-auto. Afortunadamente, después de revisar algunos sitios web encontré la respuesta que me servía.
En resumen, en display grid existen una especie de celdas explícitas y celdas implícitas. Las celdas explícitas son las que tú controlas con grid-template, y nacen una vez aplicas esta propiedad en tu código. Todas las celdas que abarques con grid-template, serán celdas explícitas.
Por otro lado, las implicitas se controlan con grid-auto. Las celdas implícitas son todas aquellas que no se abarcan con el grid-template de antes. Por ejemplo:
div { display: grid; grid-template-columns: 300px 300px; /* Sólo aplica a dos*/ grid-auto-columns: 50px; grid-auto-flow: column; }
Supongamos que posees 6 divs. Al aplicar este código, tendrás una sola fila de divs con 6 columnas. Las primeras 2 tendrán un tamaño de 300px, ya que ese es el valor que le está asignando la propiedad grid-template-columns, sinedo las primeras 2 celdas las celdas explícitas. mientras que las otras 4 columnas medirán 50px, que son las celdas restantes y por lo tanto las celdas implícitas.
Espero que esto de las celdas explícitas e implícitas les ayude a comprender la diferencia, al menos yo no pude entender sin saber esto. Aquí les dejo el link de la página por si quieren echarle un vistazo (se los recomiendo).
Este comentario aclaró más que toda la clase, muchas gracias.
Se puede inferir eso mismo de explícito e implícito razonando que:
Con grid-templatedefinimos cuántas columnas queremos y de qué ancho
Con grid-autole decimos cómo se acomodarán las celdas.
Aqui el reto
Te quedó super bien!
Este es el codigo:
<div class="container"> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> </div> .container{ border: 5px solid #359011; background-color: whitesmoke; display:grid; grid-template-rows: 150px 150px 150px; grid-auto-columns: 150px; grid-auto-flow: column; gap: 20px; background-color: azure; } .item { border: 5px solid #f9fbfb; font-size: 4rem; background-color: #1b9736; }
.contenedor { display: grid; grid-template-rows: 100px 100px 100px; grid-auto-flow: column; gap: 20px; place-content: center; } .item { width: 100px; height: 100px; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; font-size: 40px; background-color: #72cb10; display: grid; justify-items: end; align-items: end; } .item:nth-child(2), .item:nth-child(5) { background-color: #5ab507; } .item:nth-child(3), .item:nth-child(6) { background-color: #419f00; } span { background-color: #337900; color: white; }
Esta super cool 😯
Costó un poco pero la clave es el grid-auto-flow
hola, como hiciste para que los números tomaran ese color mas oscuro?
un color theme para los que leen esto
Propiedades del Contenedor
Display Grid
Grid-template
Gaps
Grid-Auto
•Display grid: para decirle al contenedor que tenga esa propiedad y así aplicarle estilos de grid
•Grid-template: define cuantas y de qué tamaño son las filas o columnas
•Gaps: el espacio entre cada celda
•Grid-auto: aplica el cambio para todas las columnas o filas
Casi me pierdo en ese poquito, lo importante es hacerlo para entender como funciona cada propiedad
Hola Comunidad :D Estos fueron los artículos que utilicé para estudiar y practicar un poco más acerca de los conceptos a la clase y otros que se relacionan:
Para posicionar los numeros en la esquina inferior, primero metí los numeros en etiquetas span y luego use flexbox.
pero no se vale usar flexbox jaja la maestra dijo sin hacer eso
Mi solución al reto fue la siguiente:
Les comparto el HTML
<div class="contenedor"> <div class="item"><span>1</span></div> <div class="item"><span>2</span></div> <div class="item"><span>3</span></div> <div class="item"><span>4</span></div> <div class="item"><span>5</span></div> <div class="item"><span>6</span></div> </div>
Y acá el CSS
.contenedor { display: grid; grid-template-rows: 200px 200px 200px; grid-auto-columns: 200px; grid-auto-flow: column; gap: 20px; } .item { position: relative; background-color: #add901; } .item:nth-child(2), .item:nth-child(5) { background-color: #71bb05; } .item:nth-child(3), .item:nth-child(6) { background-color: #268201; } .item span { position: absolute; bottom: 0; right: 0; padding: 0 10px; font-family: 'Roboto', sans-serif; font-size: 4rem; font-weight: bold; color: #ffffff; background-color: #248000; } .item:nth-child(3) span, .item:nth-child(6) span { background-color: #0f3800; }
.contenedor { border: 5px solid #e1bee7 ; background-color: #fff1ff; /*Comvertir contenedor en un grid*/ display: grid; /* ||Grid template coluimns y grid template rows*/ grid-template-column: 150px 150px 150px; /*Le dice a la grilla que cuantas columns va a tener y de que ancho va ser */ /* || GRIT TEMPLATE ROWS */ grid-template-rows: 150px 250px; /* Lo agregan altura a las grillas.. en este caso contamos con dos lineas*/ /* || Grid auto rows y grid auto colum*/ grid-auto-rows: 150px; /* defina el tamaño que va a tener cualquier fila o comuna que se cree */ grid-auto-columns: 150px; /* nuestras columnas se crearan con un ancho de x*/ /* || Grid auto flow */ grid-auto-flow: column; /* lo que va hacer es crear nuevas columnas en ves de crear nuevas filas */ /* GAP */ row-gap: 20px; /* lo que vamos a definir es el tamaño de la brecha que deve tener */ /* ->Algo a tener en cuenta es que esta fila se crea solo al borde de su grilla , no al borde de su contenedor. */ column-gap: 20px; /* crea espacio en la columna un espacio */ gap: 20px; /*si queremos que el espaciado ocurra tanto entre filas como en las columnas*/ }
En el minuto 5:33 menciona que el sentido en el que se llenan es por columna, ¿se confundió o solo soy yo? Veo que los elementos van de izquierda a derecha en el sentido de las filas.
gran atencion? hmm
Pues yo creo que si lo dijo bien, se estan llenando primero las columnas | 1 | 2 | 3 | | 4 | 5 | si se llenaran primero las filas, se llenaria asi | 1 | 3 | 5 | | 2 | 4 | 6 | como dijiste los elementos van de izquierda a derecha pero ese es el sentido que llevan las columnas por otro lado el sentido de las filas es de arriba hacia abajo
RETO!!!!
HTML CODE
<<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="style.css"> <title>Document</title> </head> <body> <div class="contenedor"> <div class="item item1"><p class="container-text1">1</p></div> <div class="item item2"><p class="container-text1">2</p></div> <div class="item item3"><p class="container-text2">3</p></div> <div class="item item4"><p class="container-text1">4</p></div> <div class="item item5"><p class="container-text1">5</p></div> <div class="item item6"><p class="container-text2">6</p></div> </body> </html>>
CSS CODE:
<.contenedor{ display:grid; grid-template-rows:100px 100px 100px; grid-template-columns:100px 100px; grid-auto-flow: column; gap: 20px; text-align:center; } .item{ position:relative; } .item1, .item4{ background-color: #b5de4b; } .item2, .item5{ background-color: #77c00b; } .item3, .item6{ background-color: #369513; } .item .container-text1{ background-color: #369513; } .item .container-text2{ background-color: #194907; } .item p{ font-size: 30px; font-weight: bold; color: white; width: 25px; margin:0; position: absolute; bottom: 0; right: 0; } >
RESULTADO:
Excelente, gran atencion al detalle¡ , muchas gracias por tu aporte, aclare varias dudas que tenia.
Aporto mi grano de arena para las personas que no han digerido a la primera esta lección. Tanto el HTML como el CSS tiene comentarios del ejercicio presentado en esta lección, solo deben copiar y pegar pero lo más aconsejable es que puedan hacerlo como lo hice yo a modo de recordatorio.
DEMO:
HTML:
<body> <section class="main"> <h2>Diferentes ejercicios de las propiedades del contenedor</h2> <br> <h3>Habilitando el Display Grid</h3> <!-- DISPLAY GRID --> <div class="contenedor1"> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> </div> <br> <h3>Filas y columnas que deseo: X columnas y X anchura</h3> <!-- FILAS Y COLUMNAS QUE QUIERO - SABEMOS LA CANTIDAD DE ELEMENTOS (1) --> <div class="contenedor2"> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> </div> <br> <h3>Filas y columnas que deseo: X altura de filas</h3> <!-- FILAS Y COLUMNAS QUE QUIERO: ALTURA - SABEMOS LA CANTIDAD DE ELEMENTOS (2) --> <div class="contenedor3"> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> </div> <br> <h3>Grid auto: auto-rows</h3> <!-- GRID AUTO ROWS (1) - CUANDO NO SABEMOS LA CANTIDAD DE ELEMENTOS A INSERTAR --> <div class="contenedor4"> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> </div> <br> <h3>Grid auto: auto-rows y auto-flow</h3> <!-- GRID AUTO ROWS (2) - ORDEN DE LOS NÚMEROS (POR DEFECTO SE RELLENA LAS COLUMNAS Y LUEGO FILAS, VAMOS A CAMBIARLO) --> <div class="contenedor5"> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> </div> <br> <h3>Grid auto: auto-rows, auto-flow y auto-columns</h3> <!-- GRID AUTO ROWS (3) - ORDEN DE LOS NÚMEROS (POR DEFECTO SE RELLENA LAS COLUMNAS Y LUEGO FILAS, VAMOS A CAMBIARLO) --> <div class="contenedor6"> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> </div> <br> <h3>Gaps: espaciado interno de columnas y filas (invidual)</h3> <div class="contenedor7"> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> </div> <br> <h3>Gaps: espaciado interno de columnas y filas (uniforme)</h3> <div class="contenedor8"> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> </div> </section> </body>
CSS
* { box-sizing: border-box; padding: 0; margin: 0; } html { font-size: 62.5%; font-family: sans-serif; } h1 { font-size: 3.6rem; color: brown; } h2 { font-size: 2.8rem; color: black; } .item { border: 5px solid #00bcd4; font-size: 4rem; } .contenedor2, .contenedor3, .contenedor4, .contenedor5, .contenedor6, .contenedor7, .contenedor8 { border:5px solid #e1bee7; background-color: #fff1ff; display: grid; } /* DISPLAY GRID */ .contenedor1 { border:5px solid #e1bee7; background-color: #fff1ff; display: grid; } /* FILAS Y COLUMNAS QUE QUIERO (1) */ .contenedor2 { grid-template-columns: 100px 200px 300px; /* <<<< CUANTAS COLUMNAS Y DE QUÉ ANCHO */ } /* FILAS Y COLUMNAS QUE QUIERO (2) */ .contenedor3 { grid-template-columns: 100px 200px 300px; grid-template-rows: 150px 250px; /* <<<< ALTURA DE LAS FILAS */ } /* GRID AUTO (1) */ .contenedor4 { grid-template-columns: 100px 200px 300px; grid-auto-rows: 150px; /* <<<< LA ALTURA DE CUALQUIER FILA O COLUMNA QUE SE CREA AUNQUE NO SEPAMOS CUANTOS ELEMENTOS INSERTAR */ } /* GRID AUTO (2): EL ORDEN DE LOS NÚMEROS */ .contenedor5 { grid-template-columns: 100px 200px 300px; grid-auto-rows: 150px; grid-auto-flow: column; /* <<<< CREA NUEVAS COLUMNAS EN VEZ DE FILAS, EN ESTE EJEMPLO NO HEMOS DEFINIDO CUANTAS FILAS DEBE TENER LA GRILLA */ } .contenedor6 { grid-template-rows: 100px 200px; /* <<<< CANTIDAD DE FILAS ARRIBA 100 Y ABAJO 200 */ grid-auto-columns: 100px; /* <<<< EL TAMALO DE CUALQUIER COLUMNA QUE SE CREA AUNQUE NO SEPAMOS CUANTOS ELEMENTOS INSERTAR */ grid-auto-flow: column; /* <<<< CREA NUEVAS COLUMNAS EN VEZ DE FILAS, EN ESTE EJEMPLO NO HEMOS DEFINIDO CUANTAS FILAS DEBE TENER LA GRILLA */ } /* ESPACIADO INTERNO GAPS (1) */ .contenedor7 { grid-template-rows: 100px 200px; grid-auto-columns: 100px; grid-auto-flow: column; row-gap: 15px; /*<<< ESPACIADO DE 15PX ENTRE FILAS */ column-gap: 30PX; /*<<< ESPACIADO DE 30PX ENTRE COLUMNAS */ } /* ESPACIADO INTERNO GAPS (2) */ .contenedor8 { grid-template-rows: 100px 200px; grid-auto-columns: 100px; grid-auto-flow: column; gap:40px; /*<<< ESPACIADO UNIFORME DE COLUMNAS Y FILAS DE 40PX */ }
Yeeeyyy 🎉 no olvides dejar un comentario con como se ve tu grid en el navegador 😍
Esta clase va primero que la anterior. Revisen esta y vuelvan nuevamente a la anterior para que todos los conceptos queden claros
Solucionado ✅
Volver al futuro jajaja.
Ya quedo solucionado. Muchas gracias