Hola de nuevo đ, Ahora Continuemos con nuestro tema de Sistema de Grillas Con Css!!
Una vez que sabemos como colocar correctamente nuestro sistema, ahora tenemos la tarea de como colocarle mas estilos especificos para que nos quede muy chevere!!
Ahora me explico:
âNosotros ya sabemos como agregar tantas columnas y tantas filas como queramos, pero aun falta definir como se comportan los mismos elementos dentro del sistema, para ello vamos a echarle un vistaso a estos nuevos estilos:
grid-column
grid-column-start
grid-column-end
grid-row
grid-row-start
grid-row-end
Oye, pero que haces esas cosas?, Muy facil, vamos a comenzar por âgrid-columnsâ:
ââgrid-columns-startâ nos permite fijar el inicio del âelemento o caja o celda (como mas te acomodes)â, es decir, desde donde comenzarĂĄ la columna.
ââgrid-columns-endâ nos permite fijar el final del âelementoâ, es decir, hasta donde finalizara la columna.
SĂ nosotros ya tenemos definida nuestro sistema de grillas en HTML:
<div class="grids">
<div class="caja caja-1">1</div>
<div class="caja">2</div>
<div class="caja">3</div>
<div class="caja">4</div>
<div class="caja caja-5">5</div>
<div class="caja">6</div>
<div class="caja">7</div>
<div class="caja">8</div>
<div class="caja caja-9">9</div>
<div class="caja">10</div>
<div class="caja">11</div>
<div class="caja caja-12">12</div>
</div>
Y que posiblemente nos quede algo como esto:
|---|---|---|---|
| x | x | x | x |
|---|---|---|---|
| x | x | x | x |
|---|---|---|---|
| x | x | x | x |
|---|---|---|---|
| x | x | x | x |
|---|---|---|---|
Podemos notar, que ademas de la clase âcajaâ, que es la clase que nos permitio agregarle estilos hogareños a cada âelementoâ, aparte tambien definimos una clase mas que llame âclase-nâ (con ânâ me refiero a un numero) lo cual nos ayudara con este nuevo estilo que les estoy comentando:
.caja-1{
grid-column-start: 1;
grid-column-end: 3;
}
Pero, que rayos es eso?, te explico:
âAl indicar que la clase âcaja-1â tiene esos nuevos estilos, indicamos que con âgrid-column-start: 1;â este âelemento o cajaâ iniciara desde la primera posiciĂłn; muy bien?, ya lograras entender mejor!.
âY al colocar âgrid-column-endâ estamos declarando que este mismo elemento terminara en la tercera posiciĂłn; ahora te quedo bastante claro?.
Y nos tendra que quedar algo como esto:
|---|---|---|---|
| X | x | x |
|---|---|---|---|
| x | x | x | x |
|---|---|---|---|
| x | x | x | x |
|---|---|---|---|
| x | x | x | x |
|---|---|---|---|
Ahora que ya agrego un poco mas de esque demostrativo, ya te quedan mejor las ideas no? đ
Bueno, podras observar que la clase âcaja-1â ahora abarca 2 espacios!, pero ahora entras en duda, por que?, ahi viene tu pregunta:
âPero que no habias declarado que iniciabas en la âceldaâ 1 y terminabas en la âceldaâ 3?, que no te quedaria algo asi:
|---|---|---|---|
| X | x |
|---|---|---|---|
| x | x | x | x |
|---|---|---|---|
| x | x | x | x |
|---|---|---|---|
| x | x | x | x |
|---|---|---|---|
Pero bueno, es aqui donde te preguntaba si habia quedado muy claro con el tema?, no?, bueno, aqui te viene la explicaciĂłn de por que nos es como tu lo pensaste:
Primero que nada debo dejar este tema muy claro:
âEl sistema de Grillas Css, sabemos que podemos colocar tantas filas como columnas deseemos, pero te preguntaras, como es que de definen los lugares?, es algo facil de entender como una variable âArrayâ, Me explico:
Al nosotros declara nuestro sistema de Grillas con âgrid-template-columnsâ con 4 columnas y âgrid-template-rowsâ con 4 filas nos vendria quedando algo asi:
1 2 3 4 5
1|---|---|---|---|
| x | x | x | x |
2|---|---|---|---|
| x | x | x | x |
3|---|---|---|---|
| x | x | x | x |
4|---|---|---|---|
| x | x | x | x |
5|---|---|---|---|
Muy bien (me diverti haciendo ese esquemita đ), vamos a representar que las âXâ son las âcajas o celdasâ, ok?, vamos despacito!
âY por que los numeros?, bien, lo que quiero explicar aqui es que en el sistema se cuentan las lineas de colisiĂłn, me explico:
Nosotros vemos que coloque en la cuadricula unos numero que van desde el 1 al 5, tando de forma vertical como horizontal, esos numero son los que tomamos en cuenta cuando utilizamos los estilos antes mencionados que son âgrid-column-startâ y âgrid-column-endâ, para que queda mas claro te lo explico mas deees⊠paaa⊠cito!!
Ejemplo:
âNosotros al colocar âgrid-column-start: 1;â estamos diciendo que va iniciar en el primer espacio no?, pues ahora ubica el primer espacio o ya entrando con el tema, iniciamos contando desde la primera âlineaâ:
|
v
1 2 3 4 5
1|---|---|---|---|
| x | x | x | x |
2|---|---|---|---|
âY tambien colocamos nuestro segundo estilo âgrid-column-endâ con el cual mencionabamos mi chato! que iba a terminar en la tercera posiciĂłn, pero ahora le vamos a llamar en la âtercera lineaâ:
| |
v v
1 2 3 4 5
1|---|---|---|---|
| x | x | x | x |
2|---|---|---|---|
âY para finalizar ya te habras dado cuenta que que nuestro grid queda como ya antes lo comente!:
| |
v v
1 2 3 4 5
1|---|---|---|---|
| X | x | x |
2|---|---|---|---|
| x | x | x | x |
3|---|---|---|---|
| x | x | x | x |
4|---|---|---|---|
| x | x | x | x |
5|---|---|---|---|
âEsta Palabra đâ
Muy bien, ahora ya entendiste!!! Ves que es muy sencillo, es muy similar a como se cuentan los âespacios o lugares o posicionesâ dentro de un âArrayâ, pero si no te quedo claro, regresate unos 6 parrafos arriba y vuelve a chutar (leer) desde ese punto hasta âesta palabraâ đ
Perfecto!, ahora sabes como hacerle para que una âceldaâ abarque mas espacios!, pero ahora te estaras preguntando!, Oye Carnal y que onas con tus estilos de âgrid-row-startâ y con el âgrid-row-endâ, hee carnal, que pasa con ellos, hee? đ
Bueno, pues como lo dije alguna vez, Es el mismo huevo estrellado pero volteado!
Te reto a que utilizes utilices los estilos de âgrid-row-startâ y âgrid-row-endâ con la clase âcaja-5â y ahi me platicas que es lo que viste de extraño en la grilla!
Pero no te apures, aun me falta unos estilos que a lo mejor ya se te olvidaron:
grid-column
grid-row
Pues que crees?, como ya hablamos de âgrid-column-starâ y âgrid-column-endâ, y los mismo para ârowâ, ahora te comento que hay una manera de resumir esos dos estilos en una sola linea!
Pues claro, con sus respectivos estilos!, ahi te va el ejemplo, checate!!:
.caja-5{
grid-column: 1 / 3;
}
đź Que paso aqui mijo?
Como lo decia âgrid-columnâ y âgrid-rowâ es la version simplificada de las dos lineas de âstart y endâ, lo cual nos permite colocar en una sola linea el inicio y el fin de la âceldaâ, me explico:
.caja-5{
grid-column: /* Linea de Inicio / Linea de Cierre */;
}
Simplemente colocamos el numero de la linea donde queremos que inicie y el numero de la linea final donde queremos que finalice, cabe recalcar que para separar estos numeros de inicio y final lo hacemos con una âBarra Diagonal (/)â, facil no?, te lo dejo mas claro:
Esto:
.caja-5{
grid-column: 1 / 3;
}
Es lo mismo que esto:
.caja-5{
grid-column-start: 1;
grid-column-end: 3;
}
Y que Ondas con el âgrid-rowâ carnal?, pues te lo repito, ES LO MISMO PERO VOLTEADO!!
Te reto a que cambies lo que realizaste con âgrid-row-start y âŠ-endâ por âgrid-rowâ, sera tan sencillo como quitarle la dentadura a un abuelo!
Muy bien ahora vamos agregarle una pequeña propiedad para que podamos rompernos un poco mas nuestra cabeza!
Como ya mencione antes, podemos utilizar la version simplificada de âgrid-columnâ o âgrid-rowâ, lo cual nos permite colocar el inicio y el final de las celdas, pero te preguntaras:
Que pasa si quiero que mi celda tambien abarque la âcasilla o espacioâ 3 de la grilla?
Vamos a tomar el Ejemplo que teniamos con la clase âcaja-5â:
âTendriamos que colocar la sintaxis de la siguente manera:
.caja-5{
grid-column: 1 / 4;
}
Y nos quedaria de la siguiente manera:
| |
v v
1 2 3 4 5
1|---|---|---|---|
| X | x |
2|---|---|---|---|
| x | x | x | x |
3|---|---|---|---|
| x | x | x | x |
4|---|---|---|---|
| x | x | x | x |
5|---|---|---|---|
âComo puedes observar, ahora esta finalizando la âceldaâ hasta la linea 4, lo que por defecto nos esta dando el resultado que nosotros queremos, no?
Pero que pasa sĂ ahora te comento que exite una forma distinta de hacer lo mismo, y lograrias que tu lĂłgica que tenias al iniciar con el tema sea VERDARERA, te lo explico rapido:
âNosotros para lograr el mismo resultado, tambien podemos colocar el valor de âspanâ antes del numero que indicamos para finalizar la âceldaâ: ejemplo:
Esto:
.caja-5{
grid-column: 1 / 4;
}
Seria lo mismo que colocar:
.caja-5{
grid-column: 1 / span 3;
}
Ahora entiendes mejor?, lo que hacemos con el atributo âspanâ es indicar que no finalize en la final numero 3:
| |
v v
1 2 3 4 5
1|---|---|---|---|
| X | x | x |
2|---|---|---|---|
| x | x | x | x |
3|---|---|---|---|
| x | x | x | x |
4|---|---|---|---|
| x | x | x | x |
5|---|---|---|---|
SĂ no que finalize ABARCANDO el espacio 3:
| |
v v
1 2 3 4 5
1|---|---|---|---|
| X | x |
2|---|---|---|---|
| x | x | x | x |
3|---|---|---|---|
| x | x | x | x |
4|---|---|---|---|
| x | x | x | x |
5|---|---|---|---|
Mejor?, ahora podemos declarar de forma que entendamos mejor el como abarcan las âceldasâ dentro de la grilla (o por lo menos asi me queda claro a mi đ).
Bueno, seguimos con el tema, ahora te explico algo muy facil:
âNosotros podemos combinar tanto âgrid-columnâ con âgrid-rowâ, pero hay que ser cuidadosos con este tema, por que de la manera mas facil (o por lo menos lo mas logico que se ve) es que SIEMPRE tienes que formas cuadros o rectangulos, NADA DE HACER cosas raras como âLâ o âTâ, ejemplo:
.caja-5{
grid-column: 1 / span 2;
grid-row: 1 / 4;
}
Que vamos a lograr con esto:
| |
v v
1 2 3 4 5
-->1|---|---|---|---|
| | x | x |
2| |---|---|
| X | x | x |
3| |---|---|
| | x | x |
-->4|---|---|---|---|
| x | x | x | x |
5|---|---|---|---|
Me explico:
Con âgrid-column: 1 / span 2;â estamos indicando que incie desde la primera âlineaâ y que finalize abarcando el espacio 2! con esto abarca dos columnas enteras!
Y con âgrid-row: 1 / 4;â indicamos que inicie desde la âlineaâ 1 y que finalize en la âlineaâ 4, abarcando solamente los espacios de 3 filas!
Te reto a que pracriques por tu cuenta y veas como obtienes el Siguente resultado:
| |
v v
1 2 3 4 5
1|---|---|---|---|
| x | x | x | x |
-->2|---|---|---|---|
| x | | x |
3|---| X |---|
| x | | x |
-->4|---|---|---|---|
| x | x | x | x |
5|---|---|---|---|
Y bueno esto a sido todo por el momento, espero les alla ayudado mucho mas a completar su propio sistema de grilla de Css y seguir aprendiendo sobre CSS Grids, cabe recalcar que la practica hace al maestro!
Saludos.
Lenin Felix.
Curso de CSS Grid Layout 2017