Guia Css Grid Ow
Guia Css Grid Ow
CSS Grid
Índice de
contenidos
1 Qué es CSS Grid
-
5 Propiedades relacionadas
con los hijos de la grilla
Página 3 -
Página 14
Página 3
Maqueta Webs Profesionales con
CSS Grid
2 Soporte de los navegadores
para CSS Grid
Actualmente, CSS Grid es soportado ampliamente por
los navegadores, entre los más usados y conocidos
podemos destacar a: Chrome
● Google Chrome que lo soporta completamente desde
su versión 57.
Edge
Safari
Página 5
Maqueta Webs Profesionales con
CSS Grid
3 ¿CSS Grid o flexbox?
Flexbox, por si no lo conoces es otro sistema de CSS, ● La manera de estructurar el contenido: Flexbox usa un
que nos permite modelar casi cualquier contenido de contenedor flexible y CSS Grid un espacio de columnas
una manera flexible y casi responsive por defecto. y filas.
La encrucijada llega cuando tenemos que elegir entre ● Flexbox, al ser por defecto flexible nos ahorra mucho
estos dos sistemas, y creo que es importante aprender trabajo en Responsive Design, si revisas el eBook sobre
ambos y hacer ejemplos con ellos ya que aportan Flexbox descubrirás las pocas líneas que necesitamos
soluciones diferentes, y una tecnología estará más para hacer nuestro landing compatible con todos los
recomendada para un caso que para otro. dispositivos. En el caso de CSS Grid, al ser una tecnología
actual y orientada a todos los dispositivos también nos
Flexbox, se diferencia de CSS Grid en diversos aspectos, facilitará este aspecto, pero no tanto.
algunos de ellos son:
Página 7
Maqueta Webs Profesionales con
CSS Grid
4 Propiedades que afectan
a la grilla
grid-template-column Ejemplo de uso de grid-template-row y
grid-template-column
Esta propiedad, como su propio nombre indica nos
permite definir las columnas que va a tener la grilla. Código:
grid-template-row
Página 9
Maqueta Webs Profesionales con
CSS Grid
grid-template-areas:
“Cabecera Cabecera Cabecera Cabecera”
“principal principal . barralateral”
“pie pie pie pie”;
Página 10
4 Propiedades que afectan
a la grilla
grid-template
.contenedor {
grid-template:
[row1-start] “cabecera cabecera cabecera” 25px [row1-end]
[row2-start] “pie pie pie” 25px [row2-end] / auto 50px auto;
}
.container {
grid-template-rows: [row1-start] 25px [row1-end row2-start] 25px [row2-end];
grid-template-columns: auto 50px auto;
grid-template-areas:
“cabecera cabecera cabecera”
“pie pie pie”;
}
Página 11
Maqueta Webs Profesionales con
CSS Grid
Página 12
Maqueta Webs Profesionales con
CSS Grid
5 Propiedades relacionadas
con los hijos de la grilla
grid-column Ejemplo: Una fila con clase “filita” que acabe en un
espacio anterior:
Esta propiedad nos permitirá definir dónde comienza la
columna o la extensión que puede tener. Es interesante
para cuando queremos hacer la excepción con un solo .filita {
hijo: grid-column: 1 / -1;
}
Ejemplo: Una columna con clase “columnita” que ocupa 5
columnas normales: Ejemplo: Una fila con la clase “filita” que acabe en dos
espacios más(otra manera de hacerlo):
.columnita {
grid-column: 1 / 5; .columnita {
} grid-column: 1 / span 2;
}
Ejemplo: Una columna con clase “columnita” que
comience desde la tercera columna:
grid-area
.columnita {
grid-column: 3; Esta propiedad se la asignaremos a los elementos que
} queramos que estén dentro de un área en concreto.
.header {
grid-row grid-area: header;
}
Con esta propiedad, definiremos la extensión así como
el comienzo o fin de una fila, tal y como en la propiedad
anterior.
Página 14
Maqueta Webs Profesionales con
CSS Grid
7 Ejemplo práctico:
Maquetando la red social de
alumnos de OpenWebinars
Página 18
7 Ejemplo práctico:
Maquetando la red social de
alumnos de OpenWebinars
Como habrás visto, aplicamos a cada imagen una clase
ya que la grilla tiene ciertas características especiales .grid-space {
como que el primer elemento se dispone a lo largo de display: grid;
la primera fila y el segundo elemento ocupa el doble del grid-template: repeat(2, 50vh) /
resto de elementos de la segunda fila. repeat(5, 20vw);
grid-template-areas: “best_photo best_
Aplicando las diferentes grillas photo best_photo best_photo best_photo”
“big_photo big_
Nuestra grilla, como comentábamos, se compone de photo photo_3 photo_4 photo_5”;
dos filas y cinco columnas. Un elemento clave será la width: 100vw;
definición del grid-template-area para poder }
disponer las imágenes tal y como hemos comentado en .best {
el paso anterior. background: url(‘./img/typing.jpg’);
background-position: center;
background-size: 100%;
grid-area: best_photo;
}
.big {
background: url(‘./img/student_
developing.jpg’);
background-position: center;
grid-area: big_photo;
}
.photo-3 {
background: url(‘./img/student_laptop.
jpg’);
background-position: center;
grid-area: photo_3;
width: 100%;
}
Página 19
Maqueta Webs Profesionales con
CSS Grid
7 Ejemplo práctico:
Maquetando la red social de
alumnos de OpenWebinars
.photo-4 { <img src=”./img/profile/2.jpg”
background: url(‘./img/typing_ />
spreadsheet.jpg’); <h3>Andrea Casas</h3>
background-position: center; </div>
grid-area: photo_4; </div>
width: 100%; </div>
} <div class=”grid-item photo-3”>
.photo-5 { <div class=”photo-info”>
background: url(‘./img/student_surfing. <div class=”photo-info-user”>
jpg’); <img src=”./img/profile/3.jpg”
background-position: center; />
grid-area: photo_5; <h3>Iker Pascual</h3>
width: 100%; </div>
} </div>
</div>
<div class=”grid-item photo-4”>
Añadiendo el componente de <div class=”photo-info”>
información <div class=”photo-info-user”>
<img src=”./img/profile/2.jpg”
Una vez tenemos creada la grilla, vamos a añadir a cada />
elemento una pequeña estructura HTML con la que <h3>Andrea Casas</h3>
crearemos un componente para dar información sobre </div>
cada imagen: </div>
</div>
<div class=”grid-item best”> <div class=”grid-item photo-5”>
<div class=”photo-info”> <div class=”photo-info”>
<div class=”photo-info-user”> <div class=”photo-info-user”>
<img src=”./img/profile/1.jpg” <img src=”./img/profile/3.jpg”
/> />
<h3>Raquel Caballero</h3> <h3>Iker Pascual</h3>
</div> </div>
</div>
</div>
<div class=”grid-item big”>
<div class=”photo-info”>
<div class=”photo-info-user”>
Página 20
7 Ejemplo práctico:
Maquetando la red social de
alumnos de OpenWebinars
</div>
</div> .best .photo-info .photo-info-user {
grid-template-columns: 5% 95%;
.grid-item { }
align-items: end; /* Con este código
estableceremos el componente en el margen .photo-info .photo-info-user h3 {
inferior del componente */ grid-area: info_user_text;
display: grid; }
}
.photo-info .photo-info-user img {
.photo-info { border-radius: 50%;
align-items: center; height: 50px;
background: rgba(255, 255, 224, 0.8); grid-area: info_user_photo;
bottom: 0; max-height: initial;
display: none; width: 50px;
grid-template-areas: “info_user”; }
grid-template-columns: 100%;
}
Como puedes apreciar en el código CSS hemos
.grid-item:hover .photo-info { establecido una grilla también para este componente,
display: grid; donde las dos columnas de la única fila está repartida en
} un 30% y un 70%.
.photo-info .photo-info-user {
align-items: center;
display: grid;
grid-area: info_user;
grid-template-areas: “info_user_photo
info_user_text”;
grid-template-columns: 30% 70%;
margin-left: 1rem;
}
Página 21
Maqueta Webs Profesionales con
CSS Grid
8 Conclusiones finales
Página 23
¿Quieres llevar un paso más allá tus
conocimientos en maquetación web?
Aprende a maquetar tu Web de forma fácil
y profesional con Flexbox y CSS grid
Más en openwebinars.net