Die Template-Struktur


Preamble: Wie man ein HTML-Dokument schreibt

Das ist eigentlich recht einfach: HTML wird als eine einfache Textdatei geschrieben. Eine HTML-Datei nutzt immer die Dateierweiterung .html, um die Art der Datei anzuzeigen.

Texteditor

Um HTML-Dateien zu editieren, wirst du einen reinen Texteditor benötigen.

Du kannst ausserdem komplett grafische WYSIWYG (What You See Is What You Get) HTML-Editoren finden, die dich eine Website grafisch editieren lassen. Dies ist vergleichbar mit einer Oberfläche wie von Word.

Solche Software kann nuetzlich sein, aber viele, die mit HTML & CSS arbeiten, bevorzugen einen reinen Texteditor. Genau so einen nutzen wir heute.

Wenn du bereits einen Texteditor installiert hast (vielleicht von einem vorherigen OTS Workshop) dann kannst du diesen nutzen. Andernfalls sind hier einige Vorschläge:

Windows

Notepad++ ist kostenlos und nützlich. Du kannst aber auch Sublime Text ausprobieren.

OS X

TextWrangler ist kostenlos und nützlich. Weitere gute Optionen (mit einigen fortgeschrittenen Funktionen, in die du hineinwachsen kannst) sind Sublime Text or Text Mate.

Linux

GEdit ist auf den meisten Linux Distributionen vorinstalliert. Andernfalls kannst du es auch mit Sublime Text oder einem der zahlreichen anderen Linux Texteditoren versuchen.


Texteditor installiert und geöffnet? Grossartig! Zeit für das erste HTML-Dokument!

Doctype

Das erste Element einer HTML-Seite ist der doctype, welcher wie du dir vielleicht denken kannst, dem Browser den Typ des Dokuments anzeigt. Dies ist wichtig, damit der Browser weiss, wie er das HTML-Dokument anzeigen und lesen soll.

Glücklicherweise ist der HTML5-Doctype extrem simpel - er ist einfach html.

Öffne eine neue Datei mit deinem Texteditor und schreibe dies in die erste Zeile:

<!DOCTYPE html>

Dann speichere die Textdatei mit der Datei-Erweiterung .html. Du editierst nun ganz offiziell ein HTML Dokument.

Strukturiere dein Projekt

Du kannst überall wo du möchtest HTML-Dateien anlegen. Jedoch empfehlen wir dir, dass du Verzeichnisse nutzt, um deine Dateien zu organisieren. So sind sie später einfacher wiederzufinden.

  • Erstelle an beliebiger Stelle ein Verzeichnis für diesen Workshop. Zum Beispiel auf dem Desktop oder in deinem Benutzer-Verzeichnis. Nenne das Verzeichnis OTSHTMLWorkshop oder ähnlich.

  • Erstelle ein Verzeichnis innerhalb des Workshop-Verzeichnisses. Nenne es exercise1 oder ähnlich.

  • Vom Texteditor aus, speichere dein erstes HTML-Dokument in dem exercise1-Verzeichnis. Nenne die HTML Datei page.html oder ähnlich.

Mit der Zeit werden wir noch weitere Dateien zu diesem Verzeichnis hinzufügen, vielleicht sogar ganz neue Verzeichnisse, parallel zu exercise1 anlegen.

Elemente und Tags

Das sind die grundlegenden Bausteine von HTML.

Elemente sind das, was ein HTML-Dokument ausmacht. Weil man keine, eines oder mehr Elemente ineinander verschachteln kann, entsteht eine hierachische Struktur im HTML-Dokument. Ein Element kann drei Dinge beinhalten: ein Tag, ein Attribut und Inhalt.

Ein Tag ist etwas, das den Nutzen eines Elements angibt. Das <p> Tag zum Beispiel gibt an, dass es sich bei dem Element um einen Paragraphen-Text handelt. Das <li> Tag gibt an, dass hier ein Listen-Eintrag stehen soll. Du wirst bereits festgestellt haben, dass Tags immer von spitzen Klammern eingefasst sind. Öffnende und schliessende tags markiegen den Anfang und das Ende eines Elements. Ausserdem umschliessen sie dessen Inhalt:

<p>This is a paragraph.</p>

Wie du siehst, beinhaltet das schließende Tag ein / vor dem Namen. Andernfalls wäre es ein weiteres öffnendes Tag!

Prüfe bitte immer doppelt, dass du alle deine öffnenden Elemente wieder geschlossen hast. Andernfalls wird der Browser beim Anzeigen deines HTML-Dokuments seltsame Dinge machen.

