98
Frontend Best Practices

Frontend Best Practices

Embed Size (px)

DESCRIPTION

Vortrag von der WebTech 2011 in Mainz - lose zusammengetragene Empfehlungen für bessere Ergebnisse im Frontend

Citation preview

Page 1: Frontend Best Practices

Frontend Best Practices

Page 2: Frontend Best Practices

‣Frontendentwickler

‣10 Jahre Agenturerfahrung

‣12 Jahre Arbeit im und fürs Web

‣Gründer der Webkrauts

‣Blogger

‣Autor für: PHPMagazin, PHPUser, T3N,Webstandards-Magazin

‣Fachliche Buchbetreuung bei Galileo, O'Reilly, MuT

Jens Grochtdreis

Page 3: Frontend Best Practices
Page 4: Frontend Best Practices

Die drei wichtigsten Best Practices

Nachdenken Recherchieren

http://goo.gl/HbFx0http://goo.gl/NYGeI

Experimentieren

http://goo.gl/LohPq

Page 5: Frontend Best Practices

Das Web ist per se flexibel

Page 6: Frontend Best Practices

„Responsive Design“ ist also keine Neuerfindung

Page 7: Frontend Best Practices
Page 8: Frontend Best Practices

Der Konsument kann Informationen aus dem Internet

nutzen, wie er es möchte.

Page 9: Frontend Best Practices

http://mediaqueri.es/

Page 11: Frontend Best Practices

wichtige Erkenntnis: Es kann nicht DIE EINE Darstellungsform geben!

Page 13: Frontend Best Practices

Unser Layout ist nur eine Empfehlung!

Page 14: Frontend Best Practices

Frühzeitig auf Entwicklungsstrategie

einigen

Page 15: Frontend Best Practices

IE ≠ modern

http://css3generator.com/

Page 16: Frontend Best Practices

Progressive Enhancement

http://www.alistapart.com/articles/understandingprogressiveenhancement/

‣ Fokus ist auf den Content, denn um den geht es am Ende (fast) immer

Page 17: Frontend Best Practices

Graceful Degredation

‣ Fokus ist auf den modernsten Browsern

‣ ältere Browser bekommen eine abgespeckte Version

http://stuffandnonsense.co.uk/

Page 18: Frontend Best Practices

Brutal Degredation

bis einschließlich IE8 moderne Browser

http://www.fillerati.com/

Page 19: Frontend Best Practices

http://workdiary.de/

Page 20: Frontend Best Practices

Semantik

Page 21: Frontend Best Practices

Ein Slider - Grobskizze

IMAGE

KategorieÜberschriftHier steht ein kurzer erklärender Text.

InfosZusatzinfo1Zusatzinfo2

IMAGE

KategorieÜberschriftHier steht ein kurzer erklärender Text.

InfosZusatzinfo1Zusatzinfo2

IMAGE

KategorieÜberschriftHier steht ein kurzer erklärender Text.

InfosZusatzinfo1Zusatzinfo2

Page 22: Frontend Best Practices

Mal ohne Semantik

Page 23: Frontend Best Practices

Mal mit Semantik

Page 24: Frontend Best Practices

Das falsche Element!

Page 25: Frontend Best Practices

Warum keine Überschrift?

http://www.faz.net/

Page 26: Frontend Best Practices

neue semantische Elemente

Page 27: Frontend Best Practices

An die Konsequenzen denken

http://code.google.com/p/html5shim/

‣ HTML5-Seiten funktionieren in alten Browsern nur mittels Javascript. Das betrifft im Wesentlichen IE bis einschließlich Version 8.

http://www.modernizr.com/

Page 28: Frontend Best Practices

Mit Javascript

Page 29: Frontend Best Practices

Ohne Javascript

Page 33: Frontend Best Practices

Erkenntnisse gelten selten für alle Zeiten

Page 34: Frontend Best Practices

‣ Das Drei-Schichten-Modell überlebt sich, denn HTML5 ist im Wesentlichen Javascript!

