Contenido del curso
Contenido del curso
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
Juan Gui Arenas
Elcira Ibarra
Elcira Ibarra
Estefany Salas
Facundo Martin Corengia
Adal Alberto Obregon Uribe
Bayron Sneider Arciniegas Aldana
Benjamin Allen Ramirez Horna
Thomas André Dale Guevara
Juan Gui Arenas
Dario Paladines
Marcos Avila Rodriguez
Benjamin Allen Ramirez Horna
Rolando Jose Lugo Palomino
Raul Romero
Larry Finol
Yuliani Paoleth Alcántara Galindo
Benjamin Allen Ramirez Horna
Jonathan David Olivos
Luisa María Franco Jiménez
Omar ali
Jazmin Ocampo Marin
Eddie Mora
Daniel Gallardo
Luis Enrique Carrera Valle
Juan Castro
Raul Romero
Abel Israel Romero Gonzalez
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
•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
Propiedades del Contenedor
Display Grid
Grid-template
Gaps
Grid-Auto
Casi me pierdo en ese poquito, lo importante es hacerlo para entender como funciona cada propiedad
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
.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*/ }
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; }
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
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:
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.
Así lo hice, me gustaría la opinión ed algún profesor de Platzi. Gracias. CSS
.contenedor { display: grid; background-color: whitesmoke; grid-auto-columns: 200px; grid-template-rows: 200px 200px 200px; gap: 20px; grid-auto-flow: column; } .item { display: flex; justify-content: flex-end; align-items: flex-end; } p { display: flex; justify-content: center; align-items: center; flex-basis: 20%; font-family: Arial, Helvetica, sans-serif; font-size: 3rem; color: white; font-weight: bold; margin: 0; } .item:nth-child(3n + 1) { background-color: #acd900; } .item:nth-child(3n + 2) { background-color: #71bc05; } .item:nth-child(3n + 3) { background-color: #258201; } .item:nth-child(3n + 1) p { background-color: #258501; } .item:nth-child(3n + 2) p { background-color: #258501; } .item:nth-child(3n + 3) p { background-color: #123a00; }
HTML
<!DOCTYPE html> <head> <link rel="stylesheet" href="./reto-style.css"> </head> <body> <div class="contenedor"> <div class="item"> <p>1</p> </div> <div class="item"> <p>2</p> </div> <div class="item"> <p>3</p> </div> <div class="item"> <p>4</p> </div> <div class="item"> <p>5</p> </div> <div class="item"> <p>6</p> </div> </div> </body> </html>
muy buen código, bien hecho
Me parece que esta clase tendria que ir antes.
Ya lo arreglamos :D
Qué velos sos @juan.
Mi diseño y su código XD
} .numero{ position: absolute; bottom:0; right: 0%; color: white; }