html & css | competence center front-end & ux, ordina

43
HTML & CSS Opfrissen van HTML & CSS Wat is nieuw in HTML5 & CSS3

Upload: jandewilde

Post on 12-Jun-2015

630 views

Category:

Internet


5 download

DESCRIPTION

Introductie sessie: - Opfrissen van HTML & CSS - Wat is nieuw in HTML5 & CSS3

TRANSCRIPT

Page 1: HTML & CSS | Competence Center Front-end & UX, Ordina

HTML & CSSOpfrissen van HTML & CSSWat is nieuw in HTML5 & CSS3

Page 2: HTML & CSS | Competence Center Front-end & UX, Ordina

Competence Center Front-end & UX

Jan De WildeFront-end ontwikkelaar

Page 3: HTML & CSS | Competence Center Front-end & UX, Ordina

CSS

Page 4: HTML & CSS | Competence Center Front-end & UX, Ordina

CSS | Intro

CSS = Cascading Style Sheet

Inline, interne en externe stylesheets

Selectors: .ordina-competence-center .is-de-max { font-weight: bold; }

Gebruik een CSS Reset

Vendor prefixes: -webkit-, -moz-

Vb. -webkit-border-radius: 10px

Page 5: HTML & CSS | Competence Center Front-end & UX, Ordina

CSS | Aanroepen

Inline<div style=”font-weight:bold;”></div>

Intern in head<head>

<style type=”text/css”>.ordina-competence-center .is-de-max { font-weight: bold; }

</style></head>

Extern in head<link rel=”stylesheet” type=”text/css” href=“Path To stylesheet.css” />

Page 6: HTML & CSS | Competence Center Front-end & UX, Ordina

CSS | Box model

Ieder element = doos

Omringd door padding, border en marge

Bij normaal gedrag tellen we alles op bij het element

IE box model bug (<= IE6): padding en border worden opgenomen in het element waardoor de doos kleiner is

Page 7: HTML & CSS | Competence Center Front-end & UX, Ordina

CSS | Box model

Alles optellen bij inhoud:

-webkit-box-sizing: border-box;

-moz-box-sizing: border-box;

box-sizing: border-box;

box-model.html

Page 8: HTML & CSS | Competence Center Front-end & UX, Ordina

CSS | Positionering

AlgemeenPositionering: left, top, right, bottompositionering: static (standaard)z-index: elementen sorteren

position: relative;Blijft op zijn plaats binnen de parent

position: absolute;Zweeft boven de paginaBinnen de grenzen van de parent (parent op position: relative; plaatsen!)Parent met allemaal absoluut gepositioneerde elementen klapt toe!

Page 9: HTML & CSS | Competence Center Front-end & UX, Ordina

CSS | Positionering

position: fixed;Zweeft boven de paginaParent is altijd body

positionering.html

Page 10: HTML & CSS | Competence Center Front-end & UX, Ordina

CSS | Pseudo elementen

:active

:hover

:visited

:first-child

:last-child

:before

:after

:first-letter

:first-line

:focus

:link

Page 11: HTML & CSS | Competence Center Front-end & UX, Ordina

CSS | Pseudo elementen - voorbeeld

@media print {

a[href]:after {

content: " (" attr(href) ") ";

}

}

Page 12: HTML & CSS | Competence Center Front-end & UX, Ordina

CSS | float en clear

FloatLinks of rechts floatenElementen die na een float element komen zullen wrappen rond dit element

ClearElementen na een float kan je clearenGeef aan aan welke kant float elementen niet toegelaten zijnDe waarde kan zijn: left, right, both

float-clear.html

Page 13: HTML & CSS | Competence Center Front-end & UX, Ordina

CSS | De clearfix hack

/* new clearfix */

.clearfix:after {

visibility: hidden;

display: block;

font-size: 0;

content: " ";

clear: both;

height: 0;

}

* html .clearfix { zoom: 1; } /* IE6 */

*:first-child+html .clearfix { zoom: 1; } /* IE7 */

clearfix.html

Page 14: HTML & CSS | Competence Center Front-end & UX, Ordina

InlineNaast elkaarHebben voor en achter het element geen line break