‣ Browser ändern sich. Deshalb ist es weniger wichtig, alle Javascripte in den Fuss der Seite zu platzieren.

http://goo.gl/2h7TZ

Page 35: Frontend Best Practices

Über Barrieren nachdenken

Page 36: Frontend Best Practices

Keine vermeidbaren Barrieren

‣ Das Netz ermöglicht es erstmals, dass JEDER auf Informationen zugreifen kann und in Interaktion treten kann.

‣ Warum also sich selber und die Reichweite des eigenen Angebotes beschränken?

http://failblog.org/2010/04/08/epic-fail-photos-hand-rail-fail/

Page 37: Frontend Best Practices

mehr ...

mehr ...

mehr ...

mehr ...

Page 38: Frontend Best Practices

Konkretes Beispiel

Page 39: Frontend Best Practices

Lösung dafür: WAI-ARIA

Page 40: Frontend Best Practices

Kleiner Bildschirm

Keine Maus

Keine Popups

Page 41: Frontend Best Practices

Paradigmenwandel: Barrierefreiheit alsnachträglicher Einfall, drangedübelt

http://www.flickr.com/photos/beelzebozo/1503756/

Page 42: Frontend Best Practices

Barrierefreiheit als integrales Element

http://www.flickr.com/photos/pixeldiva/2109688648/

Page 44: Frontend Best Practices

Farbkontraste

Page 45: Frontend Best Practices

http://www.ctrl-verlust.net/

Page 47: Frontend Best Practices

http://snurl.com/t58gj

Page 48: Frontend Best Practices

Fokus

Page 49: Frontend Best Practices

So nicht!

Page 50: Frontend Best Practices

Den Fokus nicht vergessen!

Page 51: Frontend Best Practices

moderne Selektoren

Page 52: Frontend Best Practices

‣ Können ältere IE (bis einschließlich Version 8) nicht.

‣ Ihnen kann mittels Javascript geholfen werden.

‣Wenn es sich um keine „lebensnotwendigen“ Operationen handelt, ist eine Nachhilfe via Javascript okay.

Page 53: Frontend Best Practices
Page 55: Frontend Best Practices

DRY - Don‘t repeat yourself

Page 56: Frontend Best Practices

„ If I can see further than anyone else, it is only because I am standing

on the shoulders of giants. “

Sir Isaac Newton

Page 57: Frontend Best Practices

Frameworks nutzen!

Page 58: Frontend Best Practices

Nicht blind nutzen

Page 59: Frontend Best Practices

‣ Plugins für jQuery, Wordpress, TYPO3 (...) müssen nicht sinnvoll und gut sein.

‣ Erst testen! Nicht unkritisch nutzen!

Page 60: Frontend Best Practices

Nicht in Tools und Techniken zu sehr verlieben

Page 61: Frontend Best Practices

‣ Nach sinnvollen Einsatzzwecken von Techniken suchen.

‣ Nicht alles machen, weil es gerade möglich ist.

‣ Immer an die Semantik denken.

Page 62: Frontend Best Practices

http://benthebodyguard.com/

Page 64: Frontend Best Practices

Realistische Dummy-Inhalte

Page 65: Frontend Best Practices

Navigation

Page 66: Frontend Best Practices

Vorsicht bei horizontaler Navigation

http://grochtdreis.de/weblog/2009/10/18/schoener-navigationstitel/

Page 67: Frontend Best Practices

Dummybilder

http://dummyimage.com/ http://lorempixum.com/

Page 68: Frontend Best Practices

Dummybilder

http://placekitten.com/

Page 70: Frontend Best Practices

http://bueltge.de/html-ipsum/

Page 71: Frontend Best Practices
Page 72: Frontend Best Practices
Page 73: Frontend Best Practices

Was konnten wir bisher mit CSS machen?

Page 74: Frontend Best Practices

‣ Texte formatieren

‣ Farben für Vorder- und Hintergründe

‣ Positionierungen

‣ Floats

‣ Bilder werden für viele Lösungen benötigt