Es gibt eine Hand voll spezieller Elemente, die eine Auznahme zur Regel darstellen. Wenn Elemente nichts anderes als den Tag-Namen beinhalten können, brauchen sie auch nicht geschlossen werden. Zum Beispiel die folgenden Elemente sind sogenannte 'selbst schliessende' Elemente:

<hr>
<input>
<img>

Es gibt nicht viele dieser Elemente und du wirst schnell herausfinden, welche Elemente selbstschliessend sind, indem du ein wenig mehr Code schreibst. :)

Zu guter letzt, Elemente verschachteln. Das ist gar nicht so schwer, aber fundamental für die Funktionsweise von HTML. Verschachteln sieht wie folgt aus:

<p>This is a sentence, with a <span>span</span> element inside it.</p>

oder so:

<div id="first-heading">
    <h1>The h1 tags indicates the primary header of the document</h1>
</div>

Du wirst festgestellt haben, dass HTML sich um Leerzeichen oder Zeilenumbrüche zwischen Tags nicht kümmert. Wenn das obige Beispiel in eine einzige Zeile zusammen gerückt würde, käme im Browser das gleiche Ergebnis heraus.

Im Beispiel findest du zum ersten Mal ein Attribut. Ein Attribut beginnt mit einem Namen in Kleinbuchstaben und wird dann nahezu immer mit = und einem 'Wert' weiter geführt. Der Wert ist von doppelten Anführungszeichen umschlossen. In etwa wie "das hier". Ein Element kann viele Attribute haben. In so einem Fall werden die Attribute mit einem Leerzeichen von einander getrennt. Dazu gleich mehr. Attribute geben bestimmte Informationen über Elemente.

In diesem Fall, hat das <div>-Tag, welches genutzt wird um Elemente zu gruppieren, ein id-Attribut mit dem Wert first-heading. Das sagt uns, dass diese Sektion des HTML-Dokuments bestimmt wurde, um die erste Überschrift der Website zu beinhalten. Du wirst später mehr über spezielle Attribute lernen.

Html und Head-Elemente

Zurück zu unserer Datei (hoffentlich programmiert ihr bereits nebenher mit!). Nach dem Doctype beginnen wir das HTML-Dokument, mit einem html Element:

<html>
</html>

Es umschliesst jedes weitere Element in unserem HTML-Dokument. Kein Element darf ausserhalb des Elements html stehen. Als nächstes trennen wir jedes Dokument in zwei wichtige Teile: einen head und einen body. Stellvertretend für Dokumenten-Kopf und Dokumenten-Körper.

Der Kopf beinhaltet den Titel der Seite und Informationen über das Dokument. Man nennt diese Informationen auf meta Informationen. Die meisten Meta-Informationen sind für den Benutzer nicht sichtbar und haben dennoch eine Menge Sinn. Zum Beispiel können Meta-Informationen den Suchmaschinen mitteilen, wer der Autor einer Website und was in etwa der Inhalt der Seite ist. Hier ist ein Beispiel:

<head>
    <meta charset="UTF-8"> 
    <meta name="description" content="Free Web tutorials">
    <title>My first Portfolio</title>
</head>

Wie du siehst ist das Meta-Tag ein selbstschliessendes Element! Als erstes steht dort ein charset Meta-Tag. Das ist das wichtigste Meta-Tag. Ohne dieses könnte es sein, dass deine Website nicht korrekt angezeigt wird. Es wird als empfohlene Vorgehensweise angesehen, dass es als erstes Folge-Element des head-Elements eingesetzt wird. Es spezifiziert den Zeichensatz deines HTML-Dokuments. Das bedeutet, dass der Browser in der Lage sein wird, Sonderzeichen wie ä, ö, ü, €, è und so weiter, auch auf Systemen anderer Sprache korrekt anzuzeigen. UTF-8 ist üblicherweise das gängigste Zeichensatz-Encoding, das im Web eingesetzt wird.

Hier haben wir ausserdem ein weiteres Meta-Tag genutzt: die description (Beschreibung). Wir definieren dieses Meta-Tag mit dem Attribut name und setzen description als Wert zwischen die doppelten Anführungszeichen.

Innerhalb unseres head-Elements, haben wir als letztes Element den Titel unserer Website. Schreibe den oberen HTML Code aus dem Beispiel in dein eigenes HTML-Dokument im Editor. Dann ändere den Inhalt zwischen dem <title>-Element. Jetzt kannst du dein Dokument im Browser öffnen und schau dir mal an, was im Titel des Browserfensters steht. Das ist ebenfalls der Titel, der genutzt wird, wenn du eine Website als Lesezeichen hinzufügst.

