Inhaltsverzeichnis
Transcription
Inhaltsverzeichnis
Webdesign_mittels_HTML5_und_CSS(3) Hochschule: Standort: Studiengang: Veranstaltung: Betreuer: Typ: Themengebiet: Autor(en): Studienzeitmodell: Semesterbezeichnung: Studiensemester: Bearbeitungsstatus: Prüfungstermin: Abgabetermin: Fallstudienarbeit Hochschule für Oekonomie & Management Duisburg Bachelor Wirtschaftsinformatik Fallstudie / Wissenschaftliches Arbeiten Dipl-Inf._(FH)_Christian_Schäfer Fallstudienarbeit HTML 5 Andrey Gutkovski, Daneel Derchlser, Andre Schubert Abendstudium WS10 4 begutachtet Inhaltsverzeichnis • 1 Abkürzungsverzeichnis • 2 Abbildungsverzeichnis • 3 Tabellenverzeichnis • 4 Einleitung ♦ 4.1 Thema ♦ 4.2 Zielsetzung ♦ 4.3 Aufbau ♦ 4.4 Anmerkungen • 5 Grundlagen ♦ 5.1 Webdesign ♦ 5.2 HTML-Entstehung ◊ 5.2.1 HTML 2.0 ◊ 5.2.2 HTML 4.x ◊ 5.2.3 XHTML ◊ 5.2.4 HTML 5 ♦ 5.3 HTML Aufbau ♦ 5.4 Document Object Model (DOM) ♦ 5.5 Cascading Style Sheets (CSS) ◊ 5.5.1 CSS 1 ◊ 5.5.2 CSS 2 ◊ 5.5.3 CSS 3 • 6 Vergleich ♦ 6.1 HTML5 gegenüber Vorgängerversionen ◊ 6.1.1 Entfernte Elemente ◊ 6.1.2 Neue Elemente Inhaltsverzeichnis 1 Webdesign_mittels_HTML5_und_CSS(3) ⋅ 6.1.2.1 Struktur ⋅ 6.1.2.2 Gruppieren ⋅ 6.1.2.3 Text-Ebene ⋅ 6.1.2.4 Ruby ⋅ 6.1.2.5 Formulare ⋅ 6.1.2.6 Multimedia ◊ 6.1.3 Geänderte Elemente ♦ 6.2 CSS3 gegenüber Vorgängerversionen ◊ 6.2.1 Selectors ◊ 6.2.2 Media Queries ◊ 6.2.3 Web Fonts ◊ 6.2.4 Transformationen ♦ 6.3 Browserunterstützung • 7 HTML5 in der Praxis ♦ 7.1 Voraussetzungen ◊ 7.1.1 Standard-Konformität ◊ 7.1.2 Barrierefreiheit ♦ 7.2 Grundaufbau mit HTML5 ◊ 7.2.1 Frame ◊ 7.2.2 Tabelle ◊ 7.2.3 Div ◊ 7.2.4 Semantische Gliederung ◊ 7.2.5 Formulare ♦ 7.3 Praxisbeispiel • 8 Fazit • 9 Fußnoten • 10 Literatur- und Quellenverzeichnis • 11 Anhang ♦ 11.1 Blog.html vom Praxisbeispiel ♦ 11.2 Blog.css vom Praxisbeispiel Inhaltsverzeichnis 2 Webdesign_mittels_HTML5_und_CSS(3) 1 Abkürzungsverzeichnis Abkürzung Bedeutung API Application Programming Interface CMYK Cyan, Magenta, Yellow, Key CSS Cascading Style Sheets DOM Document Object Model HTML Hypertext Markup Language HTTP Hypertext Transfer Protocol IE Internet Explorer MP3 MPEG Layer 3 PHP Hypertext Preprocessor RGB Red, Green, Blue SGML Standard Generalized Markup Language W3C World Wide Web Consortium WAI-ARIA Web Accessibility Initiative - Accessible Rich Internet Applications WHATWG Web Hypertext Application Technology Working Group WWW World Wide Web XHTML Extensible Hypertext Markup Language XML Extensible Markup Language 2 Abbildungsverzeichnis Abbildungsnr. Bezeichnung 1 Zeitlicher Überblick über die HTML- und Browserentwicklungen 2 DOM-Knotenbaum einer Beispiel-Webseite 3 W3C HTML5 Logo 4 Gestaltung Webseite 5 Neue Gestaltung Webseite 6 HTML5-CSS3-Logo 7 Test FindMeByIp 1 Abkürzungsverzeichnis 3 Webdesign_mittels_HTML5_und_CSS(3) 8 Fortschrittsbalken 9 Klassisches 3-Spalten-Design 10 Beispiel Input-Typ number 11 Beispiel Input-Typ range 12 Grundstruktur Praxisbeispiel 13 Blog ohne CSS 14 Blog mit CSS 3 Tabellenverzeichnis Tabelle Bezeichnung 1 HTML5Test.com - Browser 2 Implizite ARIA-Semantik 3 Start- und Endtags in HTML5-Syntax 4 Einleitung 4.1 Thema Die folgende Fallstudie beschäftigt sich mit dem Thema ?Webdesign mittels HTML5 und CSS(3)?, welche im Rahmen des Moduls ?Fallstudien/Wissenschaftliches Arbeiten? im Wintersemester 2010/11 an der Hochschule für Ökonomie und Management durchgeführt wird. Die Betreuung dieser Fallstudie wird von Herrn Christian Schäfer durchgeführt. Seit Web 2.0 stellt das Internet nicht nur reine Informationen bereit, die Nutzer sind seit dem auch in der Lage, selbst Inhalte über eine Webseite zu veröffentlichen. Viele Webseiten ähneln heute einer Desktop-Anwendung und sind viel mehr als reine Content-Darsteller. Um diesen Anforderungen gerecht zu werden, reicht einfaches HTML nicht aus. Aus diesem Grund werden verschiedene Technologien wie JavaScript, Flash, CSS usw. eingesetzt. Der neue HTML5-Standard, der sich noch in der Entwurfsphase befindet, soll den älteren HTML 4.01 und XHTML 1.1 Standard revolutionieren. Mit HTML5 werden neue Elemente eingefügt, mit denen sich Webseiten besser strukturieren lassen und die einige hilfreiche Funktionen, wie das Einbetten von Multimedia-Dateien ohne Plugins, bieten. Außerdem werden Dinge zum Standard erklärt, die bis dato nicht offiziell zum Standard gehörten, jedoch von Entwicklern eingesetzt und von Browserherstellern unterstützt wurden. Zusätzlich gibt es einige neue JavaScript-APIs. Diese Fallstudie soll somit ein erster Einstieg in HTML5 sein. Die "3" in Klammern bei CSS soll bedeuten, dass, bei Anwendung von CSS auch auf die neue CSS3 Version eingegangen wird, sich jedoch nicht nur mit CSS3 beschäftigt. Hauptaugenmerk liegt auf dem neuen HTML5 Standard. 2 Abbildungsverzeichnis 4 Webdesign_mittels_HTML5_und_CSS(3) 4.2 Zielsetzung Das Ziel dieser Arbeit ist es, dem Leser einen Überblick über HTML5 zu liefern. Es spezialisiert sich nicht auf ein einzelnes Gebiet, sondern erklärt, wie der Grundaufbau mittels HTML5 aussieht. Dabei wird auf die Neuerungen und Änderungen eingegangen. Der Leser soll am Ende dieser Arbeit in der Lage sein, eine Webseite unter Berücksichtigung des HTML5-Standards zu implementieren und den Unterschied zu bisher geltenden Standards, wie HTML4 und CSS2, zu kennen. 4.3 Aufbau Im fünften Kapitel werden die Grundlagen für gelegt. Dort wird erklärt, was Webdesign, HTML5 und CSS bedeutet. Dabei wird die Geschichte der HTML-Entstehung auszugsweise dargestellt und der Grundaufbau einer HTML-Seite erläutert. Im sechsten Kapitel wird HTML5 mit den Vorgängerversionen dieses Standards verglichen. Es wird gezeigt, welche Elemente in HTML5 neu hinzugekommen sind, welche Elemente sich geändert haben und welche Elemente nicht mehr enthalten sind. Dieses Kapitel beschreibt außerdem, welche Browser bisher HTML5 unterstützen. Zusätzlich wird der Standard CSS3 mit seinen Vorgängerversionen verglichen. Das siebte Kapitel stellt den Hauptteil der Arbeit dar. Dort wird der Praxisbezug zum Thema hergestellt. Das Kapitel erläutert, wie man mittels HTML5 und CSS3 eine Webseite erstellt. Am Ende das Kapitels wird ein Praxisbeispiel dieses Thema weiter vertiefen. Im achten und somit letzten Kapitel wird das Thema ?Webdesign mittels HTML5 und CSS(3)? in Form einer Schlussbetrachtung zusammengefasst. 4.4 Anmerkungen Programmbeispiele werden in Form von Boxen für vorformatierten Text dargestellt. Um dem Leser die Beispiele im Zusammenhang erklären zu können, werden die Beispiele in den Text integriert und nicht als Anhang beigefügt. Ausschnitte von Quellcode innerhalb des Textes werden teilweise kursiv dargestellt. HTML-Elemente werden als Tag, z.B. <html> in den Text integriert. 5 Grundlagen 5.1 Webdesign Unter dem Begriff "Webdesign" wird die Konzepterstellung, Gestaltung und technische Umsetzung einer Webseite bzw. eines Internetauftritts von Firmen, Organisationen oder auch Privatpersonen verstanden. Dabei ist neben der reinen optischen Gestaltung und dem Layout der Webseite auch die Strukturierung der Inhalte (zumeist Texte und Grafiken), sowie die Navigation durch diese Inhalte, einschließlich Barrierefreiheit von Bedeutung. Webdesign wird häufig durch Webdesign-Agenturen im Auftrag durchgeführt, wobei die Wünsche des Auftraggebers mit denen vorhandenen technischen Mitteln des Internets vereinbart werden müssen. Heutige, moderne Webseiten setzen in der Regel eine breite Palette von Technologien, wie zum Beispiel HTML, CSS, PHP, Javascript und MySQL (für Datenbankzwecke) ein [1] [2] [3]. 4.2 Zielsetzung 5 Webdesign_mittels_HTML5_und_CSS(3) 5.2 HTML-Entstehung Abbildung 1: Zeitlicher Überblick über die HTML- und Browserentwicklungen[4] Die Entstehung der Hypertext Markup Language (HTML) begann im Jahre 1989. Zu dieser Zeit entwickelte der Informatiker Tim Berners-Lee am Forschungszentrum CERN die Sprache HTML. Dabei orientierte sich Berners-Lee an der Syntax der, bereits 1986 von Goldfarb, Mosher und Lorie, entwickelten und standardisierten Standard Generalized Markup Language (SGML). Heute ist HTML als die Basis der Internetnutzung zu betrachten Durch HTML werden Strukturen und Inhalte von Textdokumenten standardisiert. Aufgrund der großen Anzahl von Software-Lösungen für Anwendungen innerhalb des Internets ist die Einhaltung von Standards für dessen Nutzung notwendig. Entwickelt wurden und werden diese Standards durch das World Wide Web Consortium (W3C). Das W3C ist ein durch Berners-Lee gegründetes Gremium, das es zur Aufgabe hat, Techniken des WWW (World Wide Web) zu standardisieren. Dabei wird das Ziel einer weitreichenden Unstrittigkeit und Akzeptanz (zum Beispiel von technischen Protokollen) angestrebt. Das W3C hat eine Vielzahl von Recommendations veröffentlicht. Dazu zählen die in den folgenden Abschnitten dargestellten Standards wie HTML 2 und 4, XHTML, die CSS (Cascading Style Sheets) Versionen, das DOM (Document Object Model), sowie XML (Extensible Markup Language) und Weitere. Der Grundgedanke des W3C beinhaltet, dass sich Gruppen von qualifizierten Personen zusammenfinden, um jeweils einen speziellen Standard zu entwickeln[5]. Die folgende Grafik stellt den zeitlichen Verlauf der verschiedenen HTML-Versionen und Browserentwicklungen dar. 5.2.1 HTML 2.0 Bis zu Jahr 1997 war Version 2 der geltende HTML-Standard. Diese Version ergänzte die ürsprüngliche Version 1.0 um einige Elemente. Bereits zur Erscheinung war HTML 2.0 überholt, da der damals veröffentlichte Browser "Netscape Navigator 2.0" deutlich weiter in der Entwicklung voran geschritten war als HTML 2.0. Es wurden dort bereits z.B. Frames unterstützt, welche im HTML 2.0 Standard nicht enthalten sind. Somit hatte der Netscape-Browser einen deutlichen Vorsprung, aufgrund der vielfältigeren Möglichkeiten[6]. 5.2 HTML-Entstehung 6 Webdesign_mittels_HTML5_und_CSS(3) 5.2.2 HTML 4.x Mit der Version 4.0, welche im Jahr 1997 veröffentlicht wurde, wurde beabsichtigt, sich bei HTML auf die Kernelemente von HTML zu reduzieren. Die Einführung von Frames und Cascading Style Sheets in Version 4.0 stellen bedeutende Schritte dar. Auch die Möglichkeit, Scriptsprachen, wie Javascript, in HTML einzubinden, ist ein wichtiger Aspekt für Webdesigner. Um einer zunehmenden Internationalisierung Rechnung zu tragen ist HTML 4.0 im Unicode-System codiert, was es erlaubt, Texte in sämtlichen Sprachen der Welt darzustellen[6]. HTML 4.01 wurde im Dezember 1999 vom W3C verabschiedet. Bis heute (Stand 2011) ist HTML 4.01 die bedeutendste und weitverbreiteste HTML-Version des Internets. In Version 4.01 wurden kleinere Korrekturen durchgeführt. 5.2.3 XHTML XHTML stellt den Neuanfang von HTML auf Basis von XML dar. XHTML ist also ein XML-gerechtes HTML, bzw. wurde HTML in XML nachgebildet. Diese Nachbildung ist erfolgreich durchgeführt worden, sodass in XHTML die gleichen Attribute und Elemente wie in HTML genutzt werden. Dennoch sind syntaktischen Differenzen im Detail vorhanden, die es zu berücksichtigen gilt, wenn eine Webseiten in XHTML geschrieben werden soll. XML ist strikter als HTML, besipielsweise wird immer ein abschließendes Tag benötigt. Wenn eine XHTML-Seite nicht genau syntaktisch korrekt geschrieben ist, wird sie durch den Browser nicht angezeigt[7]. Die Arbeiten an XHTML wurden im Jahr 2009 Zugunsten von HTML5 eingestellt 5.2.4 HTML 5 Durch die Browser-Hersteller Opera Software ASA, die Mozilla Foundation und die Apple Inc. wurde eine Arbeitsgruppe mit dem Namen "Web Hypertext Application Technology Working Group" (WHATWG) gegründet, die es zur Aufgabe hat, neue, moderne Webtechnologien zu entwickeln. Diese Technologien werden unter dem Begriff "HTML5" entwickelt. Das W3C, unter Leitung von Berners-Lee, hatte parallel das Ziel, den XHTML2-Standard weiter zu entwickeln, dies wurde jedoch im Jahr 2009, aufgrund negativer Zukunftsaussichten des Standards, eingestellt. Aktuell entwickeln beide Arbeitsgruppen gemeinsam am HTML5-Standard. Mit HTML 5 wurden die bestehenden Versionen und Standards HTML 4.01, XHTML sowie das Document Object Model ersetzt. Aktuell ist HTML in der Version 5 noch nicht endgültig definiert und hat somit lediglich ?Entwurfs?-Charakter. HTML 5 wird seit 2007 entwickelt und stellt den aktuellen Stand der HTML-Entwicklung dar. Eine besondere Neuerung hierbei ist, dass mit dieser Version Abstand von der SGML-Typisierung der HTML-Sprache genommen wurde und stattdessen die Sprache nun als Document Object Model (DOM) beschrieben ist. Besondere Neuerungen an HTML 5 sind die implementierten zusätzlichen Möglichkeiten, mit multimedialen Elementen zu arbeiten. Es werden nun Audio und Video und dynamische Grafiken direkt unterstützt, bei denen in älteren HTML Versionen das Zurückgreifen auf andere Techniken, abseits von HTML, notwendig wurde[8]. 5.3 HTML Aufbau Mit Hilfe von HTML ist es grundsätzlich möglich, Dokumente zu erstellen, die verschiedene Daten und Elemente, wie Texte, Tabellen, Bilder und Grafiken enthalten. Mittels HTML können diese Dokumente nach eigenen Wünschen strukturiert werden. Ein weiteres wichtiges Element ist der Hyperlink, der es ermöglicht, Dokumente interaktiv zu gestalten. Ein Hyperlink stellt einen Verweis auf andere Dokumente, welche keine HTML-Dokumente sein müssen, dar. Diese Dokumente können auf der gesamten Welt liegen, Voraussetzung ist 5.2.2 HTML 4.x 7 Webdesign_mittels_HTML5_und_CSS(3) jedoch, dass der entsprechende Host/Server, auf dem das Dokument gespeichert ist, von der aktuellen Position erreichbar ist. HTML-Dokumente haben die Endung ?.html? oder ?.htm? und werden auf einem Webserver zum Beispiel für das gesamte Internet verfügbar gemacht. Über einen Browser und das entsprechende Übertragungsprotokoll, in diesem Fall das Hypertext Transfer Protokoll HTTP, werden diese Dokumente betrachtet. <HTML> <HEAD> <META CHARSET="UTF-8"> <TITLE> HTML5 </TITLE> <HEAD> <BODY> Inhalt der Webseite Wird über den Browser angezeigt </BODY> </HTML> • HTML: Alle Elemente eines HTML-Dokumentes werden in das so genannte "Wurzel"- beziehungsweise "Rootelement" eingebettet. Start des Bereichs ist das Tag "<HTML>", das Ende dieses Bereichs wird durch "</HTML>" gekennzeichnet. • HEAD: Innerhalb des Elementes "HEAD" können Informationen über das jeweilige HTML-Dokument platziert werden. Dieser Bereich wird durch die Tags "<HEAD>" und "</HEAD>" umschlossen, stellt den Kopf des Dokuments dar und wird üblicherweise nicht über einen Browser dargestellt. Informationen sind an dieser Stelle beispielsweise Meta-Daten, der Webseiten-Titel oder auch Stylesheet-Informationen. Mögliche Head-Informationen können sein: ◊ Meta-Angaben: Diese Informationen beziehen sich in der Regel auf den Webseiteninhalt, dessen Autor oder auf den verwendeten Sprachcodierungssatz (im Beispiel UTF-8). ◊ Titel der HTML-Seite: Dies ist der Titel der Webseite. Dieser wird in der Titelleiste des Browsers, sowie bei Suchmaschinenergebnisse angezeigt. ◊ Stylesheet-Informationen: HTML Elemente im Body können im Head, zum Beispiel hinsichtlich Farbe oder Schriftgröße, formatiert werden. ◊ Stylesheet-Definitionen: Definition von Formateigenschaften einzelner HTML-Elemente. ◊ Javascript: Mittels zusätzlicher Skripte, die in das HTML-Dokument eingebunden werden, können zusätzliche Aufgaben und Funktionen in das Dokument implementiert werden, wie zum Beispiel Berechnungen. • BODY: 5.3 HTML Aufbau 8 Webdesign_mittels_HTML5_und_CSS(3) Das "Body"-Element beinhaltet den Teil eines HTML-Dokuments, der im Browser sichtbar angezeigt wird. Innerhalb des mit "<BODY>" und "</BODY>" umschlossenen Bereichs können Texte, Hyperlinks, Grafiken, Tabellen enthalten sein. 5.4 Document Object Model (DOM) Abbildung 2: DOM-Knotenbaum einer Beispiel-Webseite[9] Das vom W3C verabschiedete ?Document Object Model? (DOM) stellt eine Norm dar, die beschreibt, wie ein Zugriff auf Elemente eines Auszeichnungssprachen-Dokuments erfolgt. DOM selbst ist folglich keine Programmiersprache an sich und ist nicht auf zum Beispiel HTML beschränkt. Vielmehr definiert das DOM zu implementierende Methoden, Objekte und Eigenschaften, mittels derer sich eine Programmiersprache als DOM-kompatibel und ?fähig auszeichnet. Es wird somit eine Schnittstelle definiert. Der Zugriff auf einzelne Elemente eines Dokuments erlaubt es, das als ?dynamisches HTML? bezeichnete Anpassen und Verändern von bereits geladenen Webseiten, durchzuführen. Das DOM hält aber auch Methoden bereit, neue oder ergänzende Elemente mit Inhalt und Formatierung während der Anzeigezeit einer Webseite entstehen zu lassen. Für diesen Zweck hält das DOM ebenfalls Methoden bereit[10]. Das DOM ist plattform- und sprachunabhängig und basiert darauf, dass Auszeichnungssprachen wie HTML und 5.4 Document Object Model (DOM) 9 Webdesign_mittels_HTML5_und_CSS(3) andere XML-basierte Sprachen als hierarchische Baumstruktur abbildbar sind. Laut DOM werden die Bestandteile dieser Baumstruktur als ?Knoten? bzw. ?node? bezeichnet und in Knotentypen definiert. Die drei wichtigsten Knotentypen sind ?Elementknoten?, ?Attributknoten? und ?Textknoten?. Über Eigenschaften und Methoden kann auf Attribute eines Knotens zugegriffen werden[11]. Das DOM wurde 1998 als Standard des W3C definiert und ist in den folgenden Jahren mehrfach aktualisiert und erweitert worden. Stand heute existieren verschiedenen Levels (Versionen), die jeweils verschiedenen Module beinhalten[12]: • Level 1 In der DOM-Entwicklung wurde mit Version 1.0 lediglich der Zugriff auf Knoten geregelt. • Level 2 Mit der Version 2.0 aus dem Jahr 2000 wurden der Zugriff auf Style-Eigenschaften und Event-Handling eingeführt und damit sind diese anwendbar für dynamische Webseiten. • Level 3 Umfassende Erweiterungen erhielten Einzug, unter anderem verbessertes Exception-Handling (Ausnahmebehandlung) und das mögliche Versenden und Abrufen von XML-Dokumenten über HTTP. 5.5 Cascading Style Sheets (CSS) Bei den so genannten Cascading Style Sheets (auch Stylesheets genannt) handelt es sich um eine direkte Ergänzung zu HTML. Stylesheets beschreiben eine Sprache, mit der Formatattribute zu HTML-Elementen zugewiesen werden können. Stylesheets erweitern das bestehende HTML, womit es beispielsweise möglich wird, bestimmten Textteilen andere Schriftgrößen, Schriftarten und -farben zuzuweisen, was mit reinem HTML so nicht durchführbar wäre. Die CSS-Angaben selbst können direkt im HTML-Dokument oder in separaten Dateien abgelegt werden, auf die dann im HTML-Dokument Bezug genommen wird. Weiterhin bieten Stylesheets noch weitere Möglichkeiten, wie das setzen von Hintergrundbildern in Formulare und Definieren von Hintergrundfarben. Elemente können mittels CSS im Fenster des Browsers positioniert werden. Auch Möglichkeiten für Textflusskontrolle sind vorhanden. Mit CSS-Eigenschaften ist es auch möglich weitere optische Anpassungen vorzunehmen, zum Beispiel das Aussehen des Maus-Cursors zu verändern. CSS stellen also eine Formatvorlage dar. Daten und Darstellung sind somit getrennt, wodurch z.B. Arbeitsteilungen möglich werden. Das Stylesheet selbst formatiert die zugewiesenen Texte und Bilder etc. für die Ausgabe im Browser nach den definierten Kriterien und Werten. Wie auch HTML werden die CSS vom W3C standardisiert. CSS stellen einen offen, dokumentierten und frei verwendbaren Standard dar. Eine regelmäßige Weiterentwicklung wird durch eine Workinggroup beim W3C sichergestellt. Im Folgenden wird die CSS-Syntax, ein CSS-Beispielcode zur Formatierung des Elements "beispiel" und das entsprechende HTML-Element "beispiel", auf das sich die Formatierungsangaben im CSS-Teil beziehen, dargestellt. CSS-Syntax: 5.5 Cascading Style Sheets (CSS) 10 Webdesign_mittels_HTML5_und_CSS(3) Selektor [, Selektor2, ?] { Attribut-A: Wert-A; Attribut-B: Wert-B } ----------------------------------------CSS-Teil: p.beispiel { position: relative; width: 80%; padding: 30px; border: 5px solid black; line-height: 1.5em; color: red background-color: #ffffff; } -----------------------------------------HTML-Teil: <p class="beispiel"> Dies ist ein Beispieltext, der durch die oben genannten Attribute im Browser formatiert dargestellt </p> 5.5.1 CSS 1 1996 wurde die CSS Level 1 Recommendation veröffentlicht. Diesen Normierungsvorschlag haben aktuelle Browser nach heutigem Stand nahezu vollständig implementiert. 5.5.2 CSS 2 CSS2 (auch "CSS Level 2" genannt) wurde im Mai 1998 veröffentlicht und basiert nahezu vollständig auf CSS1. Dies bedeutet, dass quasi jedes Stylesheet nach CSS1 auch für Level 2 Gültigkeit besitzt. Gegenüber CSS1 bietet CSS2 die Unterstützung geräteabhängiger Stylesheets, die es möglich machen, dass Webseitendesigner ihre Webseiten je nach eingesetztem Gerät anpassen können. Diese Anpassungen können eine differenzierte Webseitendarstellung ermöglichen, je nach dem ob die Webseite z.B. auf einem normalen Browser, oder auf einem mobilen Handheld-Gerät angezeigt wird. CSS unterstützt weiterhin Tabellenlayouts, automatische fortlaufende Nummerierungen und die Positionierung von Texten bzw. anderen Inhalten[13]. 5.5.3 CSS 3 CSS3 wurde in einzelne Module zerlegt, welche unabhängig voneinander implementiert und veröffentlicht werden. Neben der Möglichkeit zur Erstellung mehrspaltiger Layouts, der Ausgabe zusätzlicher Informationen aus Meta- und HTML-Elementen, wie Titel der Seite, Autor oder URL auf Drucklayouts sind einige weitere Funktionen implementiert worden: 5.5.1 CSS 1 11 Webdesign_mittels_HTML5_und_CSS(3) Ränder [14] • border-color: Eingesetzte Ränder lassen sich nun farbig und mit Farbverläufen gestalten. • border-image: Anstatt eines normalen Rands lassen sich mit dieser Funktion Grafiken als Randmarkierung nutzen. Dabei kann zwischen dem border-image (Grafik, die die Seitenlinien bildet) und dem border-corner-image (Grafik, aus der die Ecken gebildet werden) unterschieden werden. • border-radius: Als neues Design-Element sind nun runde und flache Kanten mittels dieser Funktion darstellbar. • box-shadow: Mittels dieser Funktion können Boxen in einem dreidimensionalen Effekt, mit Schattenwurf, dargestellt werden. Hintergründe [14] • background-origin und background-clip: Die background-origin-Eigenschaft wird genutzt, um zu bestimmen, wie die Position eines Box-Hintergrundes berechnet wird. --------------------• background-size: Mit CSS3 ist es möglich, die Größe von Hintergrundbildern zu spezifizieren. Dabei lässt sich die Größe in Pixeln mit Breite und Höhe, oder in Prozent angeben. Bei der prozentualen Größenangabe wird die angegebene Größe in Relation zum bezugnehmenden Bereich bestimmt, der mit background-origin festgelegt wurde. • multiple backgrounds: CSS3 erlaubt die Zuweisung und Nutzung mehrere Hintergrundbilder auf ein Element. Farben [14] • HSL colors: Neben RGB (Rot, Grün, Blau) und hexadezimalen Farbwertangaben ist es nun möglich, auch so genannte HSL-Farben zu nutzen. HSL steht dabei für "Hue, Saturation, Lightness" und bedeutet, dass die Farbbestimmung nach Farbton ("Hue"), Sättigung ("Saturation") und Helligkeit ("Lightness") erfolgt. • HSLA colors: Neben den bereits genannten Farbbestimmungswerten "Hue", "Saturation" und "Lightness" ist noch ein viertes Bestimmungselement hinzugekommen. Das "A" steht für "alpha" und bezeichnet den Durchsichtigkeitsfaktor der angegebenen Farbe. • RGBA colors: Neben den reinen RGB-Farben ist es mit CSS3 nun vorgesehen, einen Durchsichtigkeitsfaktor, analog zu HSLA, bei RGB-Farben anzugeben. Texteffekte [14] • text-shadow: Das bislang nötige Erstellen von Bildern mit Hilfe von Grafiksoftware, um Texten Schatten hinzuzufügen, entfällt mit CSS3. Mittels text-shadow lässt sich Schatten zu einem Text hinzufügen. Dabei kann über Pixel-Angaben die Größe des Schattens bestimmt werden. • text-overflow: • word-wrap: Diese Funktion erlaubt das bisher nicht implementierte Umbrechen von Worten in Boxen. Anstatt das lange Worte aus der Box aufgrund zu geringer Box-Breite herausragen, findet nun ein Umbruch dieses Wortes in die nächste Zeile statt. Benutzerschnittstelle [14] 5.5.3 CSS 3 12 Webdesign_mittels_HTML5_und_CSS(3) • box-sizing: • resize: Boxen können nun, bei gesetztem resize-Attribut und entsprechender Browserunterstützung, durch den Betrachter einer Webseite in ihrer Größe verändert werden. Die Änderung erfolgt dabei analog z.B. zu eine Größenänderung eines Fenster im Betriebssystem Windows von Microsoft. Es kann dabei definiert werden, ob nur die Breite, die Höhe oder beide Größen veränderbar sein sollen. • outline: Outlines, also Umrandungen von Boxen, können nun über die outline-offset-Eigenschaft von der eigentlichen Box mit wahlfreiem Pixel-Abstand von der Box selbst erzeugt werden. Selektoren [14] • attribute selectors: Bei Attributsselektoren gibt es nun die Funktion, Formatierungen bei Elementen nur dann einzusetzen, wenn die Bezeichnung des Elements mit bestimmten Zeichenketten beginnt, endet oder diese enthält. So kann z.B. definiert werden, dass nur Elemente, die die Zeichen "test" in der Bezeichnung haben, einen gelben Hintergrund erhalten sollen. Box-Modell [14] • overflow-x, overflow-y: Mittels der overflow-Eigenschaften lassen sich Inhalte an der x- bzw. y-Achse entlang binden. overflow-x kontrolliert dabei die horizontale oder linksseitige Ausrichtung und overflow-y entsprechend die vertikale Ausrichtung von Inhalten. Generierter Inhalt [14] • content: Inhalte von Elementen lassen sich aus verschiedenen Quellen generieren. Beispielsweise kann Inhalt aus Angaben wie dem Datum und der Uhrzeit oder aus bereits bestehenden weiteren Elementen, wie dem Webseitentitel, generiert werden. Weitere Module [14] • multi-column layout: Text lässt sich mit dieser Funktion nun in mehreren Spalten, ähnlich einer Seite in einer Tageszeitung, anordnen. • speech: Das CSS3 speech-Modul enthält einige der bereits in CSS2 vorhandenen Eigenschaften und fügt neue hinzu. Bisher nur im Browser Opera implementiert, kann Text mit Sprachinformationen, wie z.B. der Lautstärke, Sprachfamilie und Sprache versehen werden und über angeschlossene Lautsprecher ausgegeben bzw. vorgelesen werden. 6 Vergleich 6.1 HTML5 gegenüber Vorgängerversionen 6 Vergleich 13 Webdesign_mittels_HTML5_und_CSS(3) Abbildung 3 [15]: W3C HTML5 Logo Die im Mai 2007 von der HTML-Arbeitsgruppe vorgestellte neue Version von HMTL5 sollte auf dem Entwurf der Web Applications 1.0, die von der WHATWG entworfen wurde beruhen. Dieser Schritt und eine Abkehr von den Entwicklungen von HTML mit Einflüssen von XML als XHTML, begründen sich auf den bisherigen Misserfolg dieser Strategie. Tim Berners-Lee teilte diese Erkenntnis dem WWW in seinem Blog mit folgenden Worten mit: "Some things are clearer with hindsight of several years. It is necessary to evolve HTML incrementally. The attempt to get the world to switch to XML, including quotes around attribute values and slashes in empty tags and namespaces all at once didn't work. The large HTML-generating public did not move, largely because the browsers didn't complain. Some large communities did shift and are enjoying the fruits of well-formed systems, but not all. It is important to maintain HTML incrementally, as well as continuing a transition to well-formed world, and developing more power in that world."[16] Der neue Standard sollte die Möglichkeit geben folgenden Features direkt einzubinden: "Offline & Storage", "Connectivity / Realtime", "Multimedia", "Graphics, 3D & Effects", "Device Access", "Performance & Integration", "Semantics" und "CSS3 / Styling". Viele dieser Features konnten auch vorher in Webseiten eingebettet werden mussten jedoch auf andere Techniken wie z.B. JQuery oder Flash zurückgreifen. Im HTML 5 soll alles aus einem Guss möglich sein, daher wurden bestehende Elemente & Attribute entfernt, bearbeitet oder neue geschaffen. Alle Informationen beziehen sich auf die Referenz des W3C Stand 21.01.2011 6.1.1 Entfernte Elemente Hier kurz die Elemente die nicht mehr in HTML5 aufgenommen wurden. Als erstes sind die Elemente frame, frameset und noframe zu nennen. Diese Elemente wurden dazu verwendet um eine Webseite in unterschiedliche Segmente einzuteilen. Jedes dieser Segmente kann einen eignen Inhalt anzeigen. Dieser kann statisch oder dynamisch erzeugt werden. Häufige Verwendung war/ist bei Navigationleisten vorzufinden. Suchmaschinen können diese Seiten schlecht analysieren und dies begründet wohl auch den Verzicht auf diese Elemente[17]. • frame • frameset • noframes Die folgenden Elemente dienen dem Styling und werden daher nicht mehr verwendet, da dies wesentlich besser durch CSS3 Befehle erreicht werden kann. • basefont • big • center • font •s • strike • tt •u • xmp Bei den letzten drei handelt es sich um Elemente, die in ihrer Funktion schon durch andere abgedeckt werden. Diese doppelten wurden daher entfernt. • acronym • applet • dir 6.1 HTML5 gegenüber Vorgängerversionen 14 Webdesign_mittels_HTML5_und_CSS(3) 6.1.2 Neue Elemente Viele Elemente wurden durch HTML5 hinzugefügt. Als erstes fällt dem Betrachter eines Quellcodes der wesentlich vereinfachte Doctype ins Auge. Das Besondere an diesem neuen Doctype ist, dass in diesem keine Version mehr aufgeführt wird. Da HTML5 nun als lebendiger Standard angesehen wird, kann davon ausgegangen werden das dies auch in "höheren Versionen" beibehalten wird[18]. • <!DOCTYPE html> Die restlichen Elemente können nach folgende Thematischen Gruppen unterteilt werden. Struktur, Gruppieren, Text-Ebene, Ruby, Formulare und Multimedia. 6.1.2.1 Struktur Bisher wurde ein Großteil der Webseiten wie in der linken Abbildung zu sehen nach folgendem Schema aufgebaut. Die div Elemente wurden mit einer class Strukturiert. In HTML5 wurde dies wesentlich vereinfacht und es wurden dafür eigene Elemente geschaffen. Die neue vereinfachte Struktur ist in der rechten Abbildung zu sehen. Abbildung 4: Gestaltung Webseite[19] Abbildung 5: Neue Gestaltung Webseite[19] • article: Das article Element steht für einen unabhängigen Bereich der Webseite. Beispiel ein Blogeintrag 6.1.2 Neue Elemente 15 Webdesign_mittels_HTML5_und_CSS(3) • aside: Aside wird dazu benutzt Informationen zu vermittelt, die in direkten bezug zum dem Inhalt stehen, jedoch nicht von Primären Interesse sind. Beispiel eine Infobox • footer: Das footer Element bietet die Möglichkeit Web-Seiten ihren definierten semantische Bezug zur Fußzeile herzustellen. Beispiel Impressum • header: Header geben wieder den semantischen Bezug, um den Kopf eines Abschnitts zu beschreiben. • hgroup: Hgroup gruppiert eine Folge von H1-H6 Elementen • nav: Ein Block mit Links zur Navigation • section: Bittet die Möglichkeit zur Strukturierung von Thematischen Gruppen, wenn article, aside und nav unpassend sind. 6.1.2.2 Gruppieren • figcaption:Beschriftung zu figure • figure: Bittet die Möglichkeit Diagramme, Tabellen usw. in Beziehung zu einem Artikel zu stellen. Kann jedoch ohne Inhaltsverlust entfernt werden. 6.1.2.3 Text-Ebene • bdi: Das BDI-Element stellt eine Spannweite von Text, der von seiner Umgebung für die Zwecke der bidirektionalen Text-Formatierung isoliert werden soll. • details: Beschreibt Details zu einem Dokument • mark: Markiert einen Textteil • meter: Anagbe von Messweten • progress: Stell einen Fortschritt für einen Prozess da • summary: Header Element für das details Element • time: Definiert Uhrzeit und/oder Datum • wbr: ? line-break opportunity 6.1.2.4 Ruby • rp: Zeigt die Informationen, falls ruby nicht bekannt ist • rt: Zeigt die ruby Informationen • ruby: Chinesische Anmerkungen oder Zeichen 6.1.2.5 Formulare • command: Innerhalb eines menu-items kann der Nutzer damit eine der folgenden Aktionen(Typen) aufrufen ♦ type=command: Das Element ist ein normaler Befehl mit einer zugehörigen Aktion ♦ type=radio: Das Element stellt eine Auswahl von einem Element aus einer Liste von Elementen. ♦ type=checkbox: Das Element ist ein Status, die ausgeschaltet oder eingeschaltet werden kann. • datalist: Stellt eine Liste von input Elementen zu Verfügung die mittels option value festegelegt werden • input type=:Neue Typen der input Elemente, die eine genaue Zuordnung erlauben. Namen sind selbsterklärend ♦ input type=datetime-local: Datum/Zeit lokal 6.1.2.1 Struktur 16 Webdesign_mittels_HTML5_und_CSS(3) ♦ input type=date: Datum ♦ input type=month:Moant ♦ input type=time: Zeit ♦ input type=week: Woche ♦ input type=number:Nummer ♦ input type=range: Reichweite ♦ input type=email: E-Mail ♦ input type=url: URL ♦ input type=search: Suchfeld ♦ input type=tel: Telefonnummer ♦ input type=color: Farbe • keygen: Das keygen Element erzeugt ein public-private key Paar, welches den public Key übermittelt. • output: Resultat einer Berechnung 6.1.2.6 Multimedia • audio: Um Audio Inhalte wie z.B MP3 einzubinden • canvas:Eine freie Fläche in der mittels Java Script frei gezeichnet werden kann. Beispiel "3D" Spiele im Browser • embed: Fügt externe Inhalte ein. Beispiel Flash oder Quicktime • source:Stellt dem Browser die Quellen für Audio und Video zu Verfügung. Es können mehere Quellen angegeben werden. Browser verwendet das erste kompatible Format • track: Das Track-Element erlaubt es, externe Mediaelementen zu spezifizieren. Es kann z.B das Attribut Label hinzugefügt werden um Mediaelement zu beschriften. • video: Um Video Inhalte wie z.B MP3 einzubinden 6.1.3 Geänderte Elemente Bei den Änderungen wurden hauptsächlich den bestehenden Elementen zu den Präsentationseigenschaften eine Inhaltliche Bedeutung hinzugefügt • a: Bisher galt diese Element ohne einen href als nicht HTML konform. Fehlt dieser in HTML5 ist dieser dennoch gültig wird jedoch als Platzhalter für einen Hyperlink gesehen. • b: Vor HTML5 nur zum fettgedruckten Text. Jetzt ist es als Kennzeichen für eine von Stil abweichende Form ohne weitere Inhaltliche Bedeutung • cite: Zitierte Stellen eines Werkes • hr: Nicht mehr eine horizontale Linie, sondern ein Umbruch auf Absatzebene • i: Inhalt der vom Kontext abweicht • input: Neue type Elemente wurden hinzugefügt siehe 6.1.2.5 • menu: Repräsentiert nun eine Liste von Kommandos • s: Frühere Versionen von HTML definiert das s-Element nur in Bezug auf Präsentation. Nun werden Inhalte gekennzeichnet, die nicht mehr richtig oder nicht mehr relevant sind. • small: Vorher nur als kleiner Text angesehen. Nun mit der Bedeutung versehen "Kleingedrucktes" oder "Rechtshinweise" 6.1.2.5 Formulare 17 Webdesign_mittels_HTML5_und_CSS(3) 6.2 CSS3 gegenüber Vorgängerversionen Abbildung 6: HTML5-CSS3-Logo[20] Im Abschnitt 5.5.3 wurden schon die wichtigsten Elemente der Version CSS3 angesprochen. Ist diesem Abschnitt sollen noch einmal die Besonderheiten im Vergleich zu der vorherigen Version aufgedeckt und vertieft werden. Als wichtigste Punkte können die Selectors, Media Queries, Funktionielle Notation, Web Fonts und Transformation genannt werden. 6.2.1 Selectors Wie schon angesprochen wird mit den Attributsselektoren, eine Formatierungen von Elementen möglich, wenn die Bezeichnung des Elements mit bestimmten Zeichenketten beginnt, endet oder diese enthält. So können wie in den unten stehenden Bespielen zu sehen, alle div Elemente mit title Attribute angesprochen und formatiert werden. Bisher war dies nur über Umwege möglich. Ein Ausschnitt aus einen Dokument könnte bisher so aussehen: <div title="wasauchimmer"> Hello World </div> div { color: red; } Ein Ausschnitt aus einen Dokument wie es mit CSS3 aussehen könnte: <div title="wasauchimmer"> Hello World </div> div[title] { color: red; } Darüber hinaus, ist es möglich nicht nur die Attribute anzusprechen, sondern auch deren Inhalt. Mit einer speziellen Syntax können auch weitere Bedingungen geknüpft werden. Hier einige Beispiele zum bessern Verständnis. • div[title^="was"] trifft auf alle div-Elemente zu deren title mit der Zeichenkette was beginnt • div[title$="immer"] trifft auf alle div-Elemente zu deren title mit der Zeichenkette immer endet 6.2 CSS3 gegenüber Vorgängerversionen 18 Webdesign_mittels_HTML5_und_CSS(3) • div[title*="auch"] trifft auf alle div-Elemente zu deren title die Zeichenkette auch enthält Als unter Punkt der Selectors sind auch die Strukturelle Pseudo-Klassen zu nennen. Mit diesen können "unechte" Klassen angesprochen werden. Folgend einige Beispiele: • :root selektiert das Hauptelement eines Dokuments • :nth-child(2n) alle geraden Elementen. Z.B. Jede zweite Spalte einer Tabelle • :nth-child(2n+1) alle ungeraden Elementen. Z.B alle ungeraden Spalten einer Tabelle • :nth-last-child(-n+2) die letzten zwei Elemente • :nth-last-child das letzte Element • *:not(aside) alle Elemente, außer aside[19] Eine Komplette Übersicht ist auf der Webseite des W3C zu finden[21]. 6.2.2 Media Queries Die Media Queries sind als Erweiterung der schon bekannten Media Types zu sehen. Damit können die Stylesheets dem Medium bezogen angepasst werden. Hier wird z.B. ein eigenes Stylesheet für Handhelds benutzt <link rel="stylesheet" href="handheld.css" type="text/css" media="handheld" /> Mit den Media Queries können diese jetzt wesentlich genauer auf das eingesetzte Medium ausgerichtet werden. Dazu können die aufgeführten Medium Eigenschaften genutzt werden. Die Eigenschaften können mit logischen Ausdrücken weiter miteinander verknüpft werden. Ein logisches oder wird als Komma darstellt. Das AND hingegen ganz wie üblich als and. • width • height • device-width • device-height • orientation • aspect-ratio • device-aspect-ratio • color • color-index • monochrome • resultion • scan • grid Im folgenden Beispiel wird die Eingrenzung über die Medieneigenschaften und das logische verknüpfen verdeutlicht. @media screen and (min-width: 400px) and (max-width: 700px) Als Ergebnis wird das Stylesheet auf alle Bildschirme mit einer Breite zwischen 400 Pixel und 700 Pixel angewendet. [19] 6.2.1 Selectors 19 Webdesign_mittels_HTML5_und_CSS(3) 6.2.3 Web Fonts Bisher war es nur möglich eigene Schriftarten nur über Bilder einzubinden. Dies brachte den Nachteil, dass diese häufig wesentlich größer als die Schriftarten selber sind. In CSS3 wird diesen durch die Web Fonts Abhilfe geschaffen. Nun ist es möglich Schriftarten in verschiedenen Formaten direkt einzubinden. Die unterstützen Formate sind von Browser zu Browser unterschiedlich. Damit jeder Browser bedient werden kann, können verschiedene Quellen mit angegeben werden. Diese Quellen kann lokal oder falls keine passende Schriftart auf den Gerät vorhanden ist durch eine URL angeboten werden. Der Aufbau innerhalb eines Dokument geschieht nach folgendem Schema.[19] @font-face { font-family: Bezeichnung; src: Quelle [,Quelle]; [font-weight: weight]; [font-style: style]; }[22] Die Geschwindigkeitsvorteile bieten gerade bei Mobilen Geräten einen enormen Vorteil. Jedoch können noch weitere Vorteile genannt werden. Da die Schriftarten nicht mehr als Bild vorliegen können diese durch Routinen eingelesen und ausgewertet werden. Zum einen bietet dies die Möglichkeit eine Webseite besser auf Menschen mit Behinderung einzugehen; sprich Barrierefrei. Zum anderen können Suchmaschinen von diesem Vorteil profitieren, da diese einen weiteren Teil der Seite untersuchen können. Ein weiterer nicht zu verachten Pluspunkt ist, dass alle gängigen Browser Web Fonts anbieten. Diese sind zwar noch nicht in einem Einheitlichen Format, jedoch zeichnet sich ab, dass sich Web Open Font Format (WOFF) auf allen gängigen Browser unterstützt wird. Diese vom Mozilla Developer Center entwickelte Web Font, soll durch ihre komprimierte Form für schnellen Download sorgen. Zusätzlich werden in dieser Lizenz Informationen mit angegeben, womit Urheberrechtsprobleme vermindert werden[23]. 6.2.4 Transformationen Transformationen bieten nun die Option Bilder direkt, ohne Manipulation durch ein externes Bildbearbeitungsprogramm oder einen Server, zu bearbeiten. Folgende Optionen stehen dank CSS3 zu Verfügung. • translate Mittels dieser Option können Elemente verschoben werden. Die Verschiebung wird Anhand zweier Parameter definiert, die den Faktor auf der X sowie auf der Y-Achse angeben. In dem nachfolgenden Beispiel wird ein ein div Element um 200 Pixel auf der X-Achse, sowie 100 Pixel auf der Y-Achse verschoben. div { transform: translate(200px, 100px); } • scale Eine Vergrößerung bzw. Verkleinerung kann über das Attribut scale erreicht werden. Durch einen Faktor wird die "Richtung" angeben. Für Werte kleiner 1 wird das Objekt verkleinert. Werte größer 1 6.2.3 Web Fonts 20 Webdesign_mittels_HTML5_und_CSS(3) werden dementsprechend auch vergrößert dargestellt. Das Beispiel wird ein -Element um den Faktor 0.5 verkleinern. div { transform: scale(0.5); } • rotate Eine Rotation der Elemente wird mit dem Befehl rotate ermöglicht. Der Grad der Rotation wird in der Einheit degree (deg) gemessen. Dieses Beispiel würde -Elemente um 270° drehen. div { transform: rotate(270deg); } • skew Um Objekte zu neigen bzw. zu krümmen, kann skew eingesetzt werden. Auch hier wird mit deg als Maß gearbeitet. Eine Neigung von 30° wird durch das nächste Beispiel erreicht. div { transform: skew(30 deg); } • matrix Alle bisher vorgestellten Transformationen können auch in Kombination eingestetzt werden. Eine anderer Option ist es die Veränderung in einer Matrix anzugeben. Dazu werden der Matrix 6 Werte angehängt. Die Reihenfolge ist dabei wie folgt scaleY,skewX,skewY,scaleX,translateX,translateY.[19] 6.3 Browserunterstützung Die Hersteller der unterschiedlichen Browser, sind sehr daran interessiert, dass die neue HTML & CSS Technik in ihren Browser unterstützt wird. Dies zeigt vorallem der Aspekt, dass einige wichtige Hersteller sich zur WHATWG zusammen geschlossen haben und um einen neuen Standart zu entwickeln. Dieser Umstand begründete sich zwar darauf, dass die Hersteller nicht mit der Entwicklung des HTML zu xHTML einverstanden waren. Durch den Schritt der W3C zu HTML5 ziehen beide Organisationen größtenteils wieder an einem Strang und verfolgen beide die Weiterentwicklung von HTML5. Wie sieht jedoch die Umsetzung der zur Zeit in Bearbeitung befindlichen HTML 5 Spezifikation aus? Um darüber eine Aussage zu treffen, wurde ein Test auf der Internetseite http://html5test.com/ mit dem aktuell verwendeten Browser durchgeführt. Dieser Test bewertet die Umsetzung der aktuellen HTML 5 Spezifikationen und vergibt für alle erfolgreich umgesetzten Features Punkte. Die Maximal erreichbare Punktzahl liegt bei 300 Punkten. In den unten stehenden Tabelle sind die Ergebnisse Stand Januar 2011 zu sehen. Tabelle 1 Browser Version Veröffentlichung Status 6.2.4 Transformationen Testversion Ergebnis HTML5 21 Webdesign_mittels_HTML5_und_CSS(3) Chrome 8 12/ 2010 Aktuell 8.0.552.224 231 Firefox 3.6 12/ 2010 Aktuell 3.6.13 139 Internet Explorer 8 03/ 2009 Aktuell 8.0.76 27 Safari 5 06/ 2010 Aktuell 5.0.3 207 Opera 11 12/ 2010 Aktuell 11 177 Als klarer Sieger geht aus diesem Test der aktuelle Chrome Browser mit 231 von 300 Punkten hervor. Abgeschlagen mit 27 von 300 Punkten liegt der Internet Explorer (IE)8 auf dem letzten Platz. Damit ist zu sehen, dass der Chrome Browser bereits jetzt viele Funktionen von HTML5 anbieten. Um jedoch bessere Aussagen über die HTML5 Fähigkeit der Browser zu treffen, wurde ein weiterer Test auf der Seite http://findmebyip.com/ durchgeführt. Bei diesem Test werden keine Punkte vergeben, jedoch kann genau erkannt werden, welches Feature bereits integriert ist. Folgende Übersicht zeigt welche Features von welchem Browser unterstützt werden. Abbildung 7 : Test FindMeByIp[24] Auch bei diesen Test ist zu erkennen, dass der Chrome Browser bereits viele Features von HTML5 und CSS3 unterstützt. Anders als bei dem test auf HTML5-test.com wurde bei diesen Test bereits eine Beta des IE9 verwendet. Selbst in dieser Version kann der IE nicht so viele Unterstützungen bieten wie die restlichen Browser. 7 HTML5 in der Praxis In den vorigen Kapiteln wurden die Grundlagen zum Thema HTML5 und CSS3 geschaffen. Dieses Kapitel geht auf den praktischen Teil mittels HTML5 und CSS3 ein und zeigt anschaulich, wie eine Webseite mit HTML5 aufgebaut werden kann. Am Ende dieses Kapitels wird ein einfaches Praxisbeispiel gezeigt, dass den Einsatz von HTML5 und CSS3 verdeutlichen soll. 7.1 Voraussetzungen Im Vorfeld der Gestaltung einer Webseite sind einige Vorüberlegungen nötig. Das wichtigste bei einer Webseite ist, dass die Webseite der breiten Masse zugänglich ist. Um dies erreichen zu können, ist es wichtig, dass die Webseite von den gängigsten Browsern unterstützt wird und wenige Barrieren vorhanden sind. Die Barrierefreiheit ist ein wichtiges Element bei der Webseitengestaltung, das gerne aus den Augen verloren wird. Barrierefreiheit, auch Web Accessibility genannt, beschreibt dabei den Ansatz, Webseiten so zu gestalten, dass jeder sie lesen und nutzen kann. Dazu gehören auch Menschen mit körperlichen Beeinträchtigungen. 6.3 Browserunterstützung 22 Webdesign_mittels_HTML5_und_CSS(3) 7.1.1 Standard-Konformität Die Notwendigkeit von Standards wird immer wichtiger. Die Seiten im Internet werden von vielen verschiedenen Personen aufgerufen, die verschiedene Browser, Betriebssysteme und Geräte verwenden. Damit all diese Komponenten die Webseiten in adäquater Qualität verarbeiten können, wurden vom World Wide Web Consortium (W3C) einheitliche Webstandards entwickelt, die sowohl für Browserhersteller als auch für Webentwickler gelten sollen. Diese unabhängige Organisation besteht aus vielen verschiedenen Mitgliedern, die einen großen Einfluss auf die Entwicklung dieser Standards haben. Die ersten Versionen der Browser implementierten nur die Funktionalitäten, die im Standard beschrieben wurden. Doch schnell entwickelte sich ein Krieg zwischen Netscape und Microsoft, sodass diese Funktionalitäten implementieren, die nicht Teil des Standards waren, wie z.B. die Unterstützung von JavaScript und Frames [25]. Auch wenn zusätzliche Funktionalitäten die Arbeit des Entwicklers erleichtern und das Aussehen einer Webseite verschönert, stellt dies immer das Risiko dar, dass diese Webseite von anderen Benutzern nicht richtig aufgerufen werden kann. Um seine Webseite auf Konformität überprüfen zu können, stehen im Internet Validatoren zur Verfügung, die eine Webseite auf ihren im Doctype angegeben Standard überprüfen. Vor allem das W3C stellt solch einen Validator zur Verfügung [26]. 7.1.2 Barrierefreiheit Das Internet hat sich rasant entwickelt. Früher dienten Webseiten ausschließlich der reinen Informationsdarstellung. HTML war anfangs dafür gedacht, Informationen bereitstellen zu können. Als einzige Dynamik waren damals die Hyperlinks vorgesehen, durch die der Nutzer durch die Webseite navigieren oder auf eine externe Webseite verwiesen werden konnte. Heute sind Webseiten viel mehr Anwendungen, wo Benutzer miteinander kommunizieren, selbst Inhalte darstellen, Geschäfte abwickeln usw. Doch all diese Dinge erfordern weitere Technologien, die über HTML als Auszeichnungsprache, hinausgehen. Doch zusätzliche Technologien erhöhen das Risiko, dass nicht jeder die Webseite korrekt aufrufen kann, seien es fehlende Browserunterstützung oder nicht installierte Plugins, die für die Darstellung der Seite notwendig sind. Zusätzlich wird bei der Erstellung der Webseiten auf das Datenvolumen nicht mehr so viel Rücksicht genommen, da immer mehr Haushalte mit DSL ausgestattet sind. Jedoch existieren immer noch Nutzer, die solch eine schnelle Bandbreite nicht zur Verfügung haben, sodass das Laden einer Webseite viel Zeit in Anspruch nehmen kann. Hinzu kommt, dass Webseiten nicht mehr nur über den Browser auf dem PC aufgerufen werden, sondern auch über Handys, die einen sehr kleinen Bildschirm besitzen und z.B. nicht mit einer Maus ausgestatten sind, die das navigieren erleichtert. Ein weiterer Aspekt sind Nutzer, die unter einer Behinderung leiden. Menschen mit Sehbehinderung nutzen Screen-Reader um sich Webseiten darzustellen. Im Jahre 1999 wurde vom W3C die so genannten "Web Content Accessibility Guidelines" entworfen, die folgende zwei Ziele verfolgen [27]: • Den Seiteninhalt verständlich und navigierbar zu machen • Die Sicherstellung von eleganter Transformation Eine klare inhaltliche Darstellung bezüglich der Sprache reicht für diesen Zweck nicht raus. Dazu ist es wichtig, dass eine einfache und verständliche Möglichkeit besteht, zwischen Seiten innerhalb einer Webseite zu navigieren. Zu diesem Zweck sind Navigationswerkzeuge und Orientierungshelfen unabdingbar. Orientierungshilfen helfen dem Nutzer zu erkennen, wo genau auf der Seite er sich gerade befindet, um den Überblick nicht zu verlieren. 7.1.1 Standard-Konformität 23 Webdesign_mittels_HTML5_und_CSS(3) Bezüglich der Transformation lässt sich sagen, dass eine Webseite ohne Probleme an die verschiedenen Gegebenheiten anzupassen sein muss. Dafür gelten folgende Grundsätze[28]. • Strikte Trennung von Inhalt und Präsentation Dies wird durch das auslagern eines Style-Sheet realisiert. Dadurch lässt sich für jede Gegebenheit das nötige Style-Sheet laden (z.B. für Druckausgabe). Außerdem verkürzt sich die Downloadzeit, da Informationen nicht doppelt vorkommen und die Sytle-Sheet vom Browser zwischen gespeichert werden können[28]. • Multimediale Elemente müssen ein textliches Äquivalent besitzen Benutzer, die auf einer Seite keine eingebetteten Bilder sehen, z.B. Sehbehinderte, die sich die Seite von einem Screenreader vorlesen lassen, können den Inhalt einer Webseite nur verstehen, wenn für diese Bilder ein Textäquivalent vorhanden ist, welches das Bild erklärt[28]. • Dokumente müssen auch für blinde und taube Nutzer zugänglich sein Ein Screenreader sollte genauso berücksichtigt werden wie die Darstellung in schwarz-weiß. Seite muss Hardware/Software unabhängig sein Es ist wichtig, dass jede Seite auch über Tastatur steuerbar und auf sehr kleinen Bildschirmen oder Bildschirmen mit geringer Auflösung erkennbar ist[28]. HTML5-Webseiten mittels Screenreader vorlesen zu lassen stellt bis dato ein Problem dar. Screenreader erfassen zwingend die echte Struktur einer Seite, damit sie damit etwas sinnvolles anstellen können. Da jedoch HTML5 noch nicht W3C-Standard ist, kann man nicht kritisieren, dass die Screenreader HTML5 noch nicht implementiert haben. Jedoch implementiert HTML5 WAI-ARIA. Barrierefreiheit mittels WAI-ARI HTML5 wird der erste HTML-Standard sein, der Konzepte und Mittel für barrierefreies Webdesign fest integriert. Die WAI-ARIA-Spezifikationen beschreiben Möglichkeiten, mittels zusätzlichen HTML-Attributen, den Screenreadern mitzuteilen, wenn sie auf einen Bereich treffen, der logisch zusammen gehört. Dies kann ein Screenreader zuvor nicht wissen. Das Erstellen von Menüs, Buttons oder Schieberegler kann z.B. durch HTML, CSS und JavaScript in Kombination realisiert werden. Das Problem hierbei ist, dass Screenreader solche Konstruktionen selbst nicht erkennen. Eine Fortschrittsanzeige lässt sich wie folgt darstellen: <div id="fortschritt"> <div id="anzeige">50%</div> <div style="width:50%;" id ="abgespielt">/<div> </div> Dieser Fortschrittsbalken kann mit Hilfe von wenig CSS, wie in Abbildung 5 dargestellt, so aussehen. Wer jedoch einen Screenreader nutzt, kann damit nicht viel anfangen, da man nicht wissen kann, dass die drei <div> zusammen ein wichtiges Konstrukt repräsentieren. Dies stellt in Zukunft jedoch kein Problem dank ARIA dar: <div id="fortschritt" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="50"> <div id="anzeige">50%</div> <div style="width:50%;" id="abgespielt"></div> 7.1.2 Barrierefreiheit 24 Webdesign_mittels_HTML5_und_CSS(3) </div> Abbildung 8: Fortschrittsbalken[29] Durch das Attribut role wird die <DIV> als Fortschrittsanzeige erkennbar gemacht. Des Weiteren geben die aira-*-Attribute sowohl den Minimal- und Maximalwert als auch den aktuellen Wert an. HTML5 unterstützt die Attribute role und aria-*, so wie sie in der Spezifikation vorgesehen sind. Die HTML5-Spezifikation sieht außerdem eine ?Implizite ARIA-Semantik? vor. Das bedeutet, dass bestimmten Elementen die aria-*-Attribute nicht manuell hinzugefügt werden müssen, da die HTML5-Spezifikation diese automatisch vorsieht. Die folgende Tabelle zeigt die Attribute, die solch eine implizite ARIA-Semantik besitzen: Tabelle 2 Element ARIA-Semantik Mögliche Rollen <article> article-Rolle article, document, application, main <aside> note-Rolle note, complementary, search, banner <header> Keine banner <li> listitem-Rolle listitem, treeitem <ol> list-Rolle list, tree, directoy <output> status-Rolle Alle <section> region-Rolle regian, document, application, contentinfo, main, search, alert, dialog, altertdialog, status, log <table> grid-Rolle grid, treegrid list-Rolle list, tree, directory document-Rolle document, application <body> 7.2 Grundaufbau mit HTML5 Der Grundaufbau einer HTML5-Datei unterscheidet sich nur geringfügig von dem Aufbau einer HTML 4.01 Datei. Eine Vereinfachung stellt der neue Doctype dar: <!DOCTYPE html> anstatt <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dt Da HTML5 so gut wie vollständig abwärtskompatibel ist, besteht eine hohe Wahrscheinlichkeit, dass eine in HTML 4.01 erstellte Webseite nach ersetzen des neuen Doctypes weiterhin funktioniert[30]. 7.2 Grundaufbau mit HTML5 25 Webdesign_mittels_HTML5_und_CSS(3) Es gibt drei Möglichkeiten den Zeichensatz für ein HTML5-Dokument festzulegen. Über das setzen einer Unicode Byte Order, durch die Definition des content-types im HTTP-Header oder durch die alt bekannte Angabe des Zeichensatzes im <meta>-Tag. Letzteres sollte innerhalb der ersten 512 Bytes des Dokuments erfolgen[30]. Für UTF-8 wäre die Angabe im Meta-Element folgende: <meta charset="utf-8"> anstatt des umgangreicheren <meta http-equiv="content-type" content="text/html; charset=utf-8"> Ein HTML5-Dokument könnte so aussehen: <!DOCTYPE html> <HEAD> <META CHARSET="UTF-8"> <TITLE> HTML5 </TITLE> <HEAD> <H1> Ich bin ein HTML5-Dokument </H1> <p class=beispiel> Hallo! <P> Ich bin ein HTML5-Dokument! Das o.g. Beispiel ist gültiges HTML5, obwohl End-Tags fehlen und sogar wie beim <body> das Start-Tag ausgelassen wurde. Der HTML-Validator des W3C kann bereits gut mit HTML5 umgehen und würde das Beispiel als konform validieren. Es fallen auch die fehlenden Anführungszeichen für Attribute und die wechselnde Groß- und Kleinschreibung auf. Aber all das ist bei HTML5 erlaubt. Somit erleichtert es dem Programmierer die Arbeit. Der Parser selbst überprüft beim Einlesen des Dokuments, ob Tags fehlen und fügt diese automatisch ein[30]. Die nachfolgende Tabelle zeigt eine Auflistung der aus HTML 4.01 bekannten Elementen: Tabelle 3 Element Start-Tag End-Tag <html> Optional Optional <head> Optional Optional <body> Optional Optional <li> Pflicht Optional <dt> Pflicht Optional <p> Pflicht Optional <colgroup> Optional Optional <thead> Pflicht Optional <tbody> Optional Optional 7.2 Grundaufbau mit HTML5 26 Webdesign_mittels_HTML5_und_CSS(3) <tfoot> Pflicht Optional <tr> Pflicht Optional <th> Pflicht Optional <td> Pflicht Optional <rt> Pflicht Optional <rp> Pflicht Optional <optgroup> Pflicht Optional <option> Optional Pflicht Somit sieht der grundlegende Aufbau eines HTML5-Dokuments wie folgt aus: 1. Byte Order Mark (optional) 2. Leerzeichen und Kommentare (optional) 3. Doctype 4. Leerzeichen und Kommentare (optional) 5. <html> mit dem Inhalt des Dokuments 6. Leerzeichen und Kommentare (optional)[30] Wenn die Übermittlung des Zeichensatzes per HTTP-Header oder BOM erfolgt, lautet das kleinstmögliche gültige HTML-Dokument: <!DOCTYPE html> Der HTML-Parsers des Browsers erstellt daraus das folgende DOM: <html> <head /> <body /> </html> 7.2.1 Frame Ganz zu Anfang wurde das Layout mithilfe von Frames realisiert. Mittels eines <frameset> ist es möglich, mehrere einzelne Seiten als Ganzes darzustellen. Jedoch wurde im Laufe der Zeit immer mehr Kritik an Frames geübt. Die komplette Webseite kann nicht gedruckt werden, da immer nur die aktuelle Seite gedruckt werden kann. Auch das Hinzufügen der Webseite zu den Lesezeichen des Webbrowsers ist nicht möglich, da nur der Verweis der aktuellen Seite gespeichert wird. Außerdem sind Webseiten die mit Hilfe des <frameset> erstellt worden sind nur schwierig durch eine Suchmaschine indizierbar, da diese nur den Inhalt einzelner Seiten durchsuchen kann und nicht das Gerüst drum herum. Aufgrund dieser vielen Nachteile hat sich im Laufe der Zeit das Erstellen eines Layouts mit Frames als nicht brauchbar erwiesen. In HTML5 wurden Frames ersatzlos gestrichen. Nur das IFrame ist weiterhin Bestandteil. 7.2.1 Frame 27 Webdesign_mittels_HTML5_und_CSS(3) 7.2.2 Tabelle Die Tabelle ist zum Präsentieren von Daten in Tabellenform geeignet. Also für Daten, die in einer Beziehung zueinander stehen. Zu Anfang, als noch wenig Möglichkeiten bestanden mittels CSS ein vernünftiges Layout zu realisieren, ?zweckentfremdete? man <table> zu diesem Zweck. Das erste Layout ist mithilfe einer Tabelle schnell realisiert. Jedoch hat dies viele Nachteile. Zum einen ist ein einmal erstelltes Layout schwierig zu ändern. Der Quellcode wird unübersichtlich und der Screenreader versucht den Inhalt einer Tabelle in seiner Struktur vorzulesen. Der Screenreader kann nicht wissen, dass durch die Tabelle zur Struktur der Webseite genutzt wurde. Somit lässt sich festhalten, dass die Elemente einer Spezifikation für ihren Zweck verwendet werden sollten. Ein vernünftiges Layout lässt sich mit Hilfe von Containern-Elementen und CSS weitaus flexibler und strukturierter realisieren. 7.2.3 Div Auch in HTML5 sind <div>-Elemente die einzig wahren Elemente, mit denen sich das Layout einer Webseite realisieren lässt. Mittels <div>-Elementen und CSS ist man in der Lage, dass gewünschte Layout für eine Webseite zu implementieren. Da sich jedoch in Bezug auf HTML5 nichts geändert hat, sei auf die Webseiten verwiesen, die sich mit dem Layout von Webseiten mittels <div>- und weiteren Elementen mit Hilfe von CSS auseinander setzen. Nachfolgend ein einfaches Beispiel, welches das Layout mittels <div> und CSS verdeutlichen soll: body { padding: 0px; margin: 0px; background-color: #0080c0; } #inhalt { width: auto; margin: 20px 170px; background-color: #ffffc6; } #links { position: absolute; top: 20px; left: 20px; width: 130px; height: 300px; background-color: #ffcc00; } #rechts { position: absolute; top: 20px; right: 20px; width: 130px; height: 300px; background-color: #ffcc00; } <div id="inhalt">Mitte</div> <div id="links">Links</div> <div id="rechts">Rechts</div> 7.2.2 Tabelle 28 Webdesign_mittels_HTML5_und_CSS(3) Abbildung 9: klassisches 3-Spalten-Design[31] 7.2.4 Semantische Gliederung Zu Anfang trug HTML5 den Namen "Webappplications 1.0", denn Webanwendungen statt Webseiten sind der Fokus vieler Neuentwicklungen. Aus diesem Grund findet sich der Großteil der Änderungen im JavaScript-API-Bereich wieder. Nichtsdestotrotz steht im Bereich HTML, mit dem man reine Webseiten erstellt, eine Reihe von Änderungen und Neuerungen bereit. HTML5 stellt nicht nur neue Elemente bereit, sondern erweckt alte Präsentationselemente, die durch die Strict-Varianten von HTML4 verboten waren, wieder zum Leben. Somit besitzt HTML5 bessere Ausdrucksmöglichkeiten für semantisches HTML[32]. Struktur innerhalb Dokumente Ein mehrspaltiges Layout war früher die Ausnahme, heute stellt es die Regel dar. Die Struktur von Webseiten wird immer komplexer, in den Fußzeilen (engl. "Footer") finden sich viele Inhalte wieder und der Inhalt besteht aus mehr als nur Überschriften und Absätzen. Um diese Struktur zu realisieren, wird eine Menge von <div>-Elementen benötigt, die als semantisch leere Hülle zwar ein Design ermöglichen, die verschiedenen Bereiche einer Webseite jedoch nicht sinnvoll voneinander abgrenzen. HTML5 schafft die Möglichkeit, wirklich semantisches HTML zu realisieren, in dem es Elemente zur Verfügung stellt, die eine Webseite semantisch strukturieren lassen. Wenn Webseiten zu komplex werden, reichen die Elemente für Überschriften <h1> bis <h6> nicht mehr aus. Das Logo benötigt <h1>, die Ressort-Überschrift <h2>, <h3> und <h4> werden für den Artikel und dessen Unterüberschrift selbst benötigt und <h5> und <h6> bleiben für den Kommentarabschnitt und die Kommentare selbst übrig. Diese Probleme werden durch die neuen strukturierenden Elemente in HTML5 gelöst. Nur mit <h1> und den neuen Elementen ist man in der Lage, unendlich tief verschachtelte Dokumente zu schreiben[32]. Neue strukturierende Elemente • <section> Das einfachste neue Element um ein Dokument zu strukturieren ist <section>, welches ein Dokument in Sinnabschnitte unterteilt. Dieses Dokument ist wirklich nur für die inhaltliche Gliederung gedacht, z.B. für die Unterteilung in Kapitel. Benötigt man Elemente zum Design, ist das alt bewährte <div> die richtige Wahl. <section> 7.2.3 Div 29 Webdesign_mittels_HTML5_und_CSS(3) <h1>Kapitel 1</h1> <p> Hier steht Text von Kapitel 1 </p> </section> <section> <h1>Kapitel 2</h1> <p>Hier steht Text von Kapitel 2</p> </section> <section> <h1>Kapitel 3></h1> <p1>Hier steht Text von Kapitel 3</p> </section> Meistens enthält ein <section>-Element mindestens eine Überschrift oder ein <hgroup>-Element. Möglicherweise auch <header>-und <footer>-Elemente[32]. • <header> und <footer> Ein <header> repräsentiert den Kopf-Bereich, also einführende Inhalte, einer Webseite. Dies können z.B. Überschriften und Navigationen sein. Dabei kann das <header>-Element nicht nur als Kopfbereich der gesamten Seite, sondern auch als Kopfbereich anderer Elemente angesehen werden. Das <footer>-Element stellt das Pendant für den Fußbereich von Webseiten, Dokumenten oder Abschnitten dar[32]. <section> <header> <h1>Die Überschrift</h1> </header> <p> Inhalt und noch mehr Inhalt </p> <footer> <p> Dies ist z.B. ein rechtlicher Hinweis </p> </footer> </section> • <nav> Das <nav>-Element wurde zur Auszeichnung von Navigationselementen eingeführt. Es beinhaltet also Verweise auf andere Unterseiten innerhalb der Webseite. <header> <h1> Beispiel einer Navigation </h1> <p> <a href="sitemap.html">Sitemap</a> <a href="impressum.html">Impressum</a> </p> <nav> <ul> <li><a href="home.html">Startseite</a></li> <li><a href="ueber.html">Über uns</a></li> <li><a href="home.html">Produkte</a></li> <li><a href="home.html">Kontakt</a></li> </ul> <nav> </header> Bei diesem Beispiel fällt auf, dass die zwei Links innerhalb des ersten <p>-Elements nicht innerhalb <nav> stehen. Dies liegt daran, dass das <nav>-Element nur für die Hauptnavigation gedacht ist. Es ist zwar erlaubt 7.2.4 Semantische Gliederung 30 Webdesign_mittels_HTML5_und_CSS(3) mehrere <nav>-Elemente innerhalb einer Webseite zu besitzen, jedoch sollte damit maßvoll umgegangen werden[32]. • <aside> Inhalte, die eine Ergänzung zum umgebenden Element darstellen, stehen innerhalb des <aside>-Elements. Der Inhalt vom <aside>-Element sollte eine Beziehung zum umliegenden Inhalt besitzen[33]. <p> Meine Familie und ich waren diesen Sommer im Movie Park. </p> <aside> <h4>Movie Park</h4> Movie Park ist der größte Film- und Entertainmentpark in Deutschland </aside> • <article> Abgeschlossene Inhalte werden mittels <article> ausgezeichnet. Es ist geeignet für Forenartikel, Blogeinträge, Nutzerkommentare und Newsmeldungen[34]. <article> <h1>Mein erster Blogeintrag </h1> <p> Heute ist wieder was tolles passiert ... </p> </article> 7.2.5 Formulare Das heutige Web fordert immer komplexere Dateneingaben. Anstatt überschaubarerer Kontaktformulare, werden heute Eingaben wie Farben, Datumseingaben oder Zahlenbereich benötigt. Zusätzlich wünscht der User, dass seine Eingaben auf Richtigkeit vor Absenden überprüft werden. Um dies zu bewerkstelligen war ein Entwickler gezwungen, uneinheitliche und komplizierte JavaScript-Konstruktionen einzusetzen. Aus diesem Grund stellt HTML5 viele neue Input-Typen und viele neue Funktionen für alle Formular-Elemente bereit. Nachfolgend werden die wichtigsten Neuerungen gezeigt. Neue Input-Typen • search Stellt eine Ergänzung von <input type=?text?> dar. Es ist lediglich für Plattformen gedacht, wo Suchformulare ein spezielles Aussehen besitzen. Dementsprechend werden alle Style-Angaben bei diesem Typ ignoriert[35]. <input type="search"> • telefone, url und email Diese Typen sind für die Eingabe von Telefonnummern, URLs und E-Mail-Adressen gedacht. Wird die Formular-Validierungs-API benutzt, werden bei URLS und E-Maildressen der Inhalt auf Richtigkeit überprüft. Außerdem werden bei Smartphones die zur Verfügung gestellte Tastatur entsprechend dem Typ angepasst. <input type="telephone"> <input type="url"> <input type="email"> 7.2.5 Formulare 31 Webdesign_mittels_HTML5_und_CSS(3) • number Der Typ number stellt ein Feld für die Eingabe von Zahlen bereit. Die Zahl kann per Tastatur eingegeben oder man nutzt die vorhandenen Kontrollelemente. Die Attribute min, max und step geben dabei den Minimalwert, Maximalwert und die Schrittweite an[35]. <input type="number" min="0" max="3" step="1"> Abbildung 10: Beispiel Input-Typ number[36] • Datums- und Zeitangaben Zur Eingabe von Datums- und Zeitangeben stehen mehrere Typen zur Verfügung. Es existieren die Typen date für die Auswahl des Datums, time für die Auswahl der Uhrzeit und Datetime als Kombination aus beiden. Des Weiteren existieren die Typen month und week, die für die Auswahl des Monats und einer Kalenderwoche vorhanden sind. Interessant dabei ist, dass Formularwidgets in Form von Datumspickern und Zeitauswahlfeldern, zur Verfügung stehen[35]. • range Der Typ range wird in den meisten Browsern als Schieberegler dargestellt, der für die Auswahl einer Zahl innerhalb von Grenzwerten ermöglicht. Der Grenzwert werden durch die Attribute min und max festgelegt[35]. <input type="range" min="0" max="0" step"1"> Abbildung 11: Beispiel Input-Typ range[37] Integrierte Formularvalidierung Mittels HTML5 lassen sich Formulareingaben direkt im Browser validieren. Die Input-Typen email und url lassen z.B. nur formale korrekte E-Mail-Adressen und URLs zu, Eingabefelder können als Pflichtfelder deklariert werden und es ist sogar möglich, für jedes Feld einen regulären Ausdruck zu definieren. Dabei lassen sich Elemente einzeln oder ganze Formulare und Fieldsets validieren. All dies geschieht über die eingebaute Validierungs-API. Dazu ist nur eine einzige Zeile JavaScript nötig. Die folgenden Elemente sind von einer Prüfung ausgeschlossen: • hidden • submit • image • reset • object Alle anderen Elemente können auf folgendes geprüft werden: 7.2.5 Formulare 32 Webdesign_mittels_HTML5_und_CSS(3) • Pflichtfelder • Eingebaute Syntaxregel wie bei email und url • Einhaltung der Feldattribute, z.B. min und max • Beliebige Syntaxregeln von regulären Ausdrücken 7.3 Praxisbeispiel Die nun erworbenen Kenntnisse sollen nun in einem Praxisbeispiel eingesetzt werden. Als Praxisbeispiel dient ein Blog, da sich dort die vielen neuen semantischen Elemente gut einsetzen lassen. Außerdem benötigt ein Blog ein Formular, bei dem neue Funktionalitäten gut gezeigt werden können. Grundstruktur Abbildung 12 zeigt die Grundstruktur des zu erstellenden Blogs. Abbildung 12: Grundstruktur Praxisbeispiel[38] Grundstruktur als Quelltext: 7.3 Praxisbeispiel 33 Webdesign_mittels_HTML5_und_CSS(3) <!doctype html> <html> <head> <title>Praxisbeispiel Blog</title> </head> <body> <header></header> <nav></nav> <section> <article class="blogPost"></article> </section> <section id="comments"> <article></article> <article></article> </section> <form></form> <aside> <section></section> <section></section> </aside> <footer></footer> </body> </html> Navigation Die Navigation wird in Form einer Liste genau wie in HTML 4 oder XHTML erstellt. Der einzige unterschied ist, dass die Liste innerhalb eines <nav>-Elements platziert wird. <nav> <ul> <li class="selected"><a href="#">Startseite</a></li> <li><a href="#">Über</a></li> <li><a href="#">Archive</a></li> <li><a href="#">Kontakt</a></li> <li class="subscribe"><a href="#">Abonnieren</a></li> </ul> </nav> Hauptteil Im Hauptinhalt werden Blogeintrag, Kommentare und das Formular zum Abschicken eines Kommentars zusammengefasst. Dabei besteht jeder Bereich aus einer <section>. • Blogeintrag Die <section> Blogeintrag besteht aus <article>, <header>, und <p>. Das <article>-Element repräsentiert einen unabhängigen Blogeintrag. Genau für solch einen Zweck wurde das <article>-Element geschaffen. Innerhalb des <article>-Elements befindet sich ein <header>-Element, welches die Überschrift des Blogeintrags repräsentiert. Außerhalb des <header>-Elements wird der wirkliche Eintrag innerhalb eines <p>-Elements dargestellt. <section> <article class="blogPost"> <header> <h2>Ein Blogeintrag</h2> </header> <p>Inhalt des Eintrags</p> </article> 7.3 Praxisbeispiel 34 Webdesign_mittels_HTML5_und_CSS(3) </section> • Kommentare Die Kommentare werden ähnlich wie der Blogeintrag aufgebaut, ohne großen Änderungen oder Neuerungen. Ein Unterschied ist, dass unter <section> mehrere <article>-Elemente vorhanden sind, die die verschiedenen Kommentare repräsentieren. <section id="comments"> <h3>Kommentare</h3> <article> <header> <a href="#">Meier</a> am <time datetime="2011-02-02T13:00+02:00">02. Februar 2011</time> </header> <p>Inhalt von Kommentar 1</p> </article> <article> <header> <a href="#">Schulz</a> am <time datetime="2011-02-03T14:00+02:00">03. Februar 2011</time> </header> <p>Inhalt von Kommentar 2</p> </article> </section> • Kommentarformular Für das Kommentarformular werden die neuen Input-Typen email und url verwendet. Außerdem werden die Pflichtfelder für die neue Validierung in HTML5 mittels required markiert. <form action="#" method="post"> <h3>Kommentar schreiben</h3> <p> <label for="name">Name</label> <input name="name" class="inputs" type="text" required /> </p> <p> <label for="email">E-mail</label> <input name="email" id="email" class="inputs" type="email" required /> </p> <p> <label for="website">Website</label> <input name="website" id="website" class="inputs" type="url" /> </p> <p> <label for="comment">Comment</label> <textarea name="comment" id="comment" class="inputs" required></textarea> </p> <p> <input type="submit" id="button" value="Kommentar eintragen" /> </p> </form> Fußzeile und Sidebar Der <footer> und die Sidebar <aside> enthalten nichts neues und sind simpel Aufgebaut. Es entspricht den vorhergegangen Teilen. <aside> 7.3 Praxisbeispiel 35 Webdesign_mittels_HTML5_und_CSS(3) <section> <header> <h3>Kategorien</h3> </header> <ul> <li><a href="#">Lorem ipsum dolor</a></li> <li><a href="#">Sit amet consectetur</a></li> <li><a href="#">Adipisicing elit sed</a></li> <li><a href="#">Do eiusmod tempor</a></li> <li><a href="#">Incididunt ut labore</a></li> </ul> </section> <section> <header> <h3>Archive</h3> </header> <ul> <li><a href="#">Dezember 2010</a></li> <li><a href="#">November 2010</a></li> <li><a href="#">Oktober 2010</a></li> </ul> </section> </aside> <footer> <section id="footer"> <p>Inhalt der Fußzeile</p> </section> </footer> Ergebnis Das Ergebnis ohne CSS ist nicht berauschend, wie man in Abbildung 13 sehen kann. Angereichert mit CSS jedoch, ist es ein Blog, wie man ihn gewöhnlich kennt, siehe Abbildung 14. Der Quelltext der Webseite (blog.html) und des CSS-Codes (blog.css) ist im Anhang zu finden. 7.3 Praxisbeispiel 36 Webdesign_mittels_HTML5_und_CSS(3) Abbildung 13: Blog ohne CSS[39] 7.3 Praxisbeispiel 37 Webdesign_mittels_HTML5_und_CSS(3) Abbildung 14: Blog mit CSS[40] 8 Fazit Die durch die W3C und die WHATWG vorangetriebene Entwicklung von HTML5 und CSS3 bietet bereits jetzt dem WWW unglaubliche Möglichkeiten. Den größten Schritt bieten wohl die Elemente rund um die Funktionen des Multimedia. Damit können Inhalte dargestellt werden, die bisher nur durch Plugins integriert werden konnten. Gerade das neue canvas Element, welches komplett neu in HTML5 auftaucht zeigt völlig neue und auf ungeahnte Weise, einen neuen Weg Webseiten zu designen. Hier ist als herausragendes Beispiel, das Computerspiel Quake zu nennen, welches ohne zusätzliche Software in einem HTML5 fähigen Browser gespielt werden kann. Weitere Inhalte wie Audio und Video Formate direkt in ein HTML Dokument einzubetten, wurde wohl von vielen Webseiten-Programmierer lange erwartet. Neue Wege können auch mit den Drag&Drop und Geolocation Features beschritten werden. Die bisher genannten Entwicklungen sind sehr offensichtlich und fallen den Benutzer direkt ins Auge, es sind aber auch Elemente entstanden, die eine semantische Strukturierung innerhalb des Codes schaffen. Dies bietet nicht nur den Entwicklern enorme Vorteile Webseiten dynamisch anzupassen, sondern auch für Suchmaschinen und Menschen mit einer Behinderung. Ein weiterer Fortschritt ist auch in der Gestaltung und Prüfung von Formularen gelungen. Endlich ist es ein leichtes Eingaben der Benutzer direkt nach vorgegebenen Pattern-Attribute auf Richtigkeit zu prüfen. Auch das Entwerfen und Gestalten dieser ist mit HTML Kenntnissen vereinfacht worden. 8 Fazit 38 Webdesign_mittels_HTML5_und_CSS(3) Dem allen steht gegenüber, dass die eingesetzten Features erstmal von den Browser unterstützt werden müssen. Die durchgeführten Test zeigten je nach Browser unterschiedliche Ergebnisse. Auszeichnen konnte sich vor allem der Chrome Browser, einen Großteil dieses guten Ergebnis kann auf die Häufigkeit von neuen Releases zurückgeführt werden. Alleine 12 Versionen (incl. Beta und Developer) dieses Jahr[41]. Der IE bildete das Schlusslicht in den durchgeführten Test, es ist doch zu beachten, dass ein Ausblick auf die neue IE Version 9 eine enorme Verbesserung gegenüber der aktuellen Version zeigt. Der Willen Microsoft den Internet Explorer auf HTML5 und CSS3 auszurichten, zeigt der eigene vorgestellte Test auf http://samples.msdn.microsoft.com/ietestcenter/. Bei diesem schneidet der IE9 außergewöhnlich gut ab, aber wie sagt man: "Trau keiner Statistik, die du nicht selber gefälscht hast." Der Test kann nicht als wirklich Objektiv betrachtet werden, da eine Selektion der Features stattgefunden hat[42]. Wird der Fortschritt weiter getrieben und können sich die W3C und die Browser Hersteller mit der WHATWG weiterhin auf einen Weg einigen, werden die neuen Techniken mit HTML5 und CSS3 das Internet revolutionieren. 9 Fußnoten 1. ? Vgl. Bachan 2. ? Vgl. Optinet24.de 3. ? Vgl. Bloß 4. ? Quelle: Appleinsider 5. ? Vgl. W3C Standards 6. ? 6,0 6,1 Vgl. SELFHTML 7. ? Vgl. SELFHTML 8. ? Vgl. WHATWG 9. ? Quelle: Academic 10. ? Vgl. SELFHTML 11. ? Vgl. SELFHTML 12. ? Vgl. W3C DOM 13. ? Vgl. Szestakow 14. ? 14,0 14,1 14,2 14,3 14,4 14,5 14,6 14,7 14,8 Vgl. CSS3.info 15. ? W3C HTML5 Logo 16. ? Berners-Lee 17. ? Vgl. html-lernen 18. ? Vgl. HEISE 19. ? 19,0 19,1 19,2 19,3 19,4 19,5 Vgl. CSS3-HTML5 20. ? HTML5-CSS3-Logo 21. ? Vgl. W3C Selectors 22. ? Developer-Mozilla @font-face 23. ? Vgl. Developer-Mozilla WOFF 24. ? Quelle: findmebyip 25. ? Vgl.Beck (2006) 26. ? W3C Validator 27. ? Vgl. Chisholm / Vanderheiden / Jacobs (1999) 28. ? 28,0 28,1 28,2 28,3 Vgl. WCAG, Abschnitt: Transform gracefully 29. ? Quelle: Fortschrittsbalken 30. ? 30,0 30,1 30,2 30,3 Vgl. Kröner (2010), S. 42ff 31. ? Quelle: CSS Layout 32. ? 32,0 32,1 32,2 32,3 32,4 Vgl. Kröner (2010), S. 71ff 9 Fußnoten 39 Webdesign_mittels_HTML5_und_CSS(3) 33. ? Vgl. W3Schools Aside 34. ? Vgl. W3Schools Article 35. ? 35,0 35,1 35,2 35,3 Vgl. W3Schools W3C HTML5 Draft, 4.10.7.1 States of the type attribute 36. ? Quelle: Eigene Darstellung 37. ? Quelle: Eigene Darstellung 38. ? Quelle: Eigene Darstellung 39. ? Quelle: Eigene Darstellung 40. ? Quelle: Eigene Darstellung 41. ? Vgl. OLDAPPS 42. ? Vgl. derstandard.at 10 Literatur- und Quellenverzeichnis Academic Academic: Document Object Model, http://de.academic.ru/dic.nsf/dewiki/342491, 2010, abgerufen am Appleinsider.com: Adobe-Apple war on Flash reminiscent of PostScript struggle, Appleinsider http://www.appleinsider.com/print/10/05/14/adobe_apple_war_on_flash_reminiscent_of_postscript_st 2008, abgerufen am 30.01.2011 Fortschrittsbalken mit CSS/JavaScript: http://www.antusblog.de/2009/07/27/fortschrittsbalken-mit-css Fortschrittsbalken abgerufen am 01.02.2011 Bachan, Eva: Webdesign Glossar. Die Begriffe aus dem Bereich Webdesign auf einen Blick., Bachan http://www.evedesign.net/webdesign-wien-info/webdesign-glossar.php#W, abgerufen am 30.01.2011 Beck, Sascha A.(2006): Browserkrieg - Microsoft gegen Netscape, Beck (2006) http://server02.is.uni-sb.de/courses/ident/kontroverses/browserkrieg/, 09.10.2006, abgerufen am 31.12 Bernes-Lee, (2006): Reinventing HTML, http://dig.csail.mit.edu/breadcrumbs/blog/4/, 27.10.2006, ab Bernes-Lee 03.02.2011 Bloß, Michael: Morphe Webdesign - Webdesigner für mittelständische Unternehmen. Bloß http://www.morphe-webdesign.de/it-glossar-a/glossar-w.html, abgerufen am 30.01.2011 Chisholm / Chisholm, Wendy; Vanderheiden, Gregg; Jacobs, Ian (1999) : Web Content Accessibility Guidelines 1 Vanderheiden / http://www.w3.org/TR/WCAG10, abgerufen am 31.01.2011 Jacobs (1999) Satrun, Oliver : alle-videos-in-einer-playlist, http://css3-html5.de/alle-videos-in-einer-playlist, abgeruf CSS3-HTML5 03.02.2011 Microsoft lässt Internet Explorer 9 bei HTML 5 triumphieren, derstandard.at hhttp://derstandard.at/1271378320275/Manipulation-Microsoft-laesst-Internet-Explorer-9-bei-HTML07.06.2011, abgerufen am 03.02.2011 Developer-Mozilla @font-face, https://developer.mozilla.org/index.php?title=en/css/%40font-face, 13.01.2011, abgerufen @font-face 03.02.2011 Developer-Mozilla About WOFF, https://developer.mozilla.org/en/About_WOFF, 18.02.2011, abgerufen am 03.02.2011 WOFF findmebyip HTML5 CSS3 Support, http://fmbip.com/#target-selector, abgerufen am 03.02.2011 Aus HTML 5 wird der lebende Standard "HTML",: HEISE http://www.heise.de/newsticker/meldung/Aus-HTML-5-wird-der-lebende-Standard-HTML-1172423.h 20.01.2010, abgerufen am 03.02.2011 HTML Elemente, die bei HTML5 nicht mehr weiterentwickelt werden Posted in Allgemeines,: html-lernen http://www.html-lernen.de/2010/07/html-elemente-die-bei-html5-nicht-mehr-weiterentwickelt-werden abgerufen am 03.02.2011 10 Literatur- und Quellenverzeichnis 40 Webdesign_mittels_HTML5_und_CSS(3) Kröner (2010) Peter Kröner: HTML5 - Webseiten innovativ und zukunftssicher, 1. Auflage, 2010, open source Press Old Version of Google Chrome, http://www.oldapps.com/google_chrome.php/ OLDAPPS http://www.oldapps.com/google_chrome.php/], abgerufen am 30.01.2011 Optinet24.de: Webdesign- und Webhosting-Glossar, http://www.optinet24.de/webdesign/glossar/, abg Optinet24.de 30.01.2011 SELFHTML: Dynamisches HTML / DHTML-Modelle / Das Document Object Model (DOM), SELFHTML http://de.selfhtml.org/dhtml/modelle/dom.htm, 2007, abgerufen am 30.01.2011 SELFHTML: HTML/XHTML / XHTML und HTML / Unterschiede zwischen XHTML und HTML, SELFHTML http://de.selfhtml.org/html/xhtml/unterschiede.htm, 2007, abgerufen am 01.02.2011 SELFHTML: HTML Versionen, http://de.selfhtml.org/intro/technologien/html.htm#versionen, 2007, SELFHTML 03.02.2011 Szestakow Szestakow, St.: Cascading Style Sheets, level 2 bei CSS1.de, http://www.css1.de/, 2009, abgerufen am World Wide Web Consortium (W3C): W3C Document Object Model, http://www.w3.org/DOM/, 200 W3C DOM am 30.01.2011 World Wide Web Consortium (W3C): HTML5 Working Draft 13 January 2011, W3C HTML5 http://www.w3.org/TR/html5/Overview.html http://www.w3.org/TR/html5/Overview.html], abgerufe Draft 03.02.2011 W3C HTML5 World Wide Web Consortium (W3C): W3C HTML5 Logo, http://www.w3.org/html/logo/, abgerufen Logo 03.02.2011 W3C HTML5 CSS World Wide Web Consortium (W3C): W3C HTML5 Logo, http://www.w3.org/html/logo/, abgerufen Logo 03.02.2011 World Wide Web Consortium (W3C): Selectors Level 3 W3C Proposed Recommendation, W3C Selectors http://www.w3.org/TR/css3-selectors/, 15.12.2010, abgerufen am 30.01.2011 W3C Standards World Wide Web Consortium (W3C): Standards, http://www.w3.org/standards/, 2009, abgerufen am W3Schools Article W3Schools.com: HTML5 article Tag, http://www.w3schools.com/html5/tag_article.asp, abgerufen am W3Schools Aside W3Schools.com: HTML5 aside Tag, http://www.w3schools.com/html5/tag_aside.asp, abgerufen am 0 Web Content Accessibility Guidelines 1.0: http://www.w3.org/TR/WCAG10/#transform-gracefully, 2 WCAG am 01.02.2011 WEBFLUX: CSS3 Previews, http://www.css3.info/preview/, abgerufen am 01.02.2011 CSS3.info HTML5 Living Standard, http://www.whatwg.org/specs/web-apps/current-work/multipage/, abgerufen WHATWG 03.02.2011 11 Anhang 11.1 Blog.html vom Praxisbeispiel <!doctype html> <html> <head> <title>Praxisbeispiel Blog</title> <link rel="stylesheet" href="blog.css" type="text/css" media="screen" /> </head> <body> <header> <h1>Praxisbeispiel Blog</h1> </header> 11 Anhang 41 Webdesign_mittels_HTML5_und_CSS(3) <nav> <ul> <li class="selected"><a href="#">Startseite</a></li> <li><a href="#">Über</a></li> <li><a href="#">Archive</a></li> <li><a href="#">Kontakt</a></li> <li class="subscribe"><a href="#">Abonnieren</a></li> </ul> </nav> <div id="content"> <div id="mainContent"> <section> <article class="blogPost"> <header> <h2>Ein Blogeintrag</h2> </header> <div> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin euismod tellus eu </p> </div> </article> </section> <section id="comments"> <h3>Kommentare</h3> <article> <header> <a href="#">Meier</a> am <time datetime="2011-02-02T13:00+02:00">02. Februar 2011 </header> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor inc </p> </article> <article> <header> <a href="#">Schulz</a> am <time datetime="2011-02-03T14:00+02:00">03. Februar 20 </header> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor inc </p> </article> </section> <form action="#" method="post"> <h3>Kommentar schreiben</h3> <p> <label for="name">Name</label> <input name="name" id="name" class="inputs" type="text" required /> </p> <p> <label for="email">E-mail</label> <input name="email" id="email" class="inputs" type="email" required /> </p> <p> <label for="website">Website</label> <input name="website" id="website" class="inputs" type="url" /> </p> <p> <label for="comment">Comment</label> <textarea name="comment" id="comment" class="inputs" required></textarea> </p> <p><input type="submit" id="button" value="Kommentar eintragen" /></p> </form> </div> <aside> <section> 11.1 Blog.html vom Praxisbeispiel 42 Webdesign_mittels_HTML5_und_CSS(3) <header> <h3>Kategorien</h3> </header> <ul> <li><a href="#">Lorem ipsum dolor</a></li> <li><a href="#">Sit amet consectetur</a></li> <li><a href="#">Adipisicing elit sed</a></li> <li><a href="#">Do eiusmod tempor</a></li> <li><a href="#">Incididunt ut labore</a></li> </ul> </section> <section> <header> <h3>Archive</h3> </header> <ul> <li><a href="#">Dezember 2010</a></li> <li><a href="#">November 2010</a></li> <li><a href="#">Oktober 2010</a></li> </ul> </section> </aside> </div> <footer> <div> <section id="footer"> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incid </p> </section> </div> </footer> </body> </html> 11.2 Blog.css vom Praxisbeispiel * { margin: 0; padding: 0; } header, footer, section, aside, nav, article { display: block; } body { margin: 0 auto; padding: 22px 0; width: 940px; font: 13px/22px Helvetica, Arial, sans-serif; background: #F0F0F0; } h1 { font-size: 28px; line-height: 10px; padding: 11px 0; } h2 { font-size: 28Px; line-height: 44px; padding: 22px 0; } 11.2 Blog.css vom Praxisbeispiel 43 Webdesign_mittels_HTML5_und_CSS(3) h3 { font-size: 18px; line-height: 22px; padding: 11px 0; } p { padding-bottom: 22px; } nav { position: absolute; left: 0; width: 100%; background: -moz-linear-gradient(top, rgba(0,0,0,0), rgba(0,0,0,0.5)); } nav ul { margin: 0 auto; width: 940px; list-style: none; } nav ul li { float: left; } nav ul li a { display: block; margin-right: 20px; width: 140px; font-size: 14px; line-height: 44px; text-align: center; text-decoration: none; color: #111111; } nav ul li a:hover { color: #fff; } nav ul li.selected a { color: #fff; } nav ul li.subscribe a { margin-left: 22px; padding-left: 33px; text-align: left; } #content { display: table; } #mainContent { display: table-cell; width: 620px; padding-right: 22px; padding-top: 44px; } aside { display: table-cell; width: 300px; } .blogPost header p, .blogPost header p a { font-size: 14px; font-style: italic; color: #777; } .blogPost header p a:hover { 11.2 Blog.css vom Praxisbeispiel 44 Webdesign_mittels_HTML5_und_CSS(3) text-decoration: none; color: #000; } #comments { border-top: 1px solid #d7d7d7; } #comments article { display: table; padding: 11px; } #comments article:nth-child(odd) { padding: 11px; background: #E3E3E3; border: 1px solid #d7d7d7; } #comments article header { display: table-cell; width: 220px; padding-right: 22px; } #comments article header a { display: block; font-weight: bold; color: #000; } #comments article header a:hover { text-decoration: none; } #comments article p { padding: 0; } form { margin-top: 18px; border-top: 1px solid #d7d7d7; } form p { display: table; margin-bottom: 11px; padding: 0 22px; } form label { display: table-cell; width: 140px; padding-right: 20px; text-align: right; font-weight: bold; vertical-align: top; } .inputs { display: table-cell; width: 300px; height: 20px; border: 1px solid #d7d7d7; } form textarea { width: 300px; height: 100px; border: 1px solid #d7d7d7; } #button { -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.5); text-shadow: 0 -1px 1px rgba(0,0,0,0.25); 11.2 Blog.css vom Praxisbeispiel 45 Webdesign_mittels_HTML5_und_CSS(3) border-bottom: 1px solid rgba(0,0,0,0.25); background-color: #999999; margin-left: 162px; } aside section { margin: 22pX 0 0 22px; padding: 11px 22px; background: -moz-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,0.5)); -moz-border-radius: 11px; } aside section ul { margin: 0 0 0 22px; list-style: none; } aside section ul li a { display: block; text-decoration: none; color: #000; } aside section ul li a:hover { text-decoration: underline; } footer { position: absolute; left: 0; bottom: 0; width: 100%; background: #222; } footer div { display: table; margin: 0 auto; padding-top: 11px; width: 940px; color: #777; } footer div section { display: table-cell; width: 300px; } 11.2 Blog.css vom Praxisbeispiel 46