BlockOnder elkaarHebben voor en achter het element een line breakNemen by default de volledige breedte van de parent in

Inline-BlockMaakt block elementen inlineDe block karakteristieken blijven behouden

CSS | inline, block, inline-block?

Page 15: HTML & CSS | Competence Center Front-end & UX, Ordina

CSS | Elementen centreren

Via marginmargin: 0 auto;

width: value; of max-width: value;max-width zorgt ervoor dat er flexibel kan geschaald worden

Via absolute positioneringposition: absolute;

left: 50%;

margin-left: -value / 2;

width: value;

centreer.html

Page 16: HTML & CSS | Competence Center Front-end & UX, Ordina

CSS3

Page 17: HTML & CSS | Competence Center Front-end & UX, Ordina

CSS3

Animaties en transitiesWaarden berekenen met calc()Meer geavanceerde selectorsGegenereerde inhoud en countersGradientsWebfontsBorder RadiusBox Shadow

Box SizingBorder imagesMedia queriesMeerdere achtergrondenCSS ColumnsCSS 3D TransformsFlexbox…

Page 18: HTML & CSS | Competence Center Front-end & UX, Ordina

Border radius

-webkit-border-radius: 12px;

-moz-border-radius: 12px;

border-radius: 12px;

of:

-webkit-border-top-left-radius: 12px;

-moz-border-radius-topleft: 12px;

border-top-left-radius: 12px;

CSS3 | Border radius & box shadow

Box shadow

-moz-box-shadow: 3px 3px 5px 6px #ccc;

-webkit-box-shadow: 3px 3px 5px 6px #ccc;

box-shadow: 3px 3px 5px 6px #ccc;

1. Horizontale offset

2. Verticale offset

3. Blur radius

4. Reikwijdte

5. Kleur

Page 19: HTML & CSS | Competence Center Front-end & UX, Ordina

CSS3 | Animatie

-webkit-animation: orbit 2s linear infinite;

animation: orbit 2s linear infinite;

1. Animatie naam

2. Duur animatie

3. Type animatie

4. Aantal herhalingen

@-webkit-keyframes orbit {from {

-webkit-transform:rotate(0deg);}to {

-webkit-transform:rotate(360deg);}

}

@keyframes orbit {from {

transform:rotate(0deg);// Future chrome support

-webkit-transform:rotate(0deg);}to {

transform:rotate(360deg);// Future chrome support

-webkit-transform:rotate(360deg);}

}

animatie.html

Page 20: HTML & CSS | Competence Center Front-end & UX, Ordina

CSS3 | Transitie

transition: background-position 0.8s ease 1s;

1. CSS Property

2. Duur transitie

3. Type transitie

4. Delay

transitie.html

Page 21: HTML & CSS | Competence Center Front-end & UX, Ordina

CSS3 | Webfonts

@font-face {

font-family: 'MyWebFont';

src: url('webfont.eot'); /* IE9 Compat Modes */

src: url('webfont.eot?#iefix')

format('embedded-opentype'),

/* IE6-IE8 */

url('webfont.woff') format('woff'),

/* Modern Browsers */

url('webfont.ttf') format('truetype'),

/* Safari, Android, iOS */

url('webfont.svg#svgFontName') format('svg');

/* Legacy iOS */

}

@font-face geeft de mogelijkheid om fonts die normaal enkel in design gebruikt werden, online te gaan gebruiken

Rekening houden met rechten

Verschillende platformen: Google Fonts, Typekit, Fontdeck, ...

Verschillende extensies: eot, woff, ttf en svg

Page 22: HTML & CSS | Competence Center Front-end & UX, Ordina

CSS3 | Media queries

ResponsiveToestel en scherm afhankelijke stijlenMeta viewport tagOndersteuning is grootFallback voor IE8 en lager voorzien: Respond.jsGa voor mobile first!Zelf schrijven of framework gebruiken

<meta name="viewport" content="width=device-width, initial-scale=1.0">

@media only screen and (min-width: 480px) {

...styles for 480px and up go here

}

@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {

/* Retina-specific stuff here */

}

media-queries.html

Page 23: HTML & CSS | Competence Center Front-end & UX, Ordina

