Modularisierung von Webseiten

Post on 22-May-2015

613 views 0 download

description

Webseiten sind keine Gesamtkunstwerke, sondern Zusammenstellungen einzelner Module. Dieser Vortrag von der Jax 2013 ergründet, wie man vorgeht, um sinnvolle und pflegbare M;odule zu erschaffen. Dabei wird vor allem Wert auf das CSS gelegt. Das CSS wird dank Sass ebenso modular, wie das HTML.

transcript

Webseiten modular entwickeln

Jens Grochtdreis

‣Frontendentwickler

‣seit 1999 Arbeit im und fürs Web

‣seit 2009 selbständig

‣Frontendentwicklung

‣Schulung

‣Beratung

‣twitter.com/Flocke

Seite ist eine Ansammlung von Modulen

‣ Jede Box hat eine obere Linie.

‣ Die Inhalte differieren, sind aber prinzipiell Listen.

‣ Eine Box kann eine Überschrift enthalten.

Platzierung sollte egal sein

Module entwickeln, nicht ganze Seiten!

Layout: Seitengrundgerüst

Module tragen Designinformationen

Umfangreiche Modulliste

http://structurae.de

Jedes dieser Module ist eine eigene Datei

Module richtig entwickeln

Das Modul ist sein eigenes Universum!

Trennung zwischen Layout und Design

Semantisch = HTML Design = CSS

Schnipsel im CSS dank Präprozessoren

CSS ist manchmal nervtötend unflexibel.

Einfacher wird es, wenn man CSS „programmiert“!

zentrales Stylesheet importiert Module und generiert ein CSS-File

Variablen

Module in Sass

‣ Ein Unterstrich vor der Dateiendung verhindert das rendern als einzelne Datei. Es entsteht ein „partial“. So kann man diese in eine zentrale Datei importieren und nachher gesammelt rendern lassen.

Richtiger Umgang mit Klassen

Styling über Klassen

Das media-Element

http://jsbin.com/ipupew/2/

https://smacss.com/

1. Base

2. Layout

3. Module

4. State (Zustand)

5. Theme

Die einzelnen Bestandteile

http://bem.info/method/

BEM

Block, Element, Modifier

Namenskonventionen

Klassen sind manchmal sinnvoller, als

Kontextselektoren

Semantische Klassen?

Nein! Pflegbare!

CSS = OptikSemantik = HTML

Farben über Klassen zuweisen

CSS

SCSS

Variablen in Sass

‣ IDs wenn überhaupt dann nur für grundlegende Elemente des Layouts nutzen.

‣ #header, #main, #sidebar, #footer

‣ Und natürlich für Formularelemente!

‣ Optik von Modulen über separate Klassen modifizieren.

‣Weitere Trennung sinnvoll:

‣ Klassen nur für Layout

‣ Klassen nur für Design

‣ Grundaufbau

‣ Theme

‣ Zustand

‣ Klassen nur für Zugriff mittels JavaScript

Realistische Dummy-Inhalte

Navigation

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

Vorsicht bei horizontaler Navigation

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

Dummybilder

http://dummyimage.com/ http://lorempixel.com/

Dummybilder

http://placekitten.com/