This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Hello world!
23Hello world!
Hello world!
Anführungszeichen bei Attributen können dann entfallen, wenn deren Attributwert kein Leerzeichen oder keines der Zeichen " ' > / = enthält. Tags dürfen groß- oder kleingeschrieben, ja manchmal wie im obigen Beispiel sogar weggelassen werden; und wenn man sich nicht sicher ist, leistet der Validator wieder gute Dienste. In puncto Implementierung des neuen HTML5-Parsers hat Mozilla die Führung übernommen und liefert mit Firefox 4 Henri Sivonens Parser, der auch die Basis für http://validator.nu ist, standardmäßig aus.
1.4
Kann ich HTML5 jetzt schon verwenden?
Ja. Und nein. HTML5 ist noch lange nicht fertig, aber im Gegensatz zur bisherigen Praxis, erfolgt die Entwicklung des HTML5-Standards Hand in Hand mit dessen Implementierung. Wer hätte gedacht, dass IE9 SVG und Canvas bietet oder dass Google innerhalb kürzester Zeit auch HTML5-Video auf YouTube anbieten würde? Viele der neuen Features sind schon jetzt nutzbar, vorausgesetzt, man kann sich seinen Browser auswählen. Im firmeneigenen Intranet kann HTML5 ebenso Einzug halten wie auf der privaten Homepage, die nur vom ausgewählten Freundeskreis angesteuert wird. Mit Firefox, Chrome, Opera und Safari unterstützen jetzt schon vier großartige Browser ein breites Spektrum von HTML5, und IE9 wird, wie es scheint, Microsofts langes Zögern bei der Unterstützung von Webstandards noch 2011 beenden. Browserhersteller nehmen heute mit ihren Entwicklern rege an der Gestaltung des Standards teil. Sie implementieren neue Drafts der Spezifikation zuerst testweise als proof-of-concept und posten dann ihr Feedback mit Verbesserungsvorschlägen bei der WHATWG oder dem W3C. Damit werden sie wichtiger Bestandteil des Entwicklungszyklus – was nicht implementierbar ist, wird aus der Spezifikation entfernt, anderes wird adaptiert und endgültig implementiert. Early adopters von HTML5 tun gut daran, sich mit den Release Notes der einzelnen Browser anzufreunden, denn hier lassen sich die allgemeinen Trends nach der Frage Was wird kommen? am ehesten ablesen.
32
Kann ich HTML5 jetzt schon verwenden?
» https://developer.mozilla.org/en/HTML/HTML5 » http://www.opera.com/docs/changelogs/ » http://webkit.org/blog/ » http://googlechromereleases.blogspot.com/ » http://ie.microsoft.com/testdrive/info/ReleaseNotes/ Die Timeline der Entwicklung HTML5-relevanter Spezifikationen in Kombination mit den Meilensteinen der Browser-Releases deutet mit immer kürzer werdenden Release-Intervallen auf die Verflechtungen von Standardisierung und deren Implementierung hin. Eine tagesaktuelle Version finden Sie online unter: http://html5.komplett.cc/code/chap_intro/timeline.html
Abbildung 1.6: Timeline der Spezifikationen und Browser-Releases
Es bleibt spannend, wie sich die beiden Bereiche weiterentwickeln werden, und spannend sollte es auch jetzt werden, denn nach dieser kurzen Einstimmung ins Thema geht es nun zur konkreten Anwendung von HTML5 – beginnen wir mit einem ersten großen Block an Neuerungen: mehr Struktur und Semantik für Dokumente!
33
2 Struktur & Semantik für Dokumente Sowohl die bereits zitierte MAMA-Studie von Opera als auch Googles Web Authoring Statistics-Untersuchung aus dem Jahre 2005 (http://code.google.com/ webstats/) kommen zu dem Schluss, dass in der damaligen Praxis viele Webseiten das class- oder id-Attribut zur Festlegung von Seitenstrukturen verwendeten. Häufig vorkommende Attribut-Werte waren dabei footer, content, menu, title, header, top, main oder nav, und was lag da näher, als in der neuen HTML5-Spezifikation auf die gängige Praxis Rücksicht zu nehmen und neue Elemente zur Strukturierung von Seiten zu schaffen? Das Resultat ist ein kompaktes Set strukturgebender, neuer Elemente wie header, hgroup, article, section, aside, footer oder nav, die einen übersichtlichen Seitenaufbau ohne Umwege über class oder id ermöglichen. Anhand des
Kapitel 2
Struktur & Semantik für Dokumente
fiktiven, nicht ganz ernst zu nehmenden HTML5-Blogs wagen wir einen Blick in das Jahr 2022 und konzentrieren uns dabei nicht so sehr auf den Inhalt des Postings, sondern vielmehr auf die Struktur des Dokuments.
Abbildung 2.1: Das fiktive HTML5-Blog
Bevor wir uns im Detail mit dem Quellcode des HTML5-Blogs beschäftigen, noch ein paar wichtige Links wie zum Beispiel zur HTML: The Markup LanguageSpezifikation – ab jetzt kurz Markup-Spezifikation genannt: » http://www.w3.org/TR/html-markup/ Hier listet Mike Smith, Editor und Team-Kontakt der W3C HTML WG, für jedes Element dessen Definition, eventuell bestehende Einschränkungen, gültige Attribute oder DOM-Interfaces sowie Formatierungsvorschriften in CSS-Notation auf, sofern diese anzuwenden sind – eine wertvolle Hilfestellung, auf die wir noch öfter zurückgreifen werden. In der HTML5-Spezifikation finden sich die neuen Strukturelemente auch im folgenden Kapitel: » http://www.whatwg.org/specs/web-apps/current-work/multipage/sections. html
36
Kopfzeile mit »header« und »hgroup«
Die .html- und .css-Files zum HTML5-Blog sind natürlich auch online verfügbar: » http://html5.komplett.cc/code/chap_structure/blog.html » http://html5.komplett.cc/code/chap_structure/blog.css Auf den ersten Blick erkennen wir in Abbildung 2.1 vier voneinander abgesetzte Bereiche – eine Kopfzeile, den Artikel, die Fußzeile sowie eine Randspalte. In diesen vier Abschnitten kommen alle neuen, strukturgebenden Elemente zum Einsatz, und sie bilden, in Verbindung mit knappen CSS-Anweisungen im Stylesheet blog.css, die Struktur sowie das Layout der Seite.
2.1
Kopfzeile mit »header« und »hgroup«
In der Kopfzeile begegnen uns die beiden ersten neuen Elemente: header und hgroup.
Abbildung 2.2: Das Grundgerüst der HTML5-Blog-Kopfzeile
Unter header versteht die Markup-Spezifikation einen Container, der Überschriften sowie zusätzliche, einleitende Inhalte oder Navigationshilfen umfassen kann. Header sind dabei nicht nur auf Kopfzeilen beschränkt, sondern können auch an anderen Stellen im Dokument Verwendung finden. Nicht erlaubt sind ineinander verschachtelte header sowie header innerhalb eines addressoder footer-Elements.
37
Kapitel 2
Struktur & Semantik für Dokumente
In unserem Fall definiert header in Kombination mit dem Logo als img-Element sowie zwei Headings (h1 und h2), die von einem hgroup-Element umschlossen werden und den Blogtitel sowie einen Untertitel enthalten, die Kopfzeile des HTML5-Blogs. War es in der bisherigen Praxis durchaus gebräuchlich, h1- und h2-Elemente direkt untereinander zu schreiben und damit Titel und Untertitel anzudeuten, so ist dies in HTML5 nicht mehr erlaubt. Zur Gruppierung solcher Headings muss jetzt hgroup verwendet werden. Der Gesamtrang des hgroup-Elements ergibt sich dabei aus dem höchsten vorkommenden Heading. Zwar dürfen auch andere Elemente innerhalb von hgroup vorkommen, der Regelfall wird aber wohl das Kombinieren von h1- bis h6-Tags bleiben. Ein kleines, aber bedeutsames Detail können wir der Markup-Spezifikation entnehmen: header sind, wie alle anderen strukturgebenden Elemente per Vorgabe als display: block in CSS zu formatieren. Damit können auch Browser, die mit den neuen Tags nichts anfangen können, dazu überredet werden, das jeweilige Element richtig darzustellen. Ein paar Zeilen Code reichen aus, um dem Internet Explorer 8 zum Beispiel unser neues header-Element beizubringen:
Selbstverständlich gibt es für diesen Workaround auch eine ausgefeilte JavaScript-Bibliothek, die nicht nur header, sondern auch viele andere neue HTML5-Elemente abdeckt. Remy Sharp stellt sie unter http://code.google.com/ p/html5shim/ für den Internet Explorer zur Verfügung. HINWEIS
Der Ausdruck shim bezeichnet in der Computersprache einen KompatibilitätsWorkaround für eine Applikation. Vielfach wird fälschlicherweise auch shiv verwendet – ein Begriff, den John Resig, der Erfinder von jQuery, in einem gleichnamigen Posting geprägt hatte (http://code.google.com/p/html5shim/). Ob er in Wirklichkeit shim damit meinte, bleibt unklar…
38
Inhalt mit »article«
In puncto CSS weist die Kopfzeile keine großen Besonderheiten auf. Das Logo ist mit float:left eingebunden, die vertikalen Abstände zwischen den beiden Headings h1 und h2 sind leicht verkürzt, und der Untertitel ist kursiv formatiert.
2.2
Inhalt mit »article«
Das article-Element repräsentiert einen eigenständigen Bereich innerhalb einer Webseite wie zum Beispiel Nachrichten, Blogeinträge oder Ähnliches. In unserem Fall besteht der Inhalt des Blogeintrags aus so einem articleElement in Kombination mit einem img-Element zur Auflockerung, einem h2Heading für die Überschrift, einem time- und einem address-Element für das Erstellungsdatum und die Urheberschaft sowie drei Absätzen, in denen sich auch q- und cite-Elemente für Zitate der Protagonisten verstecken. In Ermangelung eines eigenen content-Elements, das – obwohl es bei den Webseiten-Analysen von Opera und Google einen Top-Rang belegte – interessanterweise nicht den Weg in HTML5 gefunden hat, ist unser Blogeintrag in ein umgebendes div eingebettet. Der Aufnahme weiterer Artikel steht damit nichts im Wege.