Einführung in XHTML, CSS und Webdesign programmer’s choice
Hier eine Auswahl:
Spring 2.5 Alfred Zeitner, Birgit Linner, Martin Maier, Thorsten Göckeler 416 Seiten € 39,95 [D], € 41,10 [A] ISBN 978-3-8273-2622-5
Spring ist ein Open Source Applikationsframework für die Java Plattform mit dem Ziel, Java Anwendungen zu vereinfachen und guten Programmierstil zu fördern. Dabei steht die Entkopplung einzelner Komponenten im Vorder- grund. Ziel des Buches ist es, dem Leser einen schnellen und praxisnahen Ein- stieg im Umgang mit dem Spring-Framework zu ermöglichen. Anhand eines durchgängigen Fallbeispiels werden schrittweise Spring-Techniken einge- führt und jeweils an einem Codebeispiel erläutert. So entsteht anhand von immer komplexeren Anforderungen eines fiktiven Kunden aus einem einfa- chen Lagerservice ein Lagerverwaltungssystem mit Bestellfunktionalität.
Suchmaschinen-Optimierung Daniel Koch 352 Seiten € 29,95 (D) € 30,80 (A) ISBN 978-3-8273-2469-6
Suchmaschinen sind für den Großteil der Online-User DAS zentrale Mittel für die Informationssuche. Umso wichtiger ist es daher, die eigenen Seiten möglichst weit oben in den Trefferlisten zu platzieren. Dieses Buch zeigt, wie Suchmaschinen arbeiten und wie man seinen Webauftritt für Google & Co. optimieren kann. Als besonderen Anreiz soll das Buch einen SEO-Wettbe- werb vorantreiben. Der orientiert sich an der »Hommingberger Gepardenfo- relle« von Heise. Dazu werden im Buch die entsprechenden SEO-Methoden anhand eines fiktiven Suchbegriffs vorgestellt. Die Leser können so den Er- folg ihrer Optimierungsversuche in direkter Konkurrenz zueinander verfol- gen. Michael Jendryschik
Einführung in XHTML, CSS und Webdesign Standardkonforme, moderne und barrierefreie Websites erstellen
2., aktualisierte und erweiterte Auflage
An imprint of Pearson Education München • Boston • San Francisco • Harlow, England Don Mills, Ontario • Sydney • Mexico City Madrid • Amsterdam Bibliografische Information Der Deutschen Nationalbibliothek
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über
Die Informationen in diesem Produkt werden ohne Rücksicht auf einen eventuellen Patentschutz veröffentlicht. Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt. Bei der Zusammenstellung von Abbildungen und Texten wurde mit größter Sorgfalt vorgegangen. Trotzdem können Fehler nicht vollständig ausgeschlossen werden. Verlag, Herausgeber und Autoren können für fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung übernehmen. Für Verbesserungsvorschläge und Hinweise auf Fehler sind Verlag und Herausgeber dankbar.
Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der Speicherung in elektronischen Medien. Die gewerbliche Nutzung der in diesem Produkt gezeigten Modelle und Arbeiten ist nicht zulässig.
Fast alle Hardware- und Softwarebezeichnungen und weitere Stichworte und sonstige Angaben, die in diesem Buch verwendet werden, sind als eingetragene Marken geschützt. Da es nicht möglich ist, in allen Fällen zeitnah zu ermitteln, ob ein Markenschutz besteht, wird das ®-Symbol in diesem Buch nicht verwendet.
Umwelthinweis: Dieses Produkt wurde auf chlorfrei gebleichtem Papier gedruckt. Um Rohstoffe zu sparen, haben wir auf die Folienverpackung verzichtet.
10987654321
11 10 09
ISBN 978-3-8273-2739-0
© 2009 by Addison-Wesley Verlag, ein Imprint der Pearson Education Deutschland GmbH, Martin-Kollar-Straße 10–12, D-81829 München/Germany Alle Rechte vorbehalten Lektorat: Brigitte Bauer-Schiewek, [email protected] Sprachlektorat: Sybille Feldmann Fachlektorat: Manuela Hoffmann Herstellung: Martha Kürzl-Harrison, [email protected] Coverkonzeption und -gestaltung: Marco Lindenbeck, webwo GmbH, [email protected] Satz: Reemers Publishing Services GmbH, Krefeld, www.reemers.de Druck und Verarbeitung: Kösel, Krugzell (www.KoeselBuch.de) Printed in Germany Inhalt
1 Einleitung ...... 13 1.1 Vorwort ...... 13 1.2 Über dieses Buch ...... 14 1.2.1 Entstehung ...... 14 1.2.2 Aufbau ...... 17 1.2.3 Fehlermeldungen und Verbesserungsvorschläge ...... 19 1.2.4 Koautoren ...... 19 1.2.5 Vorveröffentlichungen ...... 20 1.3 Weiterbildung, Diskussionen und Problemlösungen ...... 21 1.4 Danksagung ...... 22
2 Grundlagen ...... 25 2.1 Begrifflichkeiten: Website, Webseite, Homepage ...... 25 2.2 Textauszeichnung: Die erste Komponente des Webs ...... 27 2.2.1 Dokumente ...... 28 2.2.2 Strukturorientiert schreiben ...... 29 2.2.3 Standards: SGML und XML ...... 30 2.2.4 Zusammenfassung ...... 34 2.3 Hypertext: Die zweite Komponente des Webs ...... 34 2.3.1 Eine kurze Geschichte des Hypertexts ...... 35 2.4 Das World Wide Web ...... 39 2.4.1 Gewirr, Verknüpfungen und Netze ...... 40 2.4.2 Das World Wide Web Consortium ...... 42 2.5 Technische Fundamente des World Wide Webs ...... 44 2.5.1 URI ...... 44 2.5.2 HTTP ...... 49 2.5.3 MIME-Typen ...... 52 2.6 Sprachen des World Wide Webs ...... 54 2.6.1 HTML ...... 54 2.6.2 XHTML ...... 56 2.6.3 Warum sollten Webautoren heute auf XHTML setzen? ...... 57 2.6.4 Ausblick: XHTML 2.0, (X)HTML 5 ...... 59 2.6.5 CSS ...... 61 2.6.6 Spezifikationen, Empfehlungen und Arbeitsentwürfe ...... 64 2.7 Browser ...... 65 2.7.1 Die Entwicklung bis zum Browserkrieg ...... 65 2.7.2 Browserkrieg ...... 69 2.7.3 Windows Internet Explorer ...... 71 2.7.4 Firefox ...... 73 2.7.5 Opera ...... 74 2.7.6 Konqueror ...... 76 2.7.7 Safari ...... 77 Inhalt
2.7.8 Lynx ...... 78 2.7.9 Browsertests ...... 79 2.7.10 Bezugsquellen und Testumgebungen ...... 82 2.8 Webstandards ...... 85 2.8.1 Was ist ein Standard? ...... 85 2.8.2 Der Sinn von Standards ...... 86 2.8.3 Die Realität der Browserhersteller ...... 86 2.8.4 Die Realität der Standards ...... 87 2.8.5 Standards sind mehr als nur pure Regeln ...... 88 2.8.6 Was also sind Webstandards? ...... 88 2.9 Barrierefreiheit ...... 89 2.9.1 Warum dies auch eine Einführung in barrierefreies Webdesign ist ...... 89 2.9.2 Welche Arten von Behinderungen müssen Sie berücksichtigen? ...... 91 2.9.3 Verordnungen und Richtlinien ...... 97 2.10 Zeichenkodierung ...... 104 2.10.1 00101010 – Am Anfang waren null und eins ...... 104 2.10.2 Von Bits und Bytes, dezimal und hexadezimal ...... 104 2.10.3 Begrifflichkeiten ...... 106 2.10.4 Zeichenkodierungen ...... 106 2.10.5 Das Problem mit Zeichenkodierungen ...... 111 2.10.6 Zeichendarstellung ...... 113 2.10.7 Zeicheneingabe ...... 114 2.10.8 Die Wahl der »richtigen« Zeichenkodierung ...... 118 2.11 Typografie ...... 119 2.11.1 Leerzeichen und Festabstände ...... 120 2.11.2 Waagerechte Striche ...... 121 2.11.3 Anführungszeichen, Apostroph und falsche Freunde ...... 125 2.11.4 Punkte ...... 128 2.11.5 Zahlen, Einheiten und Währungszeichen ...... 129 2.11.6 Mathematische Symbole und Formeln ...... 131 2.11.7 Pfeile ...... 133
3 Hilfsmittel ...... 135 3.1 Editoren ...... 135 3.1.1 WYSIWYG-Programme ...... 135 3.1.2 Texteditoren ...... 138 3.1.3 Fazit ...... 142 3.2 Validatoren ...... 143 3.2.1 Natürliche und formale Sprachen ...... 143 3.2.2 Syntaktische Fehler und proprietäre Erweiterungen ...... 145 3.2.3 Gültigkeit und Wohlgeformtheit ...... 146 3.2.4 W3C Markup Validation Service ...... 147 3.2.5 Schema-Validator ...... 150 3.2.6 Grenzen ...... 152 3.2.7 CSS-Validator ...... 152 3.3 Bildbearbeitung ...... 153 3.3.1 Rastergrafiken ...... 153 3.3.2 Vektorgrafiken ...... 157
6 Inhalt
3.4 Nützliche Werkzeuge ...... 160 3.4.1 Tidy ...... 160 3.4.2 FTP ...... 164 3.4.3 Xenu’s Link Sleuth ...... 165 3.4.4 Color Cop ...... 166 3.5 Browsererweiterungen ...... 167 3.5.1 Firebug ...... 168 3.5.2 Web Developer Toolbar ...... 169 3.5.3 Html Validator (based on Tidy) ...... 170 3.5.4 Fangs ...... 170 3.5.5 MeasureIt ...... 172 3.5.6 LinkChecker ...... 172 3.5.7 Right-Click Lynx viewer ...... 172 3.5.8 WAVE-Toolbar ...... 173
4 Einführung in XHTML ...... 175 4.1 Syntax und Vokabular ...... 175 4.1.1 Elementtypen, Elemente, Tags, Elementinhalte ...... 175 4.1.2 Attribute ...... 177 4.1.3 Kommentare ...... 177 4.1.4 Zeichenreferenzen ...... 178 4.2 Die globale Struktur eines XHTML-Dokuments ...... 180 4.2.1 Die XML-Deklaration ...... 181 4.2.2 Die Dokumenttyp-Deklaration ...... 181 4.2.3 Wurzelelement: Der Elementtyp html ...... 183 4.2.4 Dokumentkopf: Der Elementtyp head ...... 184 4.2.5 Dokumentrumpf: Der Elementtyp body ...... 185 4.2.6 Hallo-Welt-Beispiel ...... 186 4.3 Das Document Object Model ...... 188 4.4 Kompatibilitätsrichtlinien ...... 191 4.5 Metaangaben: Der Elementtyp meta ...... 193 4.5.1 Metaangaben und Suchmaschinen ...... 194 4.6 Universalattribute ...... 195 4.6.1 Element-Identifikatoren: Die Attribute id und class ...... 195 4.6.2 Angabe der natürlichen Sprache: Die Attribute lang und xml:lang ...... 197 4.6.3 Inzeilige Formatierung: Das Attribut style ...... 199 4.6.4 Kommentierende Informationen: Das Attribut title ...... 199
5 Auszeichnung der Inhalte ...... 201 5.1 Überschriften und Absätze ...... 201 5.1.1 Überschriften: Die Elementtypen h1, h2, h3, h4, h5 und h6 ...... 201 5.1.2 Absätze: Der Elementtyp p ...... 202 5.1.3 Zeilenumbrüche: Der Elementtyp br ...... 204 5.2 Links und Anker ...... 205 5.2.1 Anker: Der Elementtyp a ...... 205 5.2.2 Dokumentbeziehungen: Der Elementtyp link ...... 209
7 Inhalt
5.3 Bilder ...... 212 5.3.1 Grafiken einbinden: Der Elementtyp img ...... 212 5.4 Objekte ...... 214 5.4.1 Objekte einbetten: Der Elementtyp object ...... 214 5.5 Auszeichnung im Text ...... 220 5.5.1 Logische Textauszeichnung: Die Elementtypen em, strong, dfn, code, samp, kbd und var ...... 220 5.5.2 Kennzeichnen von Dokumentänderungen: Die Elementtypen del und ins . . . 223 5.5.3 Abkürzungen und Akronyme: Die Elementtypen abbr und acronym ...... 226 5.5.4 Physische Textauszeichnung: Die Elementtypen i, b, tt, big und small ...... 227 5.6 Listen ...... 229 5.6.1 Ungeordnete Listen: Die Elementtypen ul und li ...... 230 5.6.2 Geordnete Listen: Die Elementtypen ol und li ...... 230 5.6.3 Definitionslisten: Die Elementtypen dl, dt und dd ...... 233 5.7 Tabellen ...... 234 5.7.1 Tabellen, Zeilen, Kopf- und Datenzellen: Die Elementtypen table, tr, th und td ...... 235 5.7.2 Tabellenüberschrift, Zusammenfassung und Abkürzungen: Der Elementtyp caption und die Attribute summary und abbr ...... 236 5.7.3 Zeilengruppen: Die Elementtypen thead, tfoot und tbody ...... 237 5.7.4 Spaltengruppen: Die Elementtypen colgroup und col ...... 238 5.7.5 Zellen miteinander verbinden: Die Attribute colspan und rowspan ...... 243 5.8 Zitate ...... 244 5.8.1 Inzeilige Zitate: Der Elementtyp q ...... 245 5.8.2 Zitatblöcke: Der Elementtyp blockquote ...... 248 5.8.3 Referenz auf die Quelle eines Zitats: Der Elementtyp und das Attribut cite . . 249 5.9 Struktur und Gruppierung ...... 250 5.9.1 Gruppierung: Die Elementtypen div und span ...... 250 5.10 Formulare ...... 252 5.10.1 Formularcontainer: Der Elementtyp form ...... 253 5.10.2 Steuerelemente ...... 254 5.10.3 Beschriftungen: Der Elementtyp label ...... 262 5.10.4 Struktur: Die Elementtypen fieldset und legend ...... 263 5.11 Weitere Elemente ...... 264 5.11.1 Kontaktinformationen: Der Elementtyp address ...... 264 5.11.2 Präformatierter Text: Der Elementtyp pre ...... 264 5.11.3 Programmcode eines Scripts: Die Elementtypen script und noscript ...... 265
6 Einführung in CSS ...... 269 6.1 Design und Styling ...... 269 6.1.1 Design ...... 269 6.1.2 Styling ...... 271 6.1.3 Design und Styling in der Webentwicklung ...... 272 6.2 Entwurfskonzepte und Vorteile ...... 272 6.3 Einbindung von CSS in ein XHTML-Dokument ...... 274 6.3.1 Einbindung per style-Attribut ...... 274 6.3.2 Einbindung per style-Element ...... 274
8 Inhalt
6.3.3 Einbindung per link-Element ...... 276 6.3.4 Ausgabemedien ...... 279 6.4 CSS: Syntax und Vokabular ...... 280 6.4.1 Regeln ...... 280 6.4.2 Maskierung ...... 281 6.4.3 Kommentare ...... 282 6.4.4 At-Regeln ...... 286 6.5 Selektoren ...... 288 6.5.1 Universalselektor ...... 289 6.5.2 Typselektor ...... 290 6.5.3 Klassen- und ID-Selektor ...... 290 6.5.4 Attributselektoren ...... 291 6.5.5 Pseudoklassen ...... 293 6.5.6 Pseudoelemente ...... 296 6.5.7 Kombinatoren ...... 299 6.6 Vererbung und Initialwerte ...... 300 6.7 Die Kaskade ...... 302 6.7.1 Reihenfolge ...... 303 6.8 Browserkompatibilität ...... 306 6.8.1 Browserunterstützung ...... 306 6.8.2 Doctype Switching ...... 307 6.8.3 Der Grund für viele IE-Bugs: hasLayout ...... 310 6.8.4 CSS-Hacks für den Internet Explorer ...... 311
7 Eigenschaften und Werte ...... 315 7.1 Werte ...... 315 7.1.1
9 Inhalt
7.3.5 Schriftgröße: Die Eigenschaft font-size ...... 337 7.3.6 Schrift: Die zusammenfassende Eigenschaft font ...... 340 7.4 Text ...... 341 7.4.1 Texteinzug: Die Eigenschaft text-indent ...... 341 7.4.2 Horizontale Ausrichtung: Die Eigenschaft text-align ...... 341 7.4.3 Ausschmückung: Die Eigenschaft text-decoration ...... 343 7.4.4 Laufweite: Die Eigenschaft letter-spacing ...... 344 7.4.5 Wortabstände: Die Eigenschaft word-spacing ...... 345 7.4.6 Groß- und Kleinschreibung: Die Eigenschaft text-transform ...... 346 7.4.7 Behandlung von Leerraum: Die Eigenschaft white-space ...... 347 7.5 Das CSS-Boxmodell ...... 347 7.5.1 Polsterung, Rahmen und Randabstand ...... 348 7.5.2 Boxtypen ...... 349 7.5.3 Polsterung: Die Eigenschaft padding ...... 354 7.5.4 Rahmenstil: Die zusammenfassende Eigenschaft border-style ...... 356 7.5.5 Rahmenbreite: Die Eigenschaft border-width ...... 358 7.5.6 Rahmenfarbe: Die zusammenfassende Eigenschaft border-color ...... 358 7.5.7 Rahmen: Die zusammenfassende Eigenschaft border ...... 359 7.5.8 Randabstand: Die Eigenschaft margin ...... 360 7.5.9 Boxtyp eines Elements: Die Eigenschaft display ...... 363 7.6 Ausrichtung und Elementfluss ...... 365 7.6.1 Vertikale Ausrichtung: Die Eigenschaft vertical-align ...... 365 7.6.2 Floatierte Boxen: Die Eigenschaft float ...... 368 7.6.3 Steuerung des Elementflusses um floatierte Boxen: Die Eigenschaft clear . . . . 372 7.6.4 YAML ...... 375 7.7 Positionierung ...... 376 7.7.1 Positionierung: Die Eigenschaft position ...... 376 7.7.2 Boxabstände: Die Eigenschaften top, right, bottom und left ...... 382 7.7.3 Angabe der Ebene: Die Eigenschaft z-index ...... 383 7.8 Breite und Höhe ...... 386 7.8.1 Content-Breite: Die Eigenschaft width ...... 386 7.8.2 Mindestbreite: Die Eigenschaft min-width ...... 389 7.8.3 Maximalbreite: Die Eigenschaft max-width ...... 390 7.8.4 Content-Höhe: Die Eigenschaft height ...... 390 7.8.5 Mindesthöhe: Die Eigenschaft min-height ...... 392 7.8.6 Maximalhöhe: Die Eigenschaft max-height ...... 393 7.8.7 Der Boxmodell-Bug ...... 394 7.8.8 Höhe der Zeilenbox: Die Eigenschaft line-height ...... 396 7.9 Sichtbarkeit und visuelle Effekte ...... 398 7.9.1 Sichtbarkeit: Die Eigenschaft visibility ...... 398 7.9.2 Überlauf: Die Eigenschaft overflow ...... 401 7.9.3 Deckkraft: Die Eigenschaft opacity ...... 403 7.9.4 Mauszeiger: Die Eigenschaft cursor ...... 406 7.10 Gestaltung von Listen ...... 407 7.10.1 Stil der Listenelementmarkierung: Die Eigenschaft list-style-type ...... 407 7.10.2 Grafiken als Listenelementmarkierung: Die Eigenschaft list-style-image . . . . . 409 7.10.3 Position der Listenelementmarkierung: Die Eigenschaft list-style-position . . 410 7.10.4 Listenelementmarkierungen: Die zusammenfassende Eigenschaft list-style . 410
10 Inhalt
7.11 Das CSS-Tabellenmodell ...... 411 7.11.1 Virtuelle Tabellenschichten und Transparenz ...... 411 7.11.2 Algorithmen für die Tabellenbreite: Die Eigenschaft table-layout ...... 413 7.11.3 Algorithmus für die Tabellenhöhe ...... 414 7.11.4 Rahmenmodell: Die Eigenschaft border-collapse ...... 415 7.11.5 Rahmenabstand: Die Eigenschaft border-spacing ...... 419 7.11.6 Rahmen um leere Zellen: Die Eigenschaft empty-cells ...... 421 7.11.7 Ausrichtung von Tabellenüberschriften: Die Eigenschaft caption-side ...... 422 7.12 Generierter Content ...... 423 7.12.1 Generierter Inhalt: Die Eigenschaft content ...... 423 7.12.2 Zähler: Die Eigenschaften counter-increment und counter-reset ...... 425
8 Eine Beispielwebsite: Die Kochbar ...... 429 8.1 Einleitung ...... 430 8.2 Vorbereitung ...... 434 8.3 Schritt 1: XHTML-Grundgerüst ...... 436 8.4 Schritt 2: Logo ...... 438 8.5 Schritt 3: Hauptnavigation ...... 440 8.6 Schritt 4: Sidebar ...... 442 8.7 Schritt 5: Content und Fußzeile ...... 447 8.8 Schritt 6: Styling der Startseite ...... 450 8.8.1 Vorgehensweise und Coderichtlinien beim Schreiben eines Stylesheets ...... 451 8.8.2 Globale Einstellungen ...... 453 8.9 Schritt 7: Regeln für allgemeine Elemente ...... 456 8.10 Schritt 8: Styling des Kopfbereichs ...... 459 8.11 Schritt 9: Illustrationen ...... 465 8.12 Schritt 10: Sidebar ...... 468 8.13 Schritt 11: Content ...... 477 8.14 Schritt 12: Fußzeile ...... 479 8.15 Schritt 13: Über die Kochbar ...... 481 8.16 Schritt 14: Impressum ...... 485 8.17 Schritt 15: Speisekarte ...... 486 8.18 Schritt 16: Öffnungszeiten ...... 491 8.19 Schritt 17: Kontaktformular ...... 499 8.20 Schritt 18: Rezept des Tages ...... 508 8.21 Schritt 19: Browsertests und Bugfixes ...... 514 8.22 Das Ergebnis ...... 519
9Anhang ...... 521 9.1 Glossar ...... 521 9.2 Literaturverzeichnis ...... 548
Index ...... 557
11
1 Einleitung
1.1 Vorwort
Wenn ich nicht gerade Bücher schreibe, dann schreibe ich Webseiten. Ich verdiene meinen Lebensunterhalt damit, Webseiten und Weban- wendungen zu konzipieren sowie deren Infor- mationsarchitektur, das XHTML und das CSS zu liefern. Und ich bin mir sicher, dass viele Leser dieser Einführung dies ebenfalls tun oder es zumindest in Zukunft vorhaben.
Mit den Dingen, die ich hier anspreche, habe ich täglich zu tun, von Projekt zu Projekt mit neuer, mit wachsender Begeisterung, Frustration und Hingabe. Ich hoffe, ein wenig meiner Begeiste- rung und Freude mit in diese Einführung getra- gen und die Frustration weggelassen zu haben. Mein Ziel ist es, Ihnen die Entwicklung von standardkonformen Websites näherzubringen und meine Erfahrungen und Kenntnisse in die- sem Bereich an Sie weiterzugeben.
Ich wünsche Ihnen viel Spaß bei der Lektüre und viel Erfolg bei Ihren kommenden Projek- ten.
Michael Jendryschik
Dortmund Kapitel 1
1.2 Über dieses Buch
1.2.1 Entstehung
Als das World Wide Web die Welt eroberte, gab es nur HTML – und solange es lediglich eine Plattform für den Austausch von Informationen war, reichte HTML, das als Sprache für einfache Dokumente wie Hilfedateien, Protokolle oder technische Dokumentationen entwickelt worden war, auch vollkommen aus. Die Probleme begannen mit dem großen Boom Mitte bis Ende der 1990er- Jahre, als HTML sich von einer strukturorientierten Sprache zunehmend hin zu einem Universalwerkzeug für die Veröffentlichung und visuelle Gestaltung von Multimedia wandelte.
Webautoren hatten, bevor es CSS und CSS-fähige Browser gab, keine andere Möglichkeit, als Inhalte und Anweisungen für deren Darstellung untrennbar und nicht unterscheidbar in ein Dokument zu schreiben. Zwischen Inhalt und Präsentation bestand kein Unterschied. An klassische Arbeitsteilung, wie sie heute gang und gäbe ist, war damals nicht zu denken. Es gab keine klaren Grenzen zwischen der Arbeit von Designern, Autoren, Entwicklern und Onlineredakteuren. Stattdessen führte die Entwicklung von Webseiten zu allgemeiner Frustration und Unzufriedenheit. Aufwendige, komplexe und verschachtelte Tabellenkonstruktionen zu verwenden, um einfachste Designvor- stellungen umzusetzen, widersprach nicht nur dem Empfinden für Ästhetik und Semantik der Webentwickler, sondern der Aufwand stand auch in einem nicht vertretbaren Verhältnis zum Ergebnis. Leider gab es (und gibt es noch heute) Entwickler, die ein HTML-Dokument fast ausschließlich aus der Sicht des Layouts betrachteten und dieses in HTML nachzubilden versuchten. Dabei benutzten sie font, br, feste Leerzeichen ( ), transparente Grafiken sowie Layouttabellen im Überfluss und zweckentfremdeten Elemente. Hinzu kam, dass sich die Wege der Browserentwickler von den Standards mehr und mehr entfernten und dann auch noch inkompatibel zueinander wurden.
Mit der Entwicklung von CSS und der Aufteilung von HTML in mehrere Sprachvarianten unterschiedlichen Umfangs traf man sich zwar wieder, um einen gemeinsamen Weg zu beschreiten, aber es dauerte eine Weile, bis die Möglichkeiten, die CSS bot, erkannt wurden. In den Jahren davor war das Web jedoch enorm gewachsen und ein einziges Chaos geworden.
Nachdem CSS Ende 1996 als W3C-Empfehlung veröffentlicht wurde, war nichts mehr so wie vorher. Nun, genauer gesagt, es dauerte noch eine Weile, bis die Browserlandschaft weit genug war, Webentwicklern die neuen Mög- lichkeiten bewusst wurden und CSS wirklich genutzt werden konnte. Mit der
14 Einleitung
Trennung der Präsentation eines Dokuments von dessen Inhalt vereinfachte CSS die Erfassung von Dokumenten und die Verwaltung von Websites. Diese konnten deutlich schneller entwickelt und, was viel bedeutender ist, ungleich einfacher und somit kostengünstiger gewartet und umgestaltet werden.
Ich hatte das Glück, genau zum richtigen Zeitpunkt mit dem Webdesign anzu- Anfänge fangen. Im Jahr 1999 begann ich, mich für die Erstellung von Webseiten zu begeistern und erste kleine Websites zu erstellen, zunächst natürlich nur für mich selbst. Ohne wirkliches Verständnis für die Zusammenhänge, ohne das nötige Basiswissen und ohne ein ausreichendes Repertoire benötigter Spra- chen – vor allem natürlich HTML, XHTML und CSS – musste ich zwangsläu- fig scheitern. Das Ergebnis war unbrauchbar und der Bedarf nach hilfreicher Lektüre offensichtlich.
Für viele war SELFHTML damals (und ist es auch heute noch) die Standardlek- türe zum Thema, zudem die einzig deutschsprachige. Ich fühlte mich jedoch von der Informationsflut, die dieses Werk bot, erschlagen, fand mich nicht zurecht und entdeckte auch nur selten die Lösung für Probleme, die mich gerade beschäftigten.
Ganz andere Erfahrungen machte ich im Usenet. Das Usenet ist ein textbasier- Usenet tes Diskussionsforum im Internet. Besser gesagt: Es ist ein Medium, in dem sich Tausende von unterschiedlichen Diskussionsforen zu jedem vorstellbaren Thema in Dutzenden von Sprachen befinden. Man verfasst mithilfe eines Newsreaders einen Beitrag in einem dieser Foren, der dann weltweit von Mil- lionen von Menschen gelesen und beantwortet werden kann.
Die Newsgroup de.comm.infosystems.www.authoring.misc wurde fortan zu mei-
Das vorliegende Buch ist das Ergebnis einer Arbeit, mit der ich im Jahr 2000 Version 1.0 begonnen habe. Um das erworbene Wissen zu vertiefen und an andere weiter- zugeben, die mit den gleichen Startschwierigkeiten zu kämpfen hatten wie ich, beschloss ich, selbst ein kleines Tutorial zu schreiben und dieses auf meiner Website zu veröffentlichen. Das Ergebnis nannte ich »Einführung in (X)HTML, CSS und Webdesign«, und es war nicht mehr als eine kommentierte Link- sammlung, didaktisch und chronologisch aufbereitet und auf das Wesentliche beschränkt. Die Einführung sollte den Zweck erfüllen, dem Anfänger zu sagen, was er für seinen Internetauftritt alles braucht, wie er vorzugehen hat, wie er eine Webseite schreibt und wo er wichtige Artikel zu einzelnen Fragen finden kann. Das Ergebnis können Sie noch heute online betrachten unter http://archiv.jendryschik.de/einfuehrung/1/.
15 Kapitel 1
Version 2.0 Die Veröffentlichung der zweiten Version nur zwei Jahre später, am 19. Okto- ber 2002, war eine Dokumentation meiner eigenen Fortschritte. Ich konnte mittlerweile von einer zweijährigen Erfahrung in der Erstellung von CSS- basierten Layouts profitieren, und all diese Erfahrungen flossen in die Einfüh- rung mit ein. Ich vollzog den Wandel weg von HTML und hin zu XHTML, darüber hinaus habe ich alle Kapitel stark erweitert, vor allem den CSS-Teil. Die Einführung war im Vergleich zur ersten Version nunmehr ein vollwertiges, für sich allein stehendes Tutorial und zudem eines der ersten, die den Leser wegführten vom klassischen Webdesign mit Layouttabellen, transparenten Grafiken und font-Elementen hin zu flexiblen, modernen und schlanken CSS-Layouts. Die Version 2.5.01 finden Sie bei Interesse unter http://archiv. jendryschik.de/einfuehrung/2/.
Version 3.0 Mit der Arbeit an der dritten Version dieser Einführung begann ich im Sep- tember 2005. Ursprünglich war das Ziel, die bestehende Einführung punktuell zu korrigieren und zu erweitern – das Ergebnis war eine komplette Neufas- sung. Ich habe den grundlegenden Aufbau beibehalten, jedoch alle Inhalte neu geschrieben und stark erweitert. Das CSS-Kapitel habe ich auf den Stand von CSS 2.1 gebracht. Neu hinzugekommen war auch ein durchgängiges Beispiel, die Entwicklung der Website eines kleinen Restaurants mit Biergarten. Es sollte helfen, die mühsam erworbene Theorie in der Praxis anzuwenden. Erst- mals erschien die Einführung nicht mehr nur online, sondern im Dezember 2006 auch als Buch.
Version 4.0 In Händen halten Sie nun die zweite Auflage des Buchs, die der Version 4.0 des Onlinetutorials entspricht. Die erste Auflage verkaufte sich gut und beständig, ist allerdings mittlerweile ein wenig in die Jahre gekommen. Die vorliegende Version habe ich vollständig aktualisiert und an einigen Stellen erweitert. Dadurch hat das Buch etwas an Umfang zugelegt. Unter anderem neu hinzugekommen ist das achte Kapitel, »Eine Beispielwebsite: Die Koch- bar«, das das in der ersten Version über das ganze Buch verstreute Kochbar- Beispiel in einem Kapitel bündelt. Dadurch erhält es einen stärkeren Pro- jektcharakter und somit einen größeren Praxisbezug.
>>>HINWEIS Die stets aktuelle Version der Einführung finden Sie unter http://jendryschik.de/wsdev/ einfuehrung/. Aktuelle Informationen, die sich speziell auf das Buch beziehen, veröffent- liche ich auf der Seite http://jendryschik.de/wsdev/einfuehrung/buch/. Dort finden Sie zudem alle Originalabbildungen (in Farbe) und das komplette Kochbar-Beispiel zum Download.
16 Einleitung
Diese Einführung in XHTML, CSS und Webdesign richtet sich Für wen ist diese vor allem an Anfänger, die das Erstellen von Webseiten mit Webstandards Einführung? erlernen möchten,