Grid

Nog volledig in opbouwHeel weinig ondersteuningSpecifiek om grid systems te bouwenTer vervanging van float en inline-block

Flexbox

Flexible boxMomenteel een W3C Candidate RecommendationGeschikt voor de grote lijnen van een applicatie of interfaceNog niet overal ondersteuning

CSS3 | Flexbox & Grid

Page 24: HTML & CSS | Competence Center Front-end & UX, Ordina

HTML5

Page 25: HTML & CSS | Competence Center Front-end & UX, Ordina

HTML5

Niet zomaar nieuwe syntaxHet is een specificatieEen verzameling van features (ook JS)Nieuwe features (vb. <video>) maken gebruik van een DOM APIJe hoeft niets weg te gooienBestaande applicaties of websites upgradenMeerdere h1’s op één pagina! www.html5rocks.com

www.diveintohtml5.info

Page 26: HTML & CSS | Competence Center Front-end & UX, Ordina

HTML5 | Starten

Geen complexe doctype syntax meer: <!DOCTYPE html>Nieuwe elementen: <header>, <nav>, <section>, <article>, <aside>, <footer>

… en nog veel meer<hgroup> element niet meer in gebruik

Nieuwe features: Geolocatie, Localstorage, Canvas, Video, Native formulier validatie (input types)Fallback (polyfill) voorzien voor IE versies lager dan 9: html5shim

Page 27: HTML & CSS | Competence Center Front-end & UX, Ordina

HTML5 | Stukje geschiedenis

Voor HTML5 overmatig gebruik van <div>: divitisStructuur door middel van ID’s en klasses

<div id=”header”>

<div id=”nav”></div>

</div>

<div id=”content”></div>

<div id=”footer”></div>

Niet zichtbaar voor browsers, zoekmachines en screen readersSlechts één h1 per pagina

Page 28: HTML & CSS | Competence Center Front-end & UX, Ordina

HTML5 | Nieuwe elementen

Gebruik van minder div’sBetere leesbaarheid:

Voor ontwikkelaarVoor browsers, zoekmachines, screen readers, …

Onze pagina kan er nu zo gaan uitzien:<header>

<nav></nav>

</header>

<section></section>

<footer></footer>

Page 29: HTML & CSS | Competence Center Front-end & UX, Ordina

HTML5 | Nieuwe elementen

<header>

<nav>

<section>

<article>

<aside>

<footer>

Page 30: HTML & CSS | Competence Center Front-end & UX, Ordina

HTML5 | Role attribuut

Via het role attribuut kan je aan een element meegeven waarvoor dit dient.Als we onze code van daarnet nemen:

<header>

<nav role=”navigation”></nav>

</header>

<section role=”main”></section>

<footer></footer>

En zo zijn er nog veel meer mogelijk opties.

Page 31: HTML & CSS | Competence Center Front-end & UX, Ordina

HTML5 | Input types

Automatische validatieNieuw gedrag (datepicker, range,

…)Keyboard past zich aanNog beperkte support

▪ search▪ email▪ url▪ tel▪ number▪ range▪ date▪ month▪ week▪ time▪ datetime▪ datetime-local▪ color

Page 32: HTML & CSS | Competence Center Front-end & UX, Ordina

HTML5 | Placeholder text

Extra hulp bij invullen veldIE10+Attribuut placeholder

<form>

<input name="q" placeholder="Go to a Website">

<input type="submit" value="Search">

</form>

Page 33: HTML & CSS | Competence Center Front-end & UX, Ordina

HTML5 | Features detecteren

Features detecteren cruciaalBetere gebruikerservaringProgressive enhancement

Betere ervaring voor wie bepaalde features ondersteundEventueel zelfs kijken naar de beschikbare bandbreedte

Oplossing: Modernizr

Page 34: HTML & CSS | Competence Center Front-end & UX, Ordina

Voorbeeld met canvas:

if (Modernizr.canvas) {

// let's draw some shapes!

} else {

// no native canvas support available :(

}

HTML5 | Features detecteren

Page 35: HTML & CSS | Competence Center Front-end & UX, Ordina