‣ Manchmal wird Extra-Markup für Bilder-Lösungen benötigt

‣ Transparenz mit Nebenwirkungen

Page 75: Frontend Best Practices

Welche Lücke füllt CSS3?

Page 76: Frontend Best Practices

Animationen

Verringerung des Grafikeinsatzes

neue Layoutmodelle

mehr Möglichkeiten mit Rahmen und Hintergründen

neue Selektoren

Page 77: Frontend Best Practices

runde Ecken

Verläufe (gradient)

Transitions

mehrere Spaltencalc()

Transparenz mit rgba()

media-queries

Page 78: Frontend Best Practices

Die Vorteile

‣Weniger Schmuckbilder werden benötigt.

‣Weniger Javascript wird benötigt.

‣ Animationen und Transitionen sind mittels CSS schneller, als mittels Javascript.

‣ Es wird seltener Code nur für Optik benötigt, der Quellcode schmaler und lesbarer.

Page 79: Frontend Best Practices

Die Nachteile

Es gibt keine!

Page 80: Frontend Best Practices

Oder doch einen kleinen

Page 81: Frontend Best Practices

Individuelle Schriften mittels @font-face

Page 82: Frontend Best Practices

http://campwapo.org/

Page 84: Frontend Best Practices

‣ Alle Browser können es, auch der IE6!

‣ Die eigentlich gedachte Syntax funktioniert nicht!

‣ Die Resultate sind unter Windows oft erbärmlich, da dessen Schriftrendering zu vielen Schriftarten nicht passt.

‣ Lizenzprobleme

‣ sehr viele freie Schriften

‣ einige gute Tools und Dienste

http://www.delicious.com/Flocke/font-face

Page 85: Frontend Best Practices

http://www.fontsquirrel.com/

Page 86: Frontend Best Practices

http://www.google.com/webfonts

Page 87: Frontend Best Practices

Textersetzung und Cufon

‣ Cufon funktioniert nur mit Javascript und ist ein Barrierefreiheitsproblem. Eine Seite mit Cufon ist nicht barrierefrei. [http://goo.gl/8HWIq]

‣ Alle CSS-Textersetzungstechniken haben irgendeinen Nachteil, auch bei Barrierefreiheit.

http://www.paciellogroup.com/blog/2009/06/notes-accessibility-of-text-replacement-using-html5-canvas/

Page 88: Frontend Best Practices

HTML5-Formularelemente

Page 89: Frontend Best Practices

HTML5-Formularelemente

Page 90: Frontend Best Practices

http://wufoo.com/html5/

Page 91: Frontend Best Practices

Date

Opera 11.5

Chrome 15 dev Firefox 5

Page 92: Frontend Best Practices

http://wufoo.com/html5/attributes/01-placeholder.html

Das placeholder-Attribut

Page 93: Frontend Best Practices

Und wenn ein Browser die neuen Elemente nicht kennt?

Page 94: Frontend Best Practices

Dann werden die neuen Input-Elemente zu

<input type=“text“>

Page 95: Frontend Best Practices

Eingebaute Validierung

Firefox 5 Mac

Opera 11.5 Mac

Chrome 15 dev Mac

Chrome kommt mit skalierten Seiten nicht zurecht!

Page 96: Frontend Best Practices

Und wenn der Browser die Validierung nicht kennt? ‣ Ignorieren ( = Progressive enhancement)

‣ JS-Alternativen bei Bedarf nachladen, bspw. mit Modernizr (http://modernizr.com)

‣ Polyfills verwenden

‣ https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills

Page 97: Frontend Best Practices

Twitter: @Flocke

Slideshare: Flocke669

Page 98: Frontend Best Practices

Jens Grochtdreishttp://grochtdreis.de

http://twitter.com/Flockehttp://webkrauts.de

http://slideshare.net/Flocke669

Diese Präsentation steht unter der Creative Commons Lizenz „Attribution-ShareAlike 2.0“ http://creativecommons.org/licenses/by-sa/2.0/de/