Tags im head-Bereich können ebenfalls externe Resourcen wie CSS- oder JavaScript-Dateien beinhalten. Wir werden uns damit später noch beschäftigen.

Der HTML-Body

Endlich kommen wir an die Stelle, wo unser Inhalt hinkommt. Der body beinhaltet den eigentlichen Inhalt einer Seite. Alles innerhalb der öffnenden und schließenden body-Tags ist für den Besucher der Website sichtbar.

Direkt nach dem schließendem head-Tag, aber noch innerhalb des html-Elements fügen wir die body-Tags hinzu:

<body>
</body>

Alles innerhalb des body-Tags wird dem Besucher angezeigt werden. Schreibe etwas einfachen Text zwischen die body-Tags und schau dir das Ergebnis im Browser an.

TIPP: Benutze die "Seite aktualisieren"-Funktion (STRG+R oder F5), um das gleiche HTML-Dokument im Browser neu zu laden.

Inhalts-Typen

Es gibt verschiedene HTML-Elemente, die wir einsetzen können, um unterschiedliche Inhaltes-Typen anzugeben. Beispielsweise das p Tag, das wir bereits kennen gelernt haben. Versuchen wir zunächst eine Überschrift gefolgt von einem Paragraphen:

<body>
    <h1>I'm the title.</h1>
    <p>And I'm a paragraph!</p>
</body>

Überschrifts-Elemente sind ziemlich einfach zu verstehen. Sie beginnen mit h1 stellvertretend für die größte Schrift und Wichtigkeit, bis hin zu h6 mit der kleinsten Schrift.

Einrückung

Wunderst du dich, warum wir die h1 und p-Tags innerhalb des body-Tags eingerückt haben?

Das wird in keinster Weise die Interpretation und Darstellung durch den Browser beeinflussen, aber es gilt als guter Stil unter Programmierern, dass man Code so formatiert. Damit soll gewährleistet bleiben, dass ein Dokument sauber strukturiert und verständlich bleibt. Selbst wenn die Anzahl an Code-Zeilen wächst oder man lange nichts mehr an dem Dokument gemacht hat. Ausserdem unterstreicht diese Art der Formatierung sehr gut die hierachische Natur von HTML.

Kommentare

Es ist ausserdem möglich "Kommentare" in dein HTML zu setzen. Kommentare in HTML sind dazu da, dich oder andere Leute auf bestimmte Dinge zu hinzuweisen, ohne die Darstellung deiner Website im Browser zu verändern.

Wie andere HTML-Elemente werden auch Kommentare als ein Tag geschrieben. Mit dem einzigen Unterschied, dass ein Kommentar ein wenig anders aussieht:

<!-- I am a comment -->

Das "Kommentar Start"-Tag ist <!-- und das "Kommentar Ende"-Tag ist -->.

Kommentare können andere HTML-Elemente umschließen, um sie "aus zu kommentieren". Das ist eine nützliche Vorgehensweise, wenn du mit einer Website experimentieren möchtest um zu sehen, wie sich Dinge im Browser verändern werden.

Versuche zum Beispiel mal die Überschrift h1, im body Teil des HTML Dokuments, aus zu kommentieren.

<body>
    <!-- <h1>I'm the title.</h1> -->
    <p>And I'm a paragraph!</p>
</body>

Wenn du die Seite im Browser neu lädst, wirst du feststellen, dass die Überschrift verschwunden ist.

Entferne die Kommentar-Tags (damit die Überschrift wieder erscheint) bevor du zur nächsten Sektion übergehst.

Bilder

Überschriften und Paragraphen geben dir die grundlegenden Elemente zur Textformatierung. Doch was ist mit Bildern?

Bilder werden in separaten Bild-Dateien ausserhalb des HTML Dokuments gespeichert. Suche dir ein Lieblings-Bild aus dem Web und speichere es in das gleiche Verzeichnis, wo auch deine HTML-Datei bereits liegt. Klicke dazu mit der rechten Maustaste auf das entsprechende Bild und wähle "Bild speichern" (oder ähnliches) aus dem Menü.

Falls dir spontan kein Bild einfällt, dann ist hier eine Website mit Fotos von Katzen, die du nutzen kannst. () (Süße Katzen im Internet? Bei Gott!)