HTML5 | Geolocatie getCurrentPosition

Locatie delenGebruiker moet bevestigenKan fout gaan: error detectieLager dan IE9 geen supportTwee types locatiebepaling

DriehoeksmetingVia GPS (meer verbruik)

Manuele polling

navigator.geolocation.getCurrentPosition(show_map, handle_error

)

function show_map(position) {var latitude = position.coords.latitude;var longitude = position.coords.longitude;var accuracy = position.coords.accuracy;// let's show a map or do something

interesting!}

function handle_error(err) { if (err.code == 1) {

// how about no!}

}

Page 36: HTML & CSS | Competence Center Front-end & UX, Ordina

HTML5 | Geolocatie watchPosition

Locatie continue updatenZelfde format als getCurrentPosition

succes functionerror function

Toestel zal polling bepalen aan de hand van beweging

navigator.geolocation.watchPosition(show_map, handle_error

)

function show_map(position) {var latitude = position.coords.latitude;var longitude = position.coords.longitude;var accuracy = position.coords.accuracy;// let's show a map or do something

interesting!}

function handle_error(err) { if (err.code == 1) {

// how about no!}

}

Page 37: HTML & CSS | Competence Center Front-end & UX, Ordina

HTML5 | Geolocatie positionoptions object

Drie propertiesenableHighAccuracytimeoutmaximumAge

navigator.geolocation.getCurrentPosition(success_calback, error_callback,positionoptions_object

)

Voorbeeld positionoptions object:

{enableHighAccuracy: true,timeout: 4000,maximumAge: 70000

}

geolocatie.html

Page 38: HTML & CSS | Competence Center Front-end & UX, Ordina

HTML5 | Geolocatie - geoPosition.js

Geolocatie API is niet uniformW3C Geolocation APIIP Geolocation ServicesAPI’s of mobile platforms

Fallback voor:IE 6, 7, 8BlackberryPalm OS

Page 39: HTML & CSS | Competence Center Front-end & UX, Ordina

HTML5 | Localstorage (Web Storage)

Cookies

Iedere HTTP request dataTraag / TragerGeen encryptie (tenzij alles SSL)4 KB dataWeinig opslag

Localstorage

Op client niveauVeel storageBlijft bestaan na page refreshGeen server interventieKey, value pairs

Page 40: HTML & CSS | Competence Center Front-end & UX, Ordina

HTML5 | Localstorage (Web Storage)

Specs

Key, value pairs (JSON)Opslag adhv key naamData ophalen via die naamData = types ondersteund door JSData opgeslagen als stringData ophalen evt parser gebruiken

Set / Get

localStorage.setItem(‘bar’, foo);

var bar = localStorage.getItem(‘bar’);

of

localStorage.setItem[‘bar’] = foo;

var bar = localStorage.getItem[‘bar’];

localstorage.html

Page 41: HTML & CSS | Competence Center Front-end & UX, Ordina

HTML5 | Localstorage (Web Storage)

Limitaties

Gemiddeld 5 MBIs suggestie in de specQUOTA_EXCEEDED_ERR wanneer over limietNiet mogelijk meer ruimte te vragen

Page 42: HTML & CSS | Competence Center Front-end & UX, Ordina

Vragen?

Page 43: HTML & CSS | Competence Center Front-end & UX, Ordina

Leesvoer

HTML● HTML5 Rocks: http://www.html5rocks.com● Dive Into HTML5: http://diveintohtml5.info/ ● WTF, HTML and CSS?: http://wtfhtmlcss.com/

CSS● Magic of CSS: http://adamschwartz.co/magic-of-css/ ● CSS Diner: Where we feast on CSS Selectors: http://flukeout.github.io/

Responsive design● Grid: http://www.adamkaplan.me/grid/ ● Responsive web design, HiDPI displays and the transition period: http://www.slideshare.net/jandewilde/responsive-web-design-

hidpi-displays-and-the-transition-period ● This Is Responsive: http://bradfrost.github.io/this-is-responsive/ ● Twitter Bootstrap (check demo's, docs): http://getbootstrap.com/ ● Zurb Foundation (check demo's, docs): http://foundation.zurb.com/