Table Of ContentEffizientes Design, sauberer Code
Das Beste an
HTML CSS
&
Best Practices für
standardkonformes Webdesign
Ben Henick
O’Reilly
Deutsche Übersetzung von Jørgen W. Lang
Das Beste an HTML & CSS
Best Practices für standardkonformes Webdesign
Das Beste an HTML & CSS
Best Practices für standardkonformes Webdesign
Ben Henick
DeutscheÜbersetzungvonJørgenW.Lang
Beijing(cid:1)Cambridge(cid:1)Farnham(cid:1)Köln(cid:1)Sebastopol(cid:1)Taipei(cid:1)Tokyo
DieInformationenindiesemBuchwurdenmitgrößterSorgfalterarbeitet.Dennochkönnen
Fehlernichtvollständigausgeschlossenwerden.Verlag,AutorenundÜbersetzerübernehmen
keinejuristischeVerantwortungoderirgendeineHaftungfüreventuellverbliebeneFehlerund
derenFolgen.
AlleWarennamenwerdenohneGewährleistungderfreienVerwendbarkeitbenutztundsind
möglicherweiseeingetrageneWarenzeichen.DerVerlagrichtetsichimwesentlichennachden
SchreibweisenderHersteller.DasWerkeinschließlichallerseinerTeileisturheberrechtlich
geschützt.AlleRechtevorbehalteneinschließlichderVervielfältigung,Übersetzung,
MikroverfilmungsowieEinspeicherungundVerarbeitunginelektronischenSystemen.
KommentareundFragenkönnenSiegerneanunsrichten:
O’ReillyVerlag
Balthasarstr.81
50670Köln
Tel.:0221/9731600
Fax:0221/9731608
E-Mail:[email protected]
CopyrightderdeutschenAusgabe:
(cid:1)2010byO’ReillyVerlagGmbH&Co.KG
1.Auflage2010
DieOriginalausgabeerschien2009unterdemTitel
HTML&CSS TheGoodPartsimVerlagO’ReillyMedia,Inc.
DieDarstellungeinesKatzenfrettsimZusammenhangmitdemThema
HTMLundCSSisteinWarenzeichenvonO’ReillyMedia,Inc.
BibliografischeInformationDerDeutschenNationalbibliothek
DieDeutscheNationalbibliothekverzeichnetdiesePublikationinder
DeutschenNationalbibliografie;detailliertebibliografischeDaten
sindimInternetüberhttp://dnb.d-nb.deabrufbar.
Lektorat:InkenKiupel&SusanneGerbert,Köln
Korrektorat:FriederikeDaenecke,Zülpich
Satz:ReemersPublishingServicesGmbH,Krefeld;www.reemers.de
Umschlaggestaltung:MichaelOreal,Köln
Produktion:KarinDriesen,Köln
Belichtung,DruckundbuchbinderischeVerarbeitung:DruckereiKösel,Krugzell;www.koeselbuch.de
ISBN13978-3-89721-617-4
DiesesBuchistauf100%chlorfreigebleichtemPapiergedruckt.
Inhalt
Einleitung XV
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 Hypertext von innen 1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DasWebohneLinks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
URIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
MitLinksumgehen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
DenAnwenderkomfortdurchLinksverbessern. . . . . . . . . . . . . . . . . . . . . . . 3
HerausforderungenbeiderImplementierungvonHypertext . . . . . . . . . . . . . 4
2 Mit HTML-Markup arbeiten 7
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
HTML-Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Tags,ElementeundAttribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Seitenstruktur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Darstellungsmodi,VariantenvonHTMLundDokumenttyp-Deklarationen . . . . 10
HTMLoderXHTML?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Strict,TransitionaloderFrameset?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
DieGeschichtederzweiBoxmodelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
DerrichtigeDokumenttypfürIhrProjekt. . . . . . . . . . . . . . . . . . . . . . . . . . . 13
DieschönenSeiten:universelleAttribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Stylesheet-Anweisungenper»class«und»id«einbinden . . . . . . . . . . . . . . . . 14
Inhaltbeschreibenmit»title«und»lang« . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
DasAttribut»contenteditable«inHTML5. . . . . . . . . . . . . . . . . . . . . . . . . . 16
DieTrennungvonInhalt,Strukur,PräsentationundVerhalten . . . . . . . . . . . . . 17
DieTrennunginderPraxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
MitDokumentenbäumenarbeiten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Browser,ParsingundRendering. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
DynamischesHTML,AjaxundRendering . . . . . . . . . . . . . . . . . . . . . . . . . . 21
| V
3 CSS-Überblick 23
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
StylesheetsundHTML-Dokumenteverbinden . . . . . . . . . . . . . . . . . . . . . . . . . 23
EinStylesheetper»link«-Elementeinbinden. . . . . . . . . . . . . . . . . . . . . . . . . 23
ConditionalCommentszumAnsprechenverschiedenerVersionendesInternet
Explorers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
»link«durch»style«ersetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
DieVerwendungvon»@import«. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Fingerwegvom»style«-Attribut!. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
RegelnfürbestimmteMedientypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
SelektorenfürElemente,
diemitStilenversehenwerdensollen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Eltern,KinderundGeschwister:BeziehungenzwischenElementen . . . . . . . . 28
EinfacheSelektoren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
GruppierteSelektorenundSelektorenfürNachfahrenelemente . . . . . . . . . . . 30
Kindelementedirektauswählen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Regelkonflikte,PrioritätundPräzedenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
PrioritätderSelektoren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Regelkonfliktevermeiden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
VererbteWerte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
UntersuchungvonCSS-Eigenschaftenund-Werten. . . . . . . . . . . . . . . . . . . . . . 34
CSS-Maßeinheiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
MedienübergreifendeLängen-undMaßeinheiten . . . . . . . . . . . . . . . . . . . . . 34
PixelwerteundPunktdichte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
DruckfreundlicheLängeneinheiten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Schriftgrößen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Farbwerte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
DiewichtigstenCSS-EigenschaftenfürdasLayout. . . . . . . . . . . . . . . . . . . . . . . 38
4 Eine gesunde Beziehung zu den Webstandards entwickeln 41
. . . . . . . . . . . . .
VieleStandardsfürsWeb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
WozuWebstandards?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Interoperabilität. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
DieKräftedesMarktes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Vorwärtskompatibilität. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Zugänglichkeit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
PrioritätenderHersteller. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
AltlastenalsBremse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
BestPractices(undihrFehlen). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
StrikteGesetzesauslegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
VI | Inhalt
DerMittelweg:Standardfreundlichkeit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
VorteilederStandardfreundlichkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
DieRegelnfürstandardfreundlicheEntwicklung. . . . . . . . . . . . . . . . . . . . . . 46
5 Effektive Stylesheets und Dokumentenstrukturen 49
. . . . . . . . . . . . . . . . . . . .
DievierwichtigstenAngewohnheitenfüreffektiveStylesheets . . . . . . . . . . . . . . 49
Angewohnheit1:InderKürzeliegtdieWürze . . . . . . . . . . . . . . . . . . . . . . . 50
Angewohnheit2:Flexibilität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Angewohnheit3:Konsistenz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Angewohnheit4:AufKursbleiben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
CSS-ZenunddieErfahrungdesGestalters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
DieFunktionsprinzipiendesCSS-Zen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
InformationsarchitekturundUsabilitydesWebs. . . . . . . . . . . . . . . . . . . . . . . . 61
Mehrdimensionalität. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Navigation:OrtsbestimmungundOrientierungshilfen . . . . . . . . . . . . . . . . . 64
Besucherstrategien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
RichtlinienfürdieErstellungbenutzbarerSchnittstellen . . . . . . . . . . . . . . . . 66
SzenariosundBenutzertestszurVorhersagevonBesucherverhalten . . . . . . . . 68
TaxonomieundNomenklatur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
TaxonomieaufdieKaskadeanwenden. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
NeueStrukturelemente(HTML5). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6 Lösungen für das CSS-Layout-Puzzle 75
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DasCSS-BoxmodellunddieGrößevonElementen. . . . . . . . . . . . . . . . . . . . . . 75
QuirksModeundStrictMode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
auto-Werte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
DieEigenschaft»overflow« . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
LängeundBreitefürElementeanstelleexpliziterWertenurbegrenzen. . . . . . 79
MitUnwägbarkeitenumgehen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Rahmen,Innen-undAußenabstände. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
NegativeAußenabstände. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
ZusammengefassteAußenabstände . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Rahmen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Innenabstände . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
DasBox-VerhaltenderWurzelelementedesDokuments . . . . . . . . . . . . . . . . 84
LängenangabenfürBox-EigenschaftenundProzentwerte. . . . . . . . . . . . . . . . 85
Darstellungsrollen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Inline-Elemente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Block-Elemente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Inhalt | VII
Inline-Block-Elemente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
DasFlussverhalteneinesElements
mit»display«ändern. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
DieEigenschaft»display« . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
DieEigenschaften»float«und»clear«. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
DasVerhaltenvonFloats. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Das»float«-VerhaltenmitderEigenschaft»clear«steuern . . . . . . . . . . . . . . . 90
»float«-Kontext. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
MehrspaltigeLayoutsimplementieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
EinzweispaltigesTabellen-LayoutnachCSSportieren. . . . . . . . . . . . . . . . . . 92
DieRegelnfürdaszweispaltigeLayout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
VorteilederBeschränkungvonLayout-AnweisungenaufStylesheets . . . . . . . 95
ZweiSpaltenaufdreiSpaltenerweitern . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
MehralsdreiSpalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
SemantischleereContainerfürmehrspaltigeLayouts . . . . . . . . . . . . . . . . . . 98
FortgeschrittenesLayoutmitCSS3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
CSS-EigenschaftenfürdiePositionierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
WiediePositionierungfunktioniert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
PositionierteElementebegrenzen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
DieEigenschaften»visibility«und»z-index«. . . . . . . . . . . . . . . . . . . . . . . . . . . 103
ÄndernderSichtbarkeitohneAuswirkungenaufdenDokumentenfluss. . . . . 103
Stapelung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Quellcode-ReihenfolgeundpräzisesLayoutfürdieNavigation. . . . . . . . . . . . . . 105
DieListeausrichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Navigationslistengenauplatzieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
LayouttypenundHilfslinien-Raster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Feste,proportionaleundflexibleLayouts. . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Hilfsliniendefinieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
DieDrittelregel,derGoldeneSchnittunddieFibonacci-Folge . . . . . . . . . . . . 113
ImplementierungeinesflexiblenLayoutrasters . . . . . . . . . . . . . . . . . . . . . . . 114
7 Listen 117
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
GeordneteundungeordneteListen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Browser-StandarddarstellungfürgeordneteundungeordneteListen. . . . . . . . 117
GültigegeordneteundungeordneteListenerstellen. . . . . . . . . . . . . . . . . . . . 118
DieEigenschaft»list-style-type«unddasAttribut»type« . . . . . . . . . . . . . . . . 118
Das»nav«-Element(HTML5). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
DieZählweiseingeordnetenListenanpassen . . . . . . . . . . . . . . . . . . . . . . . . 121
VIII | Inhalt