Nachdem du dir ein Bild ausgesucht hast, kannst du es in dein HTML-Dokument einbauen, indem du das img Tag nutzt.

<img src="kittens.jpg">

Füge das img-Tag irgendwo innerhalb des body-Tags hinzu. Am besten dort, wo du es gerne anzeigen lassen würdest. Ersetze "kittens.jpg" mit dem Dateinamen des Bildes, dass du in das gleiche Verzeichnis wie dein HTML-Dokument gespeichert hast.

Beachte bitte, dass img-Tag ist eines der Tags, die kein separates, schliessendes Tag benötigen. Du kannst zwar ein schliessendes ""-Tag direkt nach dem öffnendem ""-Tag setzen, jedoch wird das nichts daran ändern, wie der Browser die Website anzeigen wird.

TIPP: Die Bildquelle ("src") von kittens.jpg ist ein Pfad, relativ zur HTML-Datei. In diesem Fall befindet sich kittens.jpg im selben Verzeichnis. Du könntest ebenso eine Bildquelle wie images/kittens.jpg nutzen, solange du das Bild in ein Unterverzeichnis namens "images" legst. Du kannst sogar komplette URLs wie http://myawesomesite.com/pictures/kittens.jpg nutzen, aber es ist (wenn möglich) besser sowas zu gunsten eines relativen Pfads zu vermeiden.

Alternativer Text

Es ist eine gute Angewohnheit, sogenannten "alt text" zur textuellen Beschreibung des Bild-Inhalts zu nutzen.

<img src="kittens.jpg" alt="Some kittens">

Das ist wichtig für jeden Besucher, der keine Bilder anzeigen oder sehen kann. Zum Beispiel sehbehinderte Menschen, die einen Screenreader nutzen (auch Braile-Zeile genannt). Jedes Bild, das nicht aus dekorativen Gründen im HTML eingebettet wird, sollte eine Bild-Beschreibung über das "alt=" Attribut bekommen.

Nochmal alles zusammen

Bis hierhin sollte unser gesamtes HTML-Dokument in etwa wie folgt aussehen:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8"> 
        <meta name="description" content="Free Web tutorials">
        <title>My first Portfolio</title>
    </head>
    <body>
        <h1>I'm the title.</h1>
        <p>And I'm a paragraph!</p>
        <p>
             <img src="kittens.jpg" alt="All the kittens are shown here">
        </p>
        <h3>This is a sub-heading...</h3>
        <p>Well now we're just blathering on.</p>
    </body>
</html>

Bitte beachte, dass das Katzen-Bild hier in einem eigenen Paragraphen steht, so dass es im Browser in einer eigenen neuen Zeile dargestellt wird.

Hoffentlich schaut das Dokument in deiner Datei vergleichbar aber nicht identisch aus. Vermutlich unterscheiden sich einige der Texte. Funktioniert alles in deinem Browser?

Warum sollte man kein grafischen Editoren nutzen?

Grafische existieren und einige Leute benutzen diese auch. Man spricht hierbei oft von einem "What You See Is What You Get" editor oder auch einfach WYSIWYG. Auf lange Sicht hin betrachtet, kann ein grafischer HTML Editor sehr einschränken. Denn oftmals gibt es bessere und schnellere Wege Texte zu ändern. Außerdem Schränken WYSIWYG Editoren deine Möglichkeiten ein, wenn es darum geht zu verstehen, was wirklich auf deiner HTML Seite passiert, da du nur automatisch generierten Code nutzt.

Warum sollte man kein Word nutzen?

MS Word nutzt eine Menge Format-Informationen, die man im Web nicht versteht. Die Art und Weise, wie HTML Paragraphen (oder grosse Schriften, Bilder und mehr) positioniertunterscheidet sich total von wie HTML und CSS funktionieren. Für Code jeder Art, HTML und CSS eingeschlossen, ist es sehr wichtig, einen Text-Editor zu nutzen, damit dein Code sauber bleibt.

Zusätzlich haben Text-Editoren oftmals den Vorteil, dass sie Hinweise zu deinem Code anzeigen. Man nennt sowas Syntax Highlighting.

It is like showing nouns in red and showing the verbs in blue in a sentence.

Das ist als so ähnlich als hebe man die Nomen eines Satzes rot und die Verben blau hervor.

Wie geht es weiter?

Du magst deine HTML-Seite in diesem Stadium etwas farblos und fade finden. Wie kann man sie ein bisschen mehr aufpeppen?

Lese in der folgenden Sektion weiter, your first styled Hello World!.