22
Interaktive Medien 1. Semester Martin Vollenweider Layout im Web — CSS Grid Interaktive Medien 1. Semester, Martin Vollenweider 26.07.2020

Interaktive Medien 1. Semester Martin Vollenweider · 2019-09-04 · 4 Unterschiede Grid und Flexbox 1. Das CSS Grid Layout ist zweidimensional (horizontal und vertikal; resp. Spalten

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Interaktive Medien 1. Semester Martin Vollenweider · 2019-09-04 · 4 Unterschiede Grid und Flexbox 1. Das CSS Grid Layout ist zweidimensional (horizontal und vertikal; resp. Spalten

Interaktive Medien 1. Semester Martin Vollenweider

Layout im Web — CSS Grid

Interaktive Medien 1. Semester, Martin Vollenweider

26.07.2020

Page 2: Interaktive Medien 1. Semester Martin Vollenweider · 2019-09-04 · 4 Unterschiede Grid und Flexbox 1. Das CSS Grid Layout ist zweidimensional (horizontal und vertikal; resp. Spalten

2

Layouten mit CSS – CSS Grid

Page 3: Interaktive Medien 1. Semester Martin Vollenweider · 2019-09-04 · 4 Unterschiede Grid und Flexbox 1. Das CSS Grid Layout ist zweidimensional (horizontal und vertikal; resp. Spalten

3

Aufbau

Page 4: Interaktive Medien 1. Semester Martin Vollenweider · 2019-09-04 · 4 Unterschiede Grid und Flexbox 1. Das CSS Grid Layout ist zweidimensional (horizontal und vertikal; resp. Spalten

4

Unterschiede Grid und Flexbox 1. Das CSS Grid Layout ist zweidimensional (horizontal und vertikal; resp. Spalten

und Zeilen). Flexbox ist eindimensional (horizontal oder vertikal; resp. Spalten oder Zeilen).

2. CSS Grid entspricht dem Vorgehen Layout first. Flexbox entspricht dem Vorgehen Inhalt first.

3. In einem Grid-Container kann ein Flexbox-Container platziert werden. Umgekehrt ist das nicht möglich

Quelle

Page 5: Interaktive Medien 1. Semester Martin Vollenweider · 2019-09-04 · 4 Unterschiede Grid und Flexbox 1. Das CSS Grid Layout ist zweidimensional (horizontal und vertikal; resp. Spalten

5

Inhalt first (Flex) vs Layout first (Grid)

Obiges Beispiel

Page 6: Interaktive Medien 1. Semester Martin Vollenweider · 2019-09-04 · 4 Unterschiede Grid und Flexbox 1. Das CSS Grid Layout ist zweidimensional (horizontal und vertikal; resp. Spalten

6

Aufbau der HTML-Struktur

Im Grid-Container wird festgelegt, dass die untergeordneten Elemente (Grid-Items) dem Grid-Muster folgen.

Weitere verschachtelte Elemente (Inhalt) sind davon nicht betroffen.

Page 7: Interaktive Medien 1. Semester Martin Vollenweider · 2019-09-04 · 4 Unterschiede Grid und Flexbox 1. Das CSS Grid Layout ist zweidimensional (horizontal und vertikal; resp. Spalten

7

Wichtigste Befehle im Grid-Container display: grid; grid-template-columns: 1fr 1fr 2fr; oder grid-template-columns: repeat(4, 250px); grid-column-gap: 2vw; grid-template-rows: 50px 200px; oder grid-auto-rows: 100px; /*auto für autom Höhen*/ grid-row-gap: 5px; oder grid-gap: 5px; /* selber hori und verti Gap */

Einheiten (nur für Grid) Neue CSS Einheit: fr (für Fraction) = übrigbleibender Rest

Page 8: Interaktive Medien 1. Semester Martin Vollenweider · 2019-09-04 · 4 Unterschiede Grid und Flexbox 1. Das CSS Grid Layout ist zweidimensional (horizontal und vertikal; resp. Spalten

8

Möglichkeit 1: Bereiche zusammenfassen mit Areas:

<div class="wrapper"> <div id="areaHeader">Das ist der Header</div> <div id="areaNavi">Das ist die Navigation</div> <div id="areaContent1">Content1 2 Spalten</div> <div id="areaContent2">Content2 2 Reihen, 2 Spalten</div> </div>

.wrapper { display: grid; grid-row-gap: 5px; grid-column-gap: 5px; grid-template-columns: 1fr 1fr 1fr 1fr; grid-template-rows: 1fr 1fr 1fr 1fr 1fr 1fr 1fr; }

Page 9: Interaktive Medien 1. Semester Martin Vollenweider · 2019-09-04 · 4 Unterschiede Grid und Flexbox 1. Das CSS Grid Layout ist zweidimensional (horizontal und vertikal; resp. Spalten

9

/* grid-area: Row Start / Column Start / Row End / Column End; */ #areaHeader { grid-area: 1 / 1 / 2 / 5; } #areaNavi { grid-area: 2 / 1 / 8 / 2; } #areaContent1 { grid-area: 2 / 2 / 3 / 4; } #areaContent2 { grid-area: 3 / 2 / 5 / 4; }

Page 10: Interaktive Medien 1. Semester Martin Vollenweider · 2019-09-04 · 4 Unterschiede Grid und Flexbox 1. Das CSS Grid Layout ist zweidimensional (horizontal und vertikal; resp. Spalten

10

Möglichkeit 2: Bereiche zusammenfassen mit Areas und Namen

<div class="wrapper"> <div id="areaHeader">Das ist der Header</div> <div id="areaNavi">Das ist die Navigation</div> <div id="areaContent1">Content1 2 Spalten</div> <div id="areaContent2">Content2 2 Reihen, 2 Spalten</div> </div>

.wrapper { display: grid; grid-row-gap: 5px; grid-column-gap: 5px; grid-template-columns: 1fr 1fr 1fr 1fr; grid-template-rows: 1fr 1fr 1fr 1fr 1fr 1fr 1fr;

Page 11: Interaktive Medien 1. Semester Martin Vollenweider · 2019-09-04 · 4 Unterschiede Grid und Flexbox 1. Das CSS Grid Layout ist zweidimensional (horizontal und vertikal; resp. Spalten

11

grid-template-areas: /* Der Punkt (.) bedeutet: kein Inhalt */ "header header header header" "navi content1 content1 . " "navi content2 content2 . " "navi content2 content2 . " "navi . . . " "navi . . . " "navi . . . "; }

#areaHeader { grid-area: header; } #areaNavi { grid-area: navi; } #areaContent1 { grid-area: content1; } #areaContent2 { grid-area: content2; }

Page 12: Interaktive Medien 1. Semester Martin Vollenweider · 2019-09-04 · 4 Unterschiede Grid und Flexbox 1. Das CSS Grid Layout ist zweidimensional (horizontal und vertikal; resp. Spalten

12

Möglichkeit 3: Grid-Items vebinden

<div class="wrapper"> <div id="areaHeader">Das ist der Header</div> <div id="areaNavi">Das ist die Navigation</div> <div id="areaContent1">Content1 2 Spalten</div> <div id="areaContent2">Content2 2 Reihen, 2 Spalten</div> </div>

.wrapper { display: grid; grid-row-gap: 5px; grid-column-gap: 5px; grid-template-columns: 1fr 1fr 1fr 1fr; grid-template-rows: 1fr 1fr 1fr 1fr 1fr 1fr 1fr; }

Page 13: Interaktive Medien 1. Semester Martin Vollenweider · 2019-09-04 · 4 Unterschiede Grid und Flexbox 1. Das CSS Grid Layout ist zweidimensional (horizontal und vertikal; resp. Spalten

13

/* grid-area: Row Start / Column Start / Row End / Column End; */

#areaHeader {

grid-column: 1 / span 4; /* Beginn Col 1, 4 Cols verbunden */

}

#areaNavi {

grid-row: 2 / span 6;

}

#areaContent1 {

grid-row: 2 / span 1;

grid-column: 2 / span 2;

}

#areaContent2 {

grid-row: 3 / span 2;

grid-column: 2 / span 2;

} Auch möglich: grid-row-end: span 2; /* nur Ende */

Page 14: Interaktive Medien 1. Semester Martin Vollenweider · 2019-09-04 · 4 Unterschiede Grid und Flexbox 1. Das CSS Grid Layout ist zweidimensional (horizontal und vertikal; resp. Spalten

14

Übung 0 Das Layout soll folgendermassen aussehen:

Übung 0 (layout_grid_00_unfertig.html)

Fertiges Beispiel Übung 0 (layout_grid_00.html)

Erklärung

Element B geht über zwei Spalten (grid-column: 2 / 4; oder grid-column: 2 / span 2;)

Element A geht über zwei Zeilen (grid-row: 1 / 3; oder grid-row: 1 / span 2;)

Page 15: Interaktive Medien 1. Semester Martin Vollenweider · 2019-09-04 · 4 Unterschiede Grid und Flexbox 1. Das CSS Grid Layout ist zweidimensional (horizontal und vertikal; resp. Spalten

15

Übung 1 Übung 1 (layout_css_grid_01_unfrtig.html). Layout:

Fertiges Beispiel 1 (layout_css_grid_01.html)

Übung 2 Übung 2 (layout_css_grid_02_unfertig.html). Layout:

Fertiges Beispiel 2 (layout_css_grid_02.html)

Page 16: Interaktive Medien 1. Semester Martin Vollenweider · 2019-09-04 · 4 Unterschiede Grid und Flexbox 1. Das CSS Grid Layout ist zweidimensional (horizontal und vertikal; resp. Spalten

16

Übung 3 Übung 3 (layout_css_grid_03_unfertig.html). Layout:

Linker und rechter Rand sind je 2.85vw, die Spaltenbreiten 5.75vw und die Abstände dazwischen 2.3vw breit. Die Navigation ist 50px, das Moodbild 100px und die Kategorien 200px hoch. Der Abstand unterhalb Navigation und Moodbild sind 20px.

Page 17: Interaktive Medien 1. Semester Martin Vollenweider · 2019-09-04 · 4 Unterschiede Grid und Flexbox 1. Das CSS Grid Layout ist zweidimensional (horizontal und vertikal; resp. Spalten

17

Fertiges Beispiel Übung 3 Beispiel 3 (layout_css_grid_03.html)

Mobile Darstellung Desktop Darstellung

Page 18: Interaktive Medien 1. Semester Martin Vollenweider · 2019-09-04 · 4 Unterschiede Grid und Flexbox 1. Das CSS Grid Layout ist zweidimensional (horizontal und vertikal; resp. Spalten

18

Hilfsmittel und Tools Tool von Nina Gässli (Bachelorarbeit 2019)

Page 21: Interaktive Medien 1. Semester Martin Vollenweider · 2019-09-04 · 4 Unterschiede Grid und Flexbox 1. Das CSS Grid Layout ist zweidimensional (horizontal und vertikal; resp. Spalten

21

Inhaltsverzeichnis Layouten mit CSS – CSS Grid ............................................................................................ 2

Aufbau .............................................................................................................................. 3

Unterschiede Grid und Flexbox ...................................................................................... 4

Inhalt first (Flex) vs Layout first (Grid) .......................................................................... 5

Aufbau der HTML-Struktur ............................................................................................. 6

Wichtigste Befehle im Grid-Container ........................................................................... 7

Einheiten (nur für Grid) ................................................................................................... 7

Möglichkeit 1: Bereiche zusammenfassen mit Areas: ................................................ 8

Möglichkeit 2: Bereiche zusammenfassen mit Areas und Namen .......................... 10

Möglichkeit 3: Grid-Items vebinden ............................................................................. 12

Übung 0 .......................................................................................................................... 14

Übung 1 .......................................................................................................................... 15

Page 22: Interaktive Medien 1. Semester Martin Vollenweider · 2019-09-04 · 4 Unterschiede Grid und Flexbox 1. Das CSS Grid Layout ist zweidimensional (horizontal und vertikal; resp. Spalten

22

Übung 2 .......................................................................................................................... 15

Übung 3 .......................................................................................................................... 16

Fertiges Beispiel Übung 3 ............................................................................................. 17

Hilfsmittel und Tools ..................................................................................................... 18