Slide 1
niels leenheer
@html5testflex
box
joomladagen 2017
Slide 2
Slide 3
Slide 4
Slide 5
Slide 6
Slide 7
Slide 8
Slide 9
Slide 10
Slide 11
Slide 12
Slide 13
Slide 14
Slide 15
Slide 16
<ul>
<!-- hier gaan we items aan toevoegen -->
</ul>
ul {
display: flex;
}
Slide 17
Slide 18
Slide 19
Slide 20
Slide 21
<ul>
<li class="groen"></li>
<li class="oranje"></li>
<li class="rood"
></li>
</ul>
ul {
display: flex;
}
Slide 22
Slide 23
ul {
flex-direction: row;
}
Slide 24
ul {
flex-direction: row-reverse;
}
Slide 25
ul {
flex-direction: column;
}
Slide 26
ul {
flex-direction: column-reverse;
}
Slide 27
Slide 28
ul {
justify-content: flex-start;
}
Slide 29
ul {
justify-content: flex-end;
}
Slide 30
ul {
justify-content: center;
}
Slide 31
ul {
justify-content: space-between;
}
Slide 32
ul {
justify-content: space-around;
}
Slide 33
Slide 34
ul {
align-items: stretch;
}
Slide 35
ul {
align-items: flex-start
;
}
Slide 36
ul {
align-items: center
;
}
Slide 37
ul {
align-items: flex-end
;
}
Slide 38
Slide 39
Slide 40
li {
flex-grow: 0;
flex-shrink: 1;
flex-basis: auto;
}
Slide 41
Slide 42
li.rood {
flex-grow: 2
;
}
Slide 43
Slide 44
Slide 45
Slide 46
Slide 47
Slide 48
Slide 49
Slide 50
Slide 51
1
2
3
li.groen {
order: 10;
}
Slide 52
1
2
3
li.rood {
order: -1;
}
Slide 53
wat kunnen
we met
flexbox doen?
Slide 54
Slide 55
flexbox
is niet voor
pagina opmaak!
Slide 56
Slide 57
<ul>
<li><a href=“#”>Home</a></li>
<li><a href=“#”>Programma</a></li>
...
</ul>
•
Home
•
Programma
•
Sprekers
•
Locatie
Slide 58
li {
display: inline-block;
}
Home Programma Sprekers Locatie
Slide 59
li {
display: inline-block;
}
Home Programma Sprekers Locatie
Slide 60
ul {
text-align: center;
}
Home Programma Sprekers Locatie
Slide 61
li {
width: 25%;
}
Home Programma Sprekers Locatie
Slide 62
li {
width: 25%;
}
Home Programma Sprekers Locatie
Slide 63
Home Programma Sprekers
Locatie
ul {
display: flex;
justify-content: space-between;
}
li {
flex: 0 0 auto;
}
Slide 64
ul {
display: flex;
justify-content: space-between;
}
li {
flex: 0 0 auto;
}
Home Programma Sprekers
Locatie
Slide 65
li {
flex: 0 0 auto;
}
Home Programma Sprekers Locatie
Tickets
Slide 66
Home Programma Sprekers Locatie
Tickets
li {
flex: 0 0 auto;
}
Slide 67
ul {
justify-content: center;
}
li {
flex: 1
0 auto;
}
Home Programma Sprekers Locatie
Tickets
Slide 68
ul {
justify-content: center;
}
li {
flex: 1
0 auto;
}
Home Programma Sprekers Locatie
Tickets
Slide 69
Home Programma Sprekers Locatie
Tickets
Slide 70
Home Programma Sprekers Locatie
Tickets
Slide 71
Home Programma Sprekers Locatie
Tickets
Slide 72
Home Programma Sprekers Locatie
Tickets
Slide 73
Home Programma Sprekers Locatie
Tickets
Slide 74
Home Programma Sprekers Locatie
Tickets
li#tickets {
flex: 0 0
auto;
}
Slide 75
@media (min-width: 25em) {
li { flex: 0 0
auto; }
li#tickets {
margin-left: auto;
}
}
Home Programma Sprekers Locatie
Tickets
Slide 76
@media (min-width: 25em) {
li { flex: 0 0 auto; }
li#tickets {
margin-left: auto;
}
}
Home Programma Sprekers Locatie
Tickets
Slide 77
Home Programma Sprekers Locatie
Tickets
Slide 78
Home Programma Sprekers Locatie
Tickets
Slide 79
Home Programma Sprekers Locatie
Tickets
Slide 80
Home Programma
Sprekers
ul {
flex-wrap: wrap;
}
Locatie
Tickets
Slide 81
Home Programma
Sprekers
ul {
flex-wrap: wrap;
}
Locatie
Tickets
Slide 82
@media (max-width: 32em) {
li {
flex: 0 0 50%;
}
}
Home
Programma
Sprekers
Locatie
Tickets
Slide 83
@media (max-width: 32em) {
li {
flex: 0 0 50%;
}
}
Home
Programma
Sprekers
Locatie
Tickets
Slide 84
Slide 85
<form>
<input type=text placeholder="Zoeken"
>
<button type=submit>Zoek</button>
</form>
Zoek
Zoeken naar artikelen
Slide 86
<form>
<input type=text placeholder="Zoeken"
>
<button type=submit>Zoek</button>
</form>
Zoek
Zoeken naar artikelen
Slide 87
<form>
<input type=text placeholder="Zoeken"
>
<button type=submit>Zoek</button>
</form>
Zoek
Zoeken naar artikele
n
Slide 88
<form>
<input type=text placeholder="Zoeken"
>
<button type=submit>Zoek</button>
</form>
Zoek
Zoeken naar artikelen
Slide 89
Zoek
Zoeken naar artikelen
Zoek
Zoeken naar artikelen
Zoek
Zoeken naar artikelen
input { width: 85%; }
button { width: 15%; }
Slide 90
Zoeken naar artikelen
Zoeken naar artikelen
Zoeken naar
…
Zoek
Zoek
Zoek
form { padding-right: 60px; }
input { width: 100%; }
button { position: absolute; right: 0; }
Slide 91
Zoeken naar artikelen
Zoeken naar artikelen
Zoeken naar
…
Zoeken
Zoeken
Zoeken
form { padding-right: 60px; }
input { width: 100%; }
button { position: absolute; right: 0; }
Slide 92
form {
display: flex;
}
Zoek
Zoeken naar artikelen
Slide 93
input {
flex: 1 1 auto;
}
Zoek
Zoeken naar artikelen
Slide 94
input {
flex: 1 1 auto;
}
Zoek
Zoeken naar artikelen
Slide 95
input {
flex: 1 1 auto;
}
Zoeken
Zoeken naar artikelen
Slide 96
input {
flex: 1 1 auto;
}
Zoeken
Zoeken naar artikelen
Slide 97
input {
width: 0%;
flex: 1 1 auto;
}
Zoeken
Zoeken naar
…
Slide 98
Slide 99
<dl class=“article-info”>
<dd class=“createdby”>Geschreven door Niels Leenheer</dd>
<dd class=“create”>1 april 2017</dd>
</dl>
1 april 2017
Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Ut ac sapien at orci ornare finibus
et eu ex. Aenean pulvinar suscipit sem ut tempor.
Vestibulum augue nunc, facilisis vitae finibus ac,
gravida at odio. In tincidunt aliquet justo, ut
blandit leo aliquet a. Nunc faucibus sem ac sem
Lorem ipsum dolor
Geschreven door Niels Leenheer
Slide 100
dl { overflow: hidden; }
dd.createdby { float: left; }
dd.created { float: right; }
Lorem ipsum dolor
1 april 2017
Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Ut ac sapien at orci ornare finibus
et eu ex. Aenean pulvinar suscipit sem ut tempor.
Vestibulum augue nunc, facilisis vitae finibus ac,
gravida at odio. In tincidunt aliquet justo, ut
blandit leo aliquet a. Nunc faucibus sem ac sem
Geschreven door Niels Leenheer
Slide 101
dl { overflow: hidden; }
dd.createdby { float: left; }
dd.created { float: right; }
Lorem ipsum dolor
Geschreven door Niels Leenheer
1 april 2017
Lorem ipsum dolor sit amet,
consectetur adipiscing elit. Ut ac
sapien at orci ornare finibus et eu ex.
Aenean pulvinar suscipit sem ut
tempor. Vestibulum augue nunc,
facilisis vitae finibus ac, gravida at
Slide 102
dl { overflow: hidden; }
dd.createdby { float: left; }
dd.created { float: right; }
Lorem ipsum dolor
Geschreven door Niels Leenheer
1 april 2017
Lorem ipsum dolor sit
amet, consectetur
adipiscing elit. Ut ac
sapien at orci ornare
Slide 103
dl {
display: flex;
justify-content: space-between;
}
Lorem ipsum dolor
Geschreven door Niels Leenheer
1 april 2017
Lorem ipsum dolor sit
amet, consectetur
adipiscing elit. Ut ac
sapien at orci ornare
Slide 104
dl {
display: flex;
justify-content: space-between;
}
Lorem ipsum dolor
Geschreven door Niels Leenheer
1 april 2017
Lorem ipsum dolor sit amet,
consectetur adipiscing elit. Ut ac
sapien at orci ornare finibus et eu ex.
Aenean pulvinar suscipit sem ut
tempor. Vestibulum augue nunc,
facilisis vitae finibus ac, gravida at
Slide 105
dl {
display: flex;
justify-content: space-between;
}
1 april 2017
Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Ut ac sapien at orci ornare finibus
et eu ex. Aenean pulvinar suscipit sem ut tempor.
Vestibulum augue nunc, facilisis vitae finibus ac,
gravida at odio. In tincidunt aliquet justo, ut
blandit leo aliquet a. Nunc faucibus sem ac sem
Lorem ipsum dolor
Geschreven door Niels Leenheer
Slide 106
Slide 107
li {
padding: 2em 10em;
display: inline-block;
}
Vrijdag 31 maart
Zaterdag 1 april
Zondag 2 april
Slide 108
li {
padding: 2em 10em;
display: inline-block;
}
Vrijdag 31 maart
Zaterdag 1 april
Zondag 2 april
Slide 109
li {
padding: 2em 10em;
display: inline-block;
}
Vrijdag 31 maart
Zaterdag 1 april
Zondag 2 april
Slide 110
ul { display: flex; }
li { flex: 1 1 auto; }
Vrijdag 31 maart
Zaterdag 1 april
Zondag 2 april
Slide 111
ul { display: flex; }
li { flex: 1 1 auto; }
Vrijdag 31 maart
Zaterdag 1 april
Zondag 2 april
Slide 112
li.today { order: -1; }
Vrijdag 31 maart
Zaterdag 1 april
Zondag 2 april
Slide 113
Slide 114
<div class="blocks">
<div class="block"> ... </div>
<div class="block"> ... </div>
</div>
Lorem ipsum dolor
sit amet,
consectetur
adipiscing elit.
Ut ac sapien at orci
ornare finibus et eu
ex. Aenean pulvinar
suscipit sem ut
tempor.
Vestibulum augue
nunc, facilisis vitae
finibus ac, gravida
at odio.
Slide 115
.block {
height: 10em;
}
Lorem ipsum dolor
sit amet,
consectetur
adipiscing elit.
Ut ac sapien at orci
ornare finibus et eu
ex. Aenean pulvinar
suscipit sem ut
tempor.
Vestibulum augue
nunc, facilisis vitae
finibus ac, gravida
at odio.
Slide 116
.block {
height: 10em;
}
Lorem ipsum dolor
sit amet,
consectetur
adipiscing elit.
In tincidunt aliquet
justo, ut blandit leo
aliquet a. Nunc
faucibus sem ac
sem euismod
vulputate. Nunc
eleifend velit eu
porta lacinia.
Vestibulum augue
nunc, facilisis vitae
finibus ac, gravida
at odio.
Slide 117
.block {
height: 10em;
overflow: hidden;
}
Lorem ipsum dolor
sit amet,
consectetur
adipiscing elit.
In tincidunt aliquet
justo, ut blandit leo
aliquet a. Nunc
faucibus sem ac
sem euismod
vulputate. Nunc
Vestibulum augue
nunc, facilisis vitae
finibus ac, gravida
at odio.
Slide 118
.block {
min-height: 10em;
}
Lorem ipsum dolor
sit amet,
consectetur
adipiscing elit.
In tincidunt aliquet
justo, ut blandit leo
aliquet a. Nunc
faucibus sem ac
sem euismod
vulputate. Nunc
eleifend velit eu
porta lacinia.
Vestibulum augue
nunc, facilisis vitae
finibus ac, gravida
at odio.
Slide 119
.blocks {
display: flex;
}
Lorem ipsum dolor
sit amet,
consectetur
adipiscing elit.
In tincidunt aliquet
justo, ut blandit leo
aliquet a. Nunc
faucibus sem ac
sem euismod
vulputate. Nunc
eleifend velit eu
porta lacinia.
Vestibulum augue
nunc, facilisis vitae
finibus ac, gravida
at odio.
Slide 120
Slide 121
is flexbox
veilig om te
gebruiken?
Slide 122
Slide 123
drie specificaties
display: box;
display: flexbox;
display: flex;
Slide 124
prefixes
display: -webkit-box;
display: -moz-box;
display: box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
Slide 125
browser support
29
28
9
12.1
12
11
laatste specificatie, unprefixed
*
Slide 126
browser support
21
28
6.1
12.1
12
11
laatste specificatie, inclusief prefixes
*
Slide 127
browser support
4
2
3.1
12.1
12
10
eerdere specificaties, inclusief prefixes
*
Slide 128
Slide 129
Zoeken naar artikelen
Zoeken naar artikelen
Zoeken naar
…
Zoek
Zoek
Zoek
form { padding-right: 60px; }
input { width: 100%; }
button { position: absolute; right: 0; }
Slide 130
form { padding-right: 60px; }
input { width: 100%; }
button { position: absolute; right: 0; }
@supports(display: flex) {
form { display: flex; padding-right: 0; }
input { width: 0%; flex: 1 1 auto;
}
button { position: static; }
}
Slide 131
browser support
29
28
9
12.1
12
laatste specificatie, unprefixed, in combinatie met @supports
Slide 132
en mijn
grid systeem
dan?
Slide 133
grids zijn perfect
voor pagina opmaak
Slide 134
grids zijn perfect
voor pagina opmaak
flexbox is ideaal
voor componenten
Slide 135
bootstrap 4
<div class="d-flex justify-content-start">
<div class="p-2">A</div>
<div class="p-2">B</div>
<div class="p-2 ml-auto">C</div>
</div>
Slide 136
Slide 137