Zie de MDN web docs .
Laad het font bestand in:
@font-face {
font-family: "mijnfont";
src: url("fonts/mijnfont.eot");
src: url('fonts/mijnfont.eot?#iefix') format('embedded-opentype'),
url("fonts/mijnfont.woff") format("woff"),
url("fonts/mijnfont.ttf") format("truetype"),
url("fonts/mijnfont.svg#mijnfont") format("svg");
font-weight: normal;
font-style: normal;
}
<div style="font-family:mijnfont;">Hallo!</div>
extra info
Laad het font bestand in:
@font-face {
font-family: "icons";
src: url("fonts/icons.eot");
src: url('fonts/icons.eot?#iefix') format('embedded-opentype'),
url("fonts/icons.woff") format("woff"),
url("fonts/icons.ttf") format("truetype"),
url("fonts/icons.svg#icons") format("svg");
font-weight: normal;
font-style: normal;
}
Selecteer het font als de klasse icon- bevat:
[class*="icon-"]::before {
content: '+';
display: inline-block;
font-family: "icons" !important;
line-height: 1;
position: relative;
top: 2px;
-webkit-font-smoothing: antialiased;
font-smoothing: antialiased;
}
Voor zoekmachines en screenreaders:
.hide {
clip: rect(1px, 1px, 1px, 1px);
height: 0;
opacity: 0;
position: absolute;
visibility: hidden;
width: 0;
}
Geef het karakter een zinvolle naam:
.icon-twitter::before { content: "t"; }
Zo voegen we het pictogram toe:
<a href="http://www.twitter.com/" class="icon-twitter">
<li class="hide">Twitter</li>
</a>
https://cloudfour.com/thinks/seriously-dont-use-icon-fonts/
Dyslectici gebruiken soms andere fonts
Screenreaders kunnen geen pictogrammen voorlezen
image/svg+xml
body
header
HTTP Request
ack
syn ack
syn
ack
fin
ack
fin
8 TCP Segment
header
TCP Segment
header
IP Packet
Ethernet frame
header
Een Wifi (WLAN) frame wordt omgezet in een ethernet frame in een router
Met connection-keepalive wordt dezelfde tcp connectie gebruikt voor meerdere HTTP
Matroesjka poppen
Het websocket protocol is weer anders
Details: http://web.deu.edu.tr/doc/oreily/networking/firewall/ch06_03.htm
TCP is stream-georienteerd, dat mismatched met IP packets
UDP is alternatief voor TCP, heeft geen handshake is meestal iets sneller, TCP is handiger 'als er veel connecties zijn'
IPv6 is nieuwere variant van IPv4
In de applicatie laag wordt naast HTTP ook bijv. MQTT (IoT), TLS/SSL, DNS en POP (email) gebruikt
Link laag / Netwerk laag / Transport laag / Applicatie laag
HTTPS wordt nog uitgebreid behandeld later, daarin wordt een TLS verbinding tot stand gebracht met daarop een HTTP
POST /adfs/ls/?client-request-id=2f81...mVqaWUQd4GQA1 HTTP/1.1
Host: sts.hhs.nl
Connection: keep-alive
Content-Length: 75
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
Origin: https://sts.hhs.nl
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/...
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: https://sts.hhs.nl/adfs/ls/?client-request-id=2f81...mVqaWUQd4GQA1
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,nl;q=0.8
Cookie: MSISSignOut=c2lnbm91dENs...IjoxM30=
UserName=pvdbosch%40hhs.nl&Password=Voetbal123&AuthMethod=FormsAuthentication
Request methode en url
HTTP methoden: GET, POST, PUT, DELETE, HEAD, CONNECT, OPTIONS, ...
GET hoort niets aan te passen serverside (waarom niet?)
PUT en DELETE worden niet zoveel meer gebruikt
CONNECT om te switchen naar HTTPS
OPTIONS om CORS te gebruiken
Request Headers
Body
De Content-Type bepaald hoe de body geinterpreteerd wordt, volgens de MIME standaard. Voorbeelden: json, xml,
GET hoort niets aan te passen serverside, omdat:
Waarom?
Gevaarlijk: zie dit .
Oplossing:
Referrer-Policy HTTP header
referrer meta tag
Ik heb de voorbereiding geheel gedaan
Ik heb de voorbereiding gedeeltelijk gedaan
Ik ben de voorbereiding niet begonnen
bootstrap.min.js vs bootstrap.bundle.min.js
CSS en JS
/bootstrap.min.js vs https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.min.js
Setup hebben jullie al gedaan.
Bootstrap hangt af van Popper en jQuery. jQuery zit niet in de bundel!
Proxy = tussenpersoon, een CDN kan ook private zijn! CDN = geographisch gedistribueerd netwerk van proxy servers en data centers. Scripts/styles zijn statische content. Alles gaat om performance. Azure CDN / Google Cloud CDN / Amazon Cloudfront
De werking van het programma is hetzelfde
De grootte van het bestand wordt kleiner
Soms: obfuscatie
https://github.com/pocketjoso/sudokuJS
https://jonassebastianohlsson.com/sudoku/
online minifier: https://javascript-minifier.com/
https://github.com/jed/140bytes/wiki/Byte-saving-techniques
https://stackoverflow.com/questions/4292146/good-resources-for-extreme-minified-javascript-js1k-style
source map
zet hier de groottes bij in kb
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="112.57693mm"
height="33.582611mm"
viewBox="0 0 112.57693 33.58261"
version="1.1"
id="svg8"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
sodipodi:docname="hhslogo.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8"
inkscape:cx="213.22378"
inkscape:cy="50.406883"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1920"
inkscape:window-height="1147"
inkscape:window-x="1042"
inkscape:window-y="-8"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-2.2110951,-6.6752815)">
<path
inkscape:connector-curvature="0"
id="path827-7"
style="fill:#9ea700;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03527778"
d="M 44.923937,19.798375 H 43.79914 l -0.707744,2.016059 h 2.413211 l 0.71755,2.127001 h 2.955222 l -3.564115,-9.32159 -1.236485,3.54722 z m 42.371432,-6.79069 h 7.67363 v 1.94702 h -5.05531 v 2.22497 h 4.0894 v 1.89798 h -4.0894 v 2.91249 h 5.10399 l 0.27834,1.94716 h -8.00065 z m -11.093446,8.04965 c 0.883708,0.65458 2.078212,1.21091 3.534479,1.21091 1.145119,0 1.636537,-0.60526 1.636537,-1.309161 0,-0.736139 -0.7366,-1.014379 -1.997075,-1.488689 -2.273654,-0.86719 -3.452283,-1.75066 -3.452283,-3.41947 0,-1.96356 1.341967,-3.30507 4.041775,-3.30507 1.734257,0 3.223333,0.71974 3.845273,1.21059 l -0.982129,1.7508 c -0.638175,-0.52352 -1.897592,-1.01437 -2.863144,-1.01437 -1.128535,0 -1.489075,0.52366 -1.489075,1.12888 0,0.57274 0.589492,0.8508 2.126896,1.47271 1.963562,0.80148 3.321752,1.57057 3.321752,3.51758 0,2.09423 -1.406873,3.38709 -4.352215,3.38709 -1.897943,0 -3.321404,-0.539781 -4.188179,-1.26022 z m -5.218996,-5.51367 c -0.637823,-0.45805 -1.357842,-0.85079 -2.666648,-0.85079 -1.489075,0 -2.421819,1.35805 -2.421819,3.92659 0,2.60145 0.981781,3.64878 2.765073,3.64878 0.670983,0 1.210733,-0.359981 1.587146,-0.70365 v -1.83236 h -2.748492 v -1.898131 h 5.350581 v 4.303221 c -0.703791,0.88371 -1.930752,2.06181 -4.549068,2.06181 -4.335995,0 -5.02285,-2.65095 -5.02285,-5.72685 0,-3.12498 1.243541,-5.72643 5.28461,-5.72643 1.668992,0 2.814108,0.58896 3.648781,1.11248 z m -14.15274,4.270129 -0.785283,-2.094059 c -0.09807,-0.245281 -0.294217,-1.014371 -0.343252,-1.47256 -0.06562,0.605509 -0.32738,1.34165 -0.47484,1.71785 l -0.719667,1.848769 z m -2.928408,1.963591 -0.801865,2.15992 h -2.797882 l 4.319765,-10.92962 h 2.290233 l 4.12327,10.92962 h -2.863498 l -0.768705,-2.15992 z m 52.197001,11.479874 h 2.41371 l 0.0737,0.58099 h -3.1496 v -5.440774 h 0.66216 z m -6.527801,-4.392774 c -0.98178,0 -1.61995,0.72774 -1.61995,2.331504 0,1.64387 0.6544,2.20018 1.80022,2.20018 0.850201,0 1.569861,-0.70349 1.569861,-2.3315 0,-1.554564 -0.58032,-2.200184 -1.750131,-2.200184 z m -0.008,5.080144 c -1.95474,0 -2.274,-1.29287 -2.274,-2.82264 0,-1.570544 0.56409,-2.822514 2.42146,-2.822514 1.938871,0 2.274361,1.17023 2.274361,2.822514 0,1.60376 -0.57326,2.82264 -2.421821,2.82264 z m -7.92657,-5.080144 c -0.98249,0 -1.61996,0.72774 -1.61996,2.331504 0,1.64387 0.65405,2.20018 1.79988,2.20018 0.85055,0 1.57056,-0.70349 1.57056,-2.3315 0,-1.554564 -0.58102,-2.200184 -1.75048,-2.200184 z m -0.008,5.080144 c -1.95545,0 -2.27471,-1.29287 -2.27471,-2.82264 0,-1.570544 0.56444,-2.822514 2.42146,-2.822514 1.93887,0 2.27436,1.17023 2.27436,2.822514 0,1.60376 -0.57256,2.82264 -2.42111,2.82264 z m -9.056495,-0.10638 h -0.654388 v -5.440774 h 0.654401 v 2.315374 h 2.715682 v -2.315374 h 0.65476 v 5.440774 h -0.65526 v -2.54428 h -2.715682 z m -4.393128,-4.638624 c -0.269875,-0.18839 -0.564092,-0.33514 -1.153584,-0.33514 -1.063273,0 -1.693333,0.72774 -1.693333,2.331504 0,1.64387 0.654757,2.20018 1.652765,2.20018 0.53975,0 1.038929,-0.22931 1.357842,-0.5723 l 0.376412,0.44952 c -0.384879,0.36862 -0.891821,0.67124 -1.807634,0.67124 -1.96356,0 -2.233435,-1.29287 -2.233435,-2.82264 0,-1.570544 0.539398,-2.822514 2.478265,-2.822514 0.662868,0 1.104193,0.20436 1.391002,0.41716 z m -10.20939,3.648634 c 0.343255,0.22862 0.86713,0.54791 1.709915,0.54791 0.85866,0 1.202266,-0.43381 1.202266,-0.97317 0,-0.53192 -0.408871,-0.74469 -1.260123,-1.08038 -0.997653,-0.39247 -1.586793,-0.72774 -1.586793,-1.53763 0,-0.907984 0.58914,-1.529894 1.759302,-1.529894 0.817739,0 1.382183,0.33528 1.611489,0.52381 l -0.286808,0.49043 c -0.220488,-0.19611 -0.645938,-0.4662 -1.324681,-0.4662 -0.851252,0 -1.120775,0.44196 -1.120775,0.965314 0,0.4173 0.523168,0.70392 1.333148,1.01494 0.850545,0.33459 1.513768,0.69522 1.513768,1.60307 0,0.97318 -0.605366,1.53817 -1.840793,1.53817 -0.99836,0 -1.579385,-0.29476 -1.938867,-0.54846 z m -6.626225,-4.450784 h 3.304469 v 0.58099 h -2.642307 v 1.660804 h 2.135013 v 0.58098 h -2.135013 v 2.03701 h 2.716038 l 0.09843,0.58099 h -3.476625 z m -4.344461,0.81813 c -0.237064,-0.17142 -0.654402,-0.35112 -1.34126,-0.35112 -0.981779,0 -1.619954,0.72774 -1.619954,2.331504 0,1.64387 0.654754,2.20018 1.79987,2.20018 0.523524,0 1.046692,-0.33528 1.251305,-0.5723 v -1.24368 h -1.439336 v -0.56458 h 2.102205 v 2.01276 c -0.302684,0.3926 -0.891824,0.91626 -2.102205,0.91626 -1.96356,0 -2.274356,-1.29287 -2.274356,-2.82264 0,-1.570544 0.564092,-2.822514 2.421467,-2.822514 0.818089,0 1.284462,0.2376 1.570567,0.42541 z m -9.276646,-0.35112 c -0.981782,0 -1.619957,0.72774 -1.619957,2.331504 0,1.64387 0.654757,2.20018 1.799873,2.20018 0.850549,0 1.570567,-0.70349 1.570567,-2.3315 0,-1.554564 -0.58067,-2.200184 -1.750483,-2.200184 z m -0.0081,5.080144 c -1.955449,0 -2.274359,-1.29287 -2.274359,-2.82264 0,-1.570544 0.564092,-2.822514 2.421115,-2.822514 1.939219,0 2.27471,1.17023 2.27471,2.822514 0,1.60376 -0.57291,2.82264 -2.421466,2.82264 z m -9.056336,-0.10638 h -0.654292 v -5.440774 h 0.654296 v 2.315374 h 2.716107 v -2.315374 h 0.654439 v 5.440774 h -0.654539 v -2.54428 h -2.716107 z"
sodipodi:nodetypes="cccccccccccccccccccccccsscssccsscsscccsssccccccsssccccccccccccccccccccccccssssssssssssssssssssccccccccccccccsssccssscccsscssccsscssccccccccccccccccsssccccccsssccssssssssssccccccccccccc" />
<path
inkscape:connector-curvature="0"
id="path827-9"
style="fill:#283846;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03527778"
d="m 16.376062,13.031785 h 4.412333 v 1.11968 H 17.8814 v 1.27935 h 2.351794 v 1.09128 H 17.8814 v 1.67471 h 2.935253 l 0.159985,1.11954 h -4.600576 z m -6.303162,5.08028 h 0.884425 c 0.733806,0 1.382853,-0.5267 1.382853,-1.99443 0,-1.40173 -0.498704,-1.88158 -1.524102,-1.88158 H 10.0729 Z M 8.5864111,13.031785 H 10.91006 c 2.465027,0 2.926143,1.24177 2.926143,3.14236 0,1.86267 -0.771701,3.1422 -3.076487,3.1422 H 8.5864111 Z m 29.7160259,10.92387 h 2.817389 l 3.859496,-11.03465 h -2.347383 z m -8.947818,0.03291 h -2.585191 v -10.92934 h 2.585191 v 4.23746 h 3.845031 v -4.23746 h 2.584908 v 10.92934 H 33.19965 v -4.63074 h -3.845031 v 4.63074"
sodipodi:nodetypes="ccccccccccccccssscccssscccccccccccccccccccc" />
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="425.488" height="126.928" viewBox="0 0 112.577 33.583" xmlns:v="https://vecta.io/nano"><path d="M42.713 13.123h-1.125l-.708 2.016h2.413l.718 2.127h2.955l-3.564-9.322-1.236 3.547zm42.37-6.79h7.674V8.28h-5.055v2.225h4.09v1.898h-4.09v2.912h5.104l.278 1.947h-8zm-11.093 8.05c.884.655 2.078 1.21 3.534 1.21 1.145 0 1.637-.605 1.637-1.31 0-.736-.737-1.014-1.997-1.49-2.274-.867-3.452-1.75-3.452-3.42 0-1.964 1.342-3.305 4.042-3.305 1.734 0 3.223.72 3.845 1.21l-.982 1.75c-.638-.524-1.898-1.014-2.863-1.014-1.13 0-1.49.524-1.49 1.13 0 .573.59.85 2.127 1.473 1.964.8 3.322 1.57 3.322 3.518 0 2.094-1.407 3.387-4.352 3.387-1.898 0-3.32-.54-4.188-1.26zm-5.22-5.514c-.638-.458-1.358-.85-2.667-.85-1.49 0-2.422 1.358-2.422 3.927 0 2.6.982 3.65 2.765 3.65.67 0 1.21-.36 1.587-.704v-1.832h-2.748V11.16h5.35v4.303c-.704.884-1.93 2.062-4.55 2.062-4.336 0-5.023-2.65-5.023-5.727 0-3.125 1.244-5.726 5.285-5.726 1.67 0 2.814.59 3.65 1.112zM54.62 13.14l-.785-2.094c-.098-.245-.294-1.014-.343-1.473-.066.606-.327 1.342-.475 1.718l-.72 1.85zm-2.928 1.964l-.802 2.16H48.09l4.32-10.93h2.3l4.123 10.93H55.96l-.77-2.16zm52.197 11.48h2.414l.074.58h-3.15v-5.44h.662zM97.36 22.19c-.982 0-1.62.728-1.62 2.332 0 1.644.654 2.2 1.8 2.2.85 0 1.57-.703 1.57-2.33 0-1.555-.58-2.2-1.75-2.2zm-.008 5.08c-1.955 0-2.274-1.293-2.274-2.823 0-1.57.564-2.823 2.42-2.823 1.94 0 2.274 1.17 2.274 2.823 0 1.604-.573 2.823-2.422 2.823zm-7.927-5.08c-.982 0-1.62.728-1.62 2.332 0 1.644.654 2.2 1.8 2.2.85 0 1.57-.703 1.57-2.33 0-1.555-.58-2.2-1.75-2.2zm-.008 5.08c-1.955 0-2.275-1.293-2.275-2.823 0-1.57.564-2.823 2.42-2.823 1.94 0 2.274 1.17 2.274 2.823 0 1.604-.573 2.823-2.42 2.823zm-9.056-.106h-.654v-5.44h.654v2.315h2.716v-2.315h.655v5.44h-.655V24.62H80.36zm-4.393-4.64c-.27-.188-.564-.335-1.154-.335-1.063 0-1.693.728-1.693 2.332 0 1.644.655 2.2 1.653 2.2.54 0 1.04-.23 1.358-.572l.376.45c-.385.37-.892.67-1.808.67-1.964 0-2.233-1.293-2.233-2.823 0-1.57.54-2.823 2.478-2.823.663 0 1.104.204 1.39.417zm-10.21 3.65c.343.23.867.548 1.7.548.86 0 1.202-.434 1.202-.973 0-.532-.41-.745-1.26-1.08-.998-.392-1.587-.728-1.587-1.538 0-.908.59-1.53 1.76-1.53.818 0 1.382.335 1.61.524l-.287.5c-.22-.196-.646-.466-1.325-.466-.85 0-1.12.442-1.12.965 0 .417.523.704 1.333 1.015.85.335 1.514.695 1.514 1.603 0 .973-.605 1.538-1.84 1.538-.998 0-1.58-.295-1.94-.548zm-6.626-4.45h3.304v.58h-2.642v1.66h2.135v.58h-2.135v2.037H62.5l.098.58h-3.477zm-4.344.818c-.237-.17-.654-.35-1.34-.35-.982 0-1.62.728-1.62 2.332 0 1.644.655 2.2 1.8 2.2.524 0 1.047-.335 1.25-.572v-1.244h-1.44v-.565h2.102v2.013c-.303.393-.892.916-2.102.916-1.964 0-2.274-1.293-2.274-2.823 0-1.57.564-2.823 2.42-2.823.818 0 1.284.238 1.57.425zm-9.277-.35c-.982 0-1.62.728-1.62 2.332 0 1.644.655 2.2 1.8 2.2.85 0 1.57-.703 1.57-2.33 0-1.555-.58-2.2-1.75-2.2zm-.008 5.08c-1.955 0-2.274-1.293-2.274-2.823 0-1.57.564-2.823 2.42-2.823 1.94 0 2.275 1.17 2.275 2.823 0 1.604-.573 2.823-2.42 2.823zm-9.056-.106h-.654v-5.44h.654v2.315h2.716v-2.315h.654v5.44h-.655V24.62h-2.716z" fill="#9ea700"/><path d="M14.165 6.357h4.412v1.12H15.67v1.28h2.352v1.09H15.67v1.675h2.935l.16 1.12h-4.6zm-6.303 5.08h.884c.734 0 1.383-.527 1.383-1.994 0-1.402-.5-1.882-1.524-1.882h-.743zm-1.486-5.08H8.7c2.465 0 2.926 1.242 2.926 3.142 0 1.863-.772 3.142-3.076 3.142H6.375zM36.09 17.28h2.817l3.86-11.035H40.42zm-8.948.033h-2.585V6.384h2.585v4.237h3.845V6.384h2.585v10.93H30.99v-4.63h-3.845v4.63" fill="#283846"/></svg>
Elke browser/OS heeft haar eigen default, bekijk deze website.
Deze defaults staan in de broncode van de browser.
Twee mogelijke oplossingen
Bekijk normalize.scss in de website van de HHS.
Volgorde (cascading order):
User Agent stylesheet
Extern: <link ...> of @import ...
Embedded: <style>...</style>
Inline: <p style="...">
Specificiteit:
De selector met de meeste ID selectors gaat voor, bij gelijkspel:
de selector met de meeste [(pseudo-)class selectors + attribuut selectors] gaat voor, bij gelijkspel:
de selector met de meeste (pseudo-)element selectors gaat voor, bij gelijkspel:
de laatst-gedefineerde stijl gaat voor.
Dit is een 'specificiteit calculator'.
Wat voor soort frameworks zijn er?
Front-end en back-end is scheiding op basis van seperation of concerns
Vooruitblik 3-lagen architectuur : presentatie laag, applicatie laag, database laag
Client-side en server-side is fysieke scheiding. Server-side frameworks genereren HTML.
Een puur CSS / CSS + JS / gedeeltelijk server-side framework.
Front-end frameworks/technologieen:
Waarom? Leesbare onderhoudbare code, responsiveness. Soms: herbruikbaarheid componenten.
WPFW: FW = framework, normaal is de afkorting WF = web framework
Misschien is dit nu hocus pocus, later bekijken we deze exacte slide nog een keer, maar dan in de les CSHTML of in de les architectuur
Context: wat is er nog meer?
Technologieen breeder dan framework
Soms staat Bootstrap niet in het lijstje tussen de front-end frameworks, typ "back end frameworks" in Google in en krijg Bootstrap
Zo min mogelijk DOM manipulaties
Bootstrap door Twitter bedacht, React door Facebook. Geschreven in SASS (Syntactically Awesome Style Sheets)
Bootstrap wordt gebruikt door een op de vijf webistes.
Angular door Google
Transpileren
Vooral niet functionele systeemeisen.
Probleem:
Zie ook dit .
Mobile-first
HHS timetable
4K schermen
Oplossingen:
CSS eenheden: absoluut (cm, in, px, pt) vs relatief (em, vw, %)
Viewport :
<meta name="viewport" content="width=device-width, initial-scale=1.0">
Flexbox
Media Queries: in CSS
@media only screen and (max-width: 600px) {
body {
background-color: lightblue;
}
}
of bij het laden van CSS
<link rel="stylesheet" media="screen and (min-width: 900px)" href="widescreen.css">
<link rel="stylesheet" media="screen and (max-width: 600px)" href="smallscreen.css">
Zie ook light-level en inverted-colors en scripting .
Bootstrap, of een ander front-end framework
Test verschillende groottes met de developer tools!
Een responsive layout
Extra voor-gedefinieerde componenten
Syntactic sugar: korte namen
Content: tabellen, code, figuren met onderschriften
Layout vs design: een layout beschrijft hoe de onderdelen worden gepositioneerd
navbars, modals
Dit worden 'utitilies' genoemd in Bootstrap
We kennen al:
de CSS stijl eigenschap position
de CSS stijl eigenschap display : grid, flexbox
In bootstrap:
De container zorgt voor padding en voor een 'vaste' breedte , gecentered.
Het grid-systeem met row en col-..-.
Zie deze tabel .
Voor een consistente layout is het wel handig overal Bootstrap te gebruiken.
Niet zelf het wiel opnieuw uitvinden!
Houd continu rekening met slechtzienden:
gebruik semantische HTML elementen
gebruik headers
aria-attributen
alternatieven voor iconen/plaatjes
met Javascript en setTimeout?
SMIL
Although Chrome 45 deprecated SMIL in favor of CSS animations and Web animations, the Chrome developers have since suspended that deprecation.
Edge tot 2020 geen ondersteuning, nu gedeeltelijk
Polyfillers als fakesmile .
welk attribuut is ingesteld voor child 3?
padding: 10px;
margin: 10px;
border-width: 10px;
margin: -10px;
welk attribuut is ingesteld voor child 2?
padding: 10px;
margin: 10px;
border-width: 10px;
margin: -10px;
Stel: tekst past niet in de ruimte die beschikbaar is voor een div. Hoe maak je div scrollable?
border-width: 10px;
margin: 10px;
padding: 10px;
overflow: auto;
Hoe wordt div met class parent op een telefoon met normale oriëntatie en 400px breed getoond?
Met witte achtergrond.
Met default achtergrond.
Met blauwe achtergrond.
Dat kan met deze gegevens niet worden bepaald.
Hoe wordt div met class parent op een gekantelde telefoon en 400px breed getoond?
Met witte achtergrond.
Met default achtergrond.
Met blauwe achtergrond.
Dat kan met deze gegevens niet worden bepaald.
Wat is het effect van het opnemen van een link in je HTML naar 'normalize.css'?
HTML wordt in alle browsers op alle apparaten gelijk getoond
Alle plaatjes worden even groot afgebeeld.
De verhoudingen van plaatjes worden genormaliseerd.
HTML wordt kleiner gemaakt, zodat het helemaal wordt getoond
Welke class in 12-koloms-framework (met col-1 t/m col-12 en row) is van toepassing op child 1?
col-2
col-8
row
col-12
Welke class in 12-koloms-framework is van toepassing op de parent van child 1 t/m 3?
col-2
col-8
row
col-12
Welke class in Bootstrap is op een normale telefoon toegepast op de parent van child 1 t/m 3?
row
col-md
col-sm
col-xs
Welke class in Bootstrap is op een normale telefoon toegepast op div met tekst child 1?
col-xs-2
col-md-2
col-sm-2
col-lg-2
Wat is het effect van het minimized opslaan van CSS of JavaScript?
Dat het bestand wordt gezipped.
Dat het veel moeilijker leesbaar wordt.
Dat het bestand met CSS of JavaScript groter wordt.
Dat file met CSS/JavaScript meer downloadtijd nodig heeft.
Hoe refereer je in HTML aan een minimized version van je CSS-file /css/boostrap.css?
<link rel="stylesheet" href="/css/bootstrap.min.css">
<link rel="minimized" href="/css/boostrap.css">
<link rel="minimized" href="/css/bootstrap.min.css">
<link rel="stylesheet" href="/css/minimized.css">
Wat ontbreekt er in de volgende code in de body (lees classes als verwijzing naar Bootstrap)?
De verwijzing in <body> naar Bootstrap.
<link rel="minimized" href="/css/boostrap.css">
div met class 'container' (in de DOM direct onder <body>.
<link rel="stylesheet" href="/css/minimized.css">
Hoe zorg ik dat plaatje hieronder zich m.b.v. Bootstrap responsive aanpast aan de breedte?
Door aan <img...> 'style="max-width: 400px;"' toe te voegen.
Door aan <img...> 'class="img-responsive"' toe te voegen.
Door aan <img...> 'style="display: flex;"' toe te voegen.
Door aan <img...> 'style="height: auto;" toe te voegen.
Hoe zorg ik dat alle tekst hieronder met één wijziging rechts wordt uitgelijnd?
Door '<div class="col-md-6 text-right">' uit te breiden.
Door '<h1 class="text-right">' uit te breiden.
Door aan '<div...>' 'class="text-right"' toe te voegen.
Door '<h3 class="text-right">' uit te breiden.
Als je div met class 'eigen-opmaak' op wilt maken, welk attribuut definieer je dan als eerste?
background-color
De volgorde van attributen maakt nauwelijks iets uit.
margin en padding
font styles
Wat is de achtergrondkleur van een div met class 'tweede'?
black
red
yellow
blue
Wat is de achtergrondkleur van een div met class 'tweede'?
Dat kan op basis van deze code niet worden bepaald.
white
De default color.
red
In welke file leg je opmaak van de div met class 'eigen-opmaak' vast (kies het beste antwoord)?
In de file 'css/bootstrap.css'
In de file 'css/bootstrap.min.css'.
In een eigen file (bijv. 'style.css') in directory 'css'.
in HTML-file in head met tussen tags voor '<style>'.
Als je Bootstrap-classes wilt overloaden in style.css. In welke volgorde neem je <link ...> op?
<link href="style.css"> na <link href="bootstrap.css">.
<link href="bootstrap.css"> na <link href="style.css">.
De volgorde maakt niet uit.
Je kunt classes in bootstrap.css niet overloaden.
Welke extra file heb je nodig om Modal Popup van Bootstrap te kunnen tonen?
Bootstrap maakt daarvoor gebruik van jquery.min.js.
De css van Bootstrap is noodzakelijk.
Je moet zelf nog een regel code schrijven voor modal popup.
Er zijn geen extra files nodig om deze popup te tonen.
De Webplanner van de Haagse Hogeschool is een goed voorbeeld van een erg slechte front-end. Herontwerp de website eerst in een wireframe, en daarna in Bootstrap.
Wat is er bijvoorbeeld allemaal mis?
de website is nu niet responsive (ooit op je mobiel het rooster proberen te bekijken?). Gebruik de Chrome DevTools om de website te bekijken vanaf je mobiel.
de website vrijwel onmogelijk met een screenreader te gebruiken.
het stappenplan in de gele balk doet waar hij zin in heeft
het ontwerp is onnodig ingewikkeld: waarom zit er onder de gele tips een slider waarmee je de grootte van de banner kunt aanpassen? Het aanmaken van een filter (groene knop naast "Geen filter toegepast") is onnodig ingewikkeld.
Gebruik namaak-data als voorbeeld in de website, dus je hoeft niet gebruik te maken van de API van WebPlanner. Maak gebruik van een container, rows met cols en zorg dat er van de volgende componenten tenminste 1 wordt gebruikt:
Uitdagende mogelijkheden tot uitbreiding...
Volgende week: (eindelijk) C#