CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout »...

46
CSS GRID LAYOUT CSS GRID LAYOUT und wie es in der Praxis funktioniert und wie es in der Praxis funktioniert #CONTAOKONFERENZ18 – JANOSCH OLTMANNS #CONTAOKONFERENZ18 – JANOSCH OLTMANNS

Transcript of CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout »...

Page 1: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

CSS GRID LAYOUTCSS GRID LAYOUTund wie es in der Praxis funktioniertund wie es in der Praxis funktioniert

#CONTAOKONFERENZ18 – JANOSCH OLTMANNS#CONTAOKONFERENZ18 – JANOSCH OLTMANNS

Page 2: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

ROADMAPROADMAPHintergrund-Theorie»Container-Eigenschaften»Zell-Eigenschaften»Vor- und Nachteile»Live-Einsatz»…»

Page 3: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

Janosch OltmannsJanosch Oltmanns

#Frontend #Performance

#Online-Software-Entwicklung #Agile Prozesse#Münsterland

Page 4: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

THEORIETHEORIE

Page 5: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

GRID GRID UND/ODERUND/ODER FLEXBOX FLEXBOXFlexboxFlexbox

CSS Grid LayoutCSS Grid Layout

eindimensional (horizontal oder vertikal)»

zweidimensional (horizontal und vertikal)»

Page 6: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

BEGRIFFE (TERMINOLOGY)BEGRIFFE (TERMINOLOGY)

Page 7: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

GRID CONTAINERGRID CONTAINERDas Element, auf das display:grid; angewendet

wird.Der umgebende Container.

Page 8: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

GRID ITEMGRID ITEMDie Kind-Elemente des Grid-Containers.

Page 9: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

GRID LINEGRID LINEDie virtuellen Trennlinien an jeder Seite einer

Spalte oder Zeile.Können sowohl vertikal als auch horizontal sein.

Page 10: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

GRID TRACKGRID TRACKDer Bereich zwischen zwei Grid-Lines

Page 11: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

GRID CELLGRID CELLDer Bereich der eine einzelne Zelle bildet, also von

4 Grid-Lines eingeschlossen wird.

Page 12: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

GRID AREAGRID AREADer Bereich eines Grids, der aus mehreren Grid

Cells bestehen kann und eine zusammenhängendeEinheit bildet.

Page 13: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

BEGRIFFEBEGRIFFEGrid Container»Grid Item»Grid Line»Grid Track»Grid Cell»Grid Area»

Page 14: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

Ein Grid lässt sich immer für ein Element und diedirekten Kind-Elemente de�nieren.

Page 15: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

<div class="wrapper"> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div></div>

Page 16: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

<div class="wrapper"> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div></div>

.wrapper:before { content: ''; } .wrapper:after { content: ''; }

Page 17: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

GENERELLEGENERELLEFUNKTIONSWEISEFUNKTIONSWEISE

Page 18: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

<div class="wrapper"> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div></div>

Page 19: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

.wrapper { display: grid; }

Page 20: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

.wrapper-001 { }

Page 21: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

.child-002-a .child-002-b .child-002-c

.child-002-d .child-002-e .child-002-f

.wrapper-002 { }

Page 22: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

.wrapper-003 { }

Page 23: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

.child-004-a .child-004-b .child-004-c

.child-004-d .child-004-e .child-004-f

.child-004-a { }

Page 24: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

ABSTÄNDEABSTÄNDE

Page 25: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

.wrapper-008 { }

Page 26: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

BENANNTE GRIDLINIENBENANNTE GRIDLINIEN

Page 27: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

.child-010-a

.child-010-b

.child-010-c

.child-010-d

.child-010-e

.child-010-f

.wrapper-010 { }

Page 28: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

BENANNTE GRID-BEREICHEBENANNTE GRID-BEREICHE

Page 29: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

.child-011-a

.child-011-b

.child-011-c

.child-011-d

.child-011-e

.child-011-f

.wrapper-011 { }

Page 30: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

Container EigenschaftenContainer Eigenschaften.wrapper { display:grid; grid-template-columns: <track-size> ... | <line-name> <track-size> ...; grid-template-rows: <track-size> ... | <line-name> <track-size> ...; grid-template-areas: "<grid-area-name> | . | none | ..." "..."; grid-row-gap: <line-size>; grid-column-gap: <line-size>; justify-items: start | end | center | stretch; align-items: start | end | center | stretch; }

Page 31: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

Zell EigenschaftenZell Eigenschaften.cell { grid-column-start: <number> | <name> | span <number> | span <name> | auto; grid-column-end: <number> | <name> | span <number> | span <name> | auto; grid-row-start: <number> | <name> | span <number> | span <name> | auto; grid-row-end: <number> | <name> | span <number> | span <name> | auto; grid-column: <start-line> / <end-line> | <start-line> / span <value>; grid-row: <start-line> / <end-line> | <start-line> / span <value>; grid-area: <name> | <row-start> / <column-start> / <row-end> / <column-end>; }

Page 32: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

VOR- UND NACHTEILEVOR- UND NACHTEILE

Page 33: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

EINFACHER RESPONSIVEREINFACHER RESPONSIVERAUFBAUAUFBAU

Page 34: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

<div class="wrapper"> <div class="main-head">## Header ##</div> <div class="navigation">## Navigation</div> <div class="content">## Content ##</div> <div class="side">## Sidebar ##</div> <div class="ad">## Advertising ##</div> <div class="main-footer">## Footer ##</div></div>

Page 35: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

## Header ##

## Navigation

## Content ##

## Sidebar ##

## Advertising ##

## Footer ##

.wrapper { grid-template-areas: "header" "nav" "content" "sidebar" "ad" "footer"; }

Page 36: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

## Header ##

## Navigation

## Content ## ## Sidebar##

##Advertising

##

## Footer ##

.wrapper { grid-template-columns: 3fr 1f grid-template-areas: "header header" "nav nav" "content sidebar" "content ad" "footer footer"; }

Page 37: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

## Header ##

##Navigation

## Content ## ## Sidebar##

##Advertising

##

## Footer ##

.wrapper { grid-template-columns: 1fr 4f grid-template-areas: "header header header" "nav content sidebar" "nav content ad" "footer footer footer" }

Page 38: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

LIVE-EINSATZLIVE-EINSATZ

Page 39: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

BROWSER SUPPORTBROWSER SUPPORT

Page 40: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)
Page 41: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)
Page 42: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

FEATURE QUERIESFEATURE QUERIES @supports (display: grid) { .wrapper { /* grid anweisungen */ } }

Page 43: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

FALLBACK-EIGENSCHAFTENFALLBACK-EIGENSCHAFTEN

müssen nicht resettet werden

float»display: inline-blockdisplay: table-cell

»

vertical-align»column-*»

Page 44: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

RESSOURCENRESSOURCENcss-tricks.com/snippets/css/complete-guide-grid/

»

www.smashingmagazine.com/category/css-grid»developer.mozilla.org/de/docs/Web/CSS/CSS_Grid_Layout

»

gridbyexample.com/»

Page 45: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

CSS GRID GARDENCSS GRID GARDEN

Page 46: CSS GRID L AYOUT - Contao · 2019-10-29 · GRID UND/ODER FLEXBOX Flexbox CSS Grid Layout » eindimensional (horizontal oder vertikal) » zweidimensional (horizontal und vertikal)

VIEL SPASS MIT DEM CSSVIEL SPASS MIT DEM CSSGRID LAYOUTGRID LAYOUT

UNDUND

VIELEN DANK!VIELEN DANK!