Nicola Zambello
Frontend developer @ RedTurtle
Studente @ UniFe
@nicolazambello
nzambello
nzambello @ italiajs.slack.com
😱
Per creare una griglia, la prima cosa da usare è:
display: grid;
La griglia è formata da righe e colonne.
I creati dalle intersezioni delle linee vengono chiamati tracks.
grid-template-columns
grid-template-rows
grid-template-columns: repeat(3, 1fr);
grid-template-rows: 50px 100px;
Esempio:
grid-gap
grid-gap: 10px;
Esempio:
<property>: nfr;
grid-template-columns: 1fr 2fr 1fr;
Esempio:
<property>: repeat(k, nfr);
grid-template-columns: repeat(3, 1fr);
Esempio:
Talk is cheap, show me the code.
̶ Linus Torvalds
grid-column-start: 2;
grid-column-end: 3;
grid-row: 1 / span 2;
grid-column: 1 / -1;
grid-template-areas
grid-area
grid-template-areas:
"h h h h h h h h h h h h"
"m c c c c c c c c c c c"
"f f f f f f f f f f f f";
grid-area: c;
Esempio:
display: grid;
definire tracks
fraction units
repeat()
posizionare elementi
grid-template-columns: repeat(auto-fit, 100px);
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
grid-auto-rows
grid-auto-rows: 100px;
Esempio:
grid-template-columns: [main-start] 1fr [content-start] 5fr [content-end main-end];
grid-template-rows: [main-start] 40px [content-start] auto [content-end] 40px [main-end];
Esempio:
justify-content
align-content
justify-items / justify-self
align-items / align-self
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
display: grid;
display: -ms-grid;
display: grid;
Workaround:
-ms-grid-columns: 75px 1fr 50px 50px;
-ms-grid-rows: 1fr 1fr 1fr;
grid-template-columns: 75px 1fr repeat(2, 50px);
grid-template-rows: 1fr 1fr 1fr;
grid-column-start: 3;
grid-column-end: 5;
grid-column: 3 / 5;
-ms-grid-column: 3;
-ms-grid-column-span: 2;
Workaround:
grid-gap
.grid-child {
&:not(:nth-child(n+4)) {
margin-bottom: 10px;
}
&:not(:nth-child(3n)) {
margin-right: 10px;
}
}
@supports (display: grid) {
.grid-child {
grid-gap: 10px;
margin-right: 0;
margin-bottom: 0;
}
}
Layout 2 dimensioni | Layout 1 dimensione |
Layout-first | Content-first |
Markup semplice, possibilità di spostare oggetti | Maggior flessibilità (inline) |
Quindi il senso della vita è il divertimento.
̶ Linus Torvalds