Jugant amb CSS Grid — Alineació

CSS temporada 1 capítol 6

Calidae Blog
Published in
4 min readNov 10, 2017

--

Aquest és el sisè article d’una sèrie d’articles dedicats al CSS Grid:

  1. Introducció
  2. Gap
  3. Start/end
  4. Responsive
  5. Àrees
  6. Alineació

En aquest darrer article tractarem les últimes propietats que ens falta per veure:justify-content align-content justify-items align-items justify-self align-self.

Com ja podeu imaginar serveixen per justificar i alinear els elements dins les àrees del Grid.

Però abans de començar cal recordar que el nostre Grid és molt molón 😜 i automàtic, i s’adapta sol a la mida del seu contenidor.

No crearé uns modificadors per al nostre codi CSS, que a mi en realitat ja m’agrada que aquest ocupi sempre tot l’espai disponible i controlar per un altra banda com és comporta aquest contenidor.

Per tant, si volem jugar a justificar un Grid primer haurem de crear-ne un sense mides de fraccions i deixar el valor de la mida a “auto”.

display: grid;
grid-template-columns: repeat(5, auto);
grid-template-rows: repeat(2, auto);
/* Una mica d'estil i alçada per veure l'exemple */
border: solid 1px #ccc;
height: 100px;

Ara si, podem començar amb justify-content i align-content, que serviran per justificar i alinear tot el Grid en si mateix.

Amb el marge de color gris veiem l’espai que ocupa en realitat el Grid encara que estigui buit per l’alineació i la justificació.

Justificant i alineant al inici
Justificant i alineant al final
Justificant i alineant al centre 😘
Justificant i alineant per omplir l’espai disponible
Justificant i alineant amb espais al voltant de cada element
Justificant i alineant amb espai entre els elements
Justificant i alineant amb el mateix espai entre elements i als costats 😙

Segur que t’ha agradat el valor center i que has pensat la possibilitat de centrar textos o blocs html dins d’un espai utilitzant només CSS Grid. Enhorabona: podràs fer-ho!

/* Definimun bloc quadrat de 300px per l'exemple... */
border: solid 1px #ccc;
width: 300px;
height: 300px;
/* ...i el convertim en un Grid */
display: grid;
justify-content: center;
align-content: center;
Una bona manera de centrar el contingut verticalment de forma fàcil i automàtica

Les possibilitats en CSS com sempre acostumen a ser enormes, dependrà de tu el suc que li puguis treure.

Juguem ara amb els elements del Grid

D’això sí que en podríem fer classes modificadores pels nostre component, però t’ho deixo a tu i així no t’ho dono tot mastegat 😉

Utilitzarem les propietatsjustify-items i align-items, que afecten a la justificació i l’alineació de cada element intern:

/* Fem un grid amb mides absolutes de 4 blocs quadrats de 200px repartits en dues files i dues columnes*/
display: grid;
grid-template-columns: repeat(2, 200px);
grid-template-rows: repeat(2, 200px);
Aquestes propietats s’assignen directament a l’element dins el grid

No cal dir que les propietats es poden combinar com vulguem:

Combinem justificacions i alineacions diferents

De fet, a l’hora de combinar alineació i justificació es pot fer tant a nivell del Grid com a nivell de cada element, perquè la propietat justify sempre defineix l’espai i posició que ocupa d’esquerra a dreta, i la propietat align ho fa verticalment de dalt a baix.

Aquí us deixo un codepen amb les diferents alineacions que admet un element dins un Grid.

Si encara us queda algun dubte sobre CSS Grid podeu deixar comentaris, que intentaré resoldre tot el que pugui i sàpiga.

--

--

Calidae Blog

Ser bona persona en aquest món ja és prou complicat com per aspirar a més coses, però no deixaré d’intentar-ho.