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