Literatur [4-1] Münz, Stefan: SelfHTML 8.1.2 http://aktuell.de.selfhtml.org/extras/download.shtml Etwas veraltet, aber immer noch sehr gut [4-2] Robbins, Jennifer: HTML&XHTML kurz&gut. 4. Auflage, O'Reilly, 2010 [4-3] Hess, Uwe; Günther, Karl: html 4. bhv-Taschenbuch, 2. Auflage, 2002 [4-4] Tolksdorf, Robert: Die Sprachen des Web: html & XHTML. dpunkt, 4. Auflage, 2000 [4-5] Kloss, Birgit: CSS und DHTML. Markt + Technik, 2002 [4-6] Lubkowitz, Mark: Webseiten programmieren und gestalten. Galileo Computing, 2003, Teil 2 [4-7] Münz, Stefan: <professionelle Websites>. Addison-Wesley, 2005 [4-8] http://www.w3.org/TR/xhtml1/ [4-9] https://de.wikipedia.org/wiki/Extensible_Hypertext_Markup_Language Webtechnologien – WS 2016/17 - Teil 4/HTML I 2 Übersicht • Geschichte von HTML • Ziele von HTML und XHTML • Grundlagen – Kopfteil – Body – Tabellen Webtechnologien – WS 2016/17 - Teil 4/HTML I 3 Geschichte • HTML 1, 1990 • HTML 2, 1995, RFC 1866 Vieles nie implementiert, anderes zusätzlich realisiert • HTML 3.2, 1997 Tabellen, Auszeichnungen • HTML 4.01, 1998 Style Sheets (CSS), Einbindung von Scripts, Unicode • XHTML = XML + HTML, ab 1995 • HTML 5, ab 2010 Nicht vollständig standardisiert. Ein vollständiger Standard wird 2017 erwartet. Webtechnologien – WS 2016/17 - Teil 4/HTML I 4 Kompatibilität I • Es bestimmen die Browser, was HTML ist und welche Bedeutung ein bestimmtes Konstrukt hat. • Da jeder implementieren kann, was er will, und das auch leider tut, gibt es viele Inkompatibilitäten. • Hier wird XHTML 1.0, HTML 4.01 und HTML 5 betrachtet. Wer Web-Sites für Desktop-Rechner baut, muss leider seine Seiten mit folgenden Browsern testen: Windows Macintosh Unix/Linux Ab Explorer 9 Wie Windows Ab Firefox 3.* Ab Opera 7.* Ab Firefox 3.* Ab Opera 7.* Ab Chrome 10.* Lynx 2 Ab Safari 5.* Ab Chrome 10.* Lynx 2 Siehe auch: http://caniuse.com Webtechnologien – WS 2016/17 - Teil 4/HTML I 5 Kompatibilität II – Beispiel aus http://caniuse.com http://caniuse.com/#feat=inline-block Webtechnologien – WS 2016/17 - Teil 4/HTML I 6 Kompatibilität III • Wenn sich eine Site von "allein" im Layout an die Größe des Ausgabegeräts anpassen kann, dann wird vom Responsive Design gesprochen. • Das Testen wird dann noch schlimmer, da mit den Browsern auf den mobilen Endgeräten getestet werden muss; denn dann kommen noch Android, iOS und Windows Phone hinzu. Test auf html 4/xhtml 1.0/HTML 5-Kompatibilität: http://validator.w3.org http://www.validome.org/ http://www.w3schools.com/website/web_validate.asp http://schneegans.de/sv/ http://jigsaw.w3.org/css-validator/ http://aktuell.de.selfhtml.org/artikel/server/validator/ Webtechnologien – WS 2016/17 - Teil 4/HTML I 7 Validatoren Webtechnologien – WS 2016/17 - Teil 4/HTML I 8 Grammatik in den Foliensätzen • Syntaktische Abschnitte werden hier in einer Pseudo-BNF dargestellt: – Worte in Normalschrift sind terminale Symbole (terminal bedeutet direkt zur Sprache gehörig) – Worte in Kursiv sind nonterminale Symbole (nonterminal bedeutet Name einer Regel) – Worte geklammert in eckigen Klammern sind optional – Drei Punkte ... bedeuten beliebiger Text, der keine eigene Bedeutung in HTML bzw. im betroffenen Kontext hat. • Um alles etwas einfacher zu machen, werden nicht immer alle optionalen Teile eines Elementes aufgeführt. • Die folgenden Abschnitte beschreiben HTML daher nicht vollständig. Webtechnologien – WS 2016/17 - Teil 4/HTML I 9 Erläuterungen zur Grammatik • Grammatik = Regelsystem, das den syntaktischen Aufbau einer Sprache (im Sinne der Informatik) bestimmt • Terminale Symbole = Zeichenketten, die zur Sprache selbst gehören und daher so wie ausgedrückt benutzt werden müssen • Nonterminale Symbole = Namen von Regeln, also Zeichenketten, die nur zur Grammatik, aber nicht zur Sprache gehören Diese müssen durch andere Texte, die Terminale Symbole sind, ersetzt werden • BNF = Backus-Naur-Form = Bestimmte Form einer Grammatikdefinition (benannt zu Ehren der beiden "Erfinder" Backus und Naur) Siehe: http://de.wikipedia.org/wiki/Backus-Naur-Form Webtechnologien – WS 2016/17 - Teil 4/HTML I 10 Ziele von HTML I • HTML ist (eigentlich) eine Auszeichnungssprache. Diese definiert ein abstraktes Layout ohne Festlegung der Umsetzung in eine Präsentation; es wird nur die Funktion oder die Rolle eines Textstücks beschrieben. • Layout = (hier:) Regeln zur Kombination und für Werte von graphischen Attributen von Elementen, z.B.: – – – – Zeichengröße, Schriften Farben, Farbverläufe Größe Umrahmungen Diese Regeln befassen sich mit der Präsentation, also der extern wahrnehmbaren Darstellung. • Software zur Präsentation macht aus Daten bzw. Anweisungen und den Layoutregeln eine konkrete Seite. Webtechnologien – WS 2016/17 - Teil 4/HTML I 11 Ziele von HTML III • Ein wichtiges Ziel des W3C ist die Mehrsprachlichkeit. Dies betrifft: – Wahl landes-/sprachspezifischer Kodierungen, z. B. Russisch – Wahl der Anordnung der Zeichen auf einer Seite (Leserichtung) – Wahl der Anordnung der Seiten (von Vorne nach Hinten oder umgekehrt) • Ein weiteres Ziel ist der erleichterte Zugang von Menschen mit Behinderungen. Ein gutes Beispiel: http://www.zignoo.com/ Siehe auch: http://www.biene-award.de/ausschreibung/ Webtechnologien – WS 2016/17 - Teil 4/HTML I 13 Grundlagen der Syntax I • Tag = Marke = Etikett = Zeichenkette innerhalb von <> • Container-Elemente haben neben dem Inhalt ein Start- und ein Ende-Tag: Start: <xyz> Ende: </xyz> mit xyz als Tag-Name – Die Wirkung des Tags bezieht sich auf den umschlossenen Bereich. – Diese Tags können geschachtelt werden, wobei die Wirkung von außen nach innen vererbt wird. – Innere Bereiche überdecken Äußere Bereiche (wie bei der Vererbung). • Elemente ohne Inhalt haben am Ende den Slash: <xyz /> • Beispiele: <em> ... </em> <body> ... </body> Webtechnologien – WS 2016/17 - Teil 4/HTML I 14 Grundlagen der Syntax II • Die Tag-Namen werden klein geschrieben. • Unbekannte Tags werden normalerweise von den Browsern ignoriert, sofern sie der generellen Syntax von XHTML entsprechen. • Attribute = Zusatzbestimmungen innerhalb eines Tags – Aufbau: key=value, wobei value ein String umschlossen von " ist. – Listen von Attributen werden in mit Leerzeichen als Trennzeichen zusammengefügt. – Hat ein Attribut keinen Wert, so wird es key="key" geschrieben. – Die Namen von Attributen werden immer klein geschrieben. Beispiele: <img src="logo.gif" /> <link rel="Glossary" href="URL"/> <hr noshade="noshade" /> 15 Webtechnologien – WS 2016/17 - Teil 4/HTML I Werte und Einheiten Typ Beispiel Werte in Pixel width="36" Werte relativ zum Umfeld width="30%" Fließkommazahl mit Einheit width="1.7in" Einheiten (Auszug) pt Punkt in Inch, Zoll cm em Höhe des Fonts (Zeichen M) em ist eine relative Maßeinheit, da deren Größe sich auf die aktuelle Font-Größe bezieht. 72 pt = 1 in = 2,54 cm Webtechnologien – WS 2016/17 - Teil 4/HTML I 16 Syntaktischer Aufbau einer Seite <!DOCTYPE ... ... > <html xmlns="http://www.w3.org/1999/xhtml"> <head> ... Kopfteil </head> <body> ... Seiteninhalt </body> Leerzeichen, Tabulatoren, Umbrüche sind normalerweise irrelevant. Es gibt aber ein Tag, das dies beachtet. Framesets bilden von diesem Aufbau her eine Ausnahme. Diese werden aber in dieser Veranstaltung nicht betrachtet. </html> 17 Webtechnologien – WS 2016/17 - Teil 4/HTML I Typ des Dokuments <!DOCTYPE html PUBLIC TYP Grammatik > Version TYP in "" xhtml 1.0 "-//W3C//DTD XHTML 1.0 Transitional//EN" Empfehlung xhtml 1.0 genau "-//W3C//DTD XHTML 1.0 Strict//EN" Zum Üben Der Typ des Dokuments ist eine URN! • • • Für HTML5: <!DOCTYPE html> Am Ende gibt es kein abschließendes /. DOCTYPE und PUBLIC müssen groß geschrieben werden. Webtechnologien – WS 2016/17 - Teil 4/HTML I 18 Kopfteil (Auszug) I Art Syntax Beschreibung Titel <title> ... </title> Max. 64 Zeichen (Richtwert), notwendige Angabe für Bookmarks, Suchmaschinen Bezüge <link rel=relation href=URL title=… /> Verweis vorwärts auf externes Objekt MetaInformation <meta name=Key content=Value /> Beschreibungen der Seite Stil <style> Einbettung von CSS Script <script> Einbettung von Skripten 19 Webtechnologien – WS 2016/17 - Teil 4/HTML I Kopfteil (Auszug) I - Werte für relation relation Beschreibung stylesheet Verweis auf eine Style Sheet-Datei icon Verweis auf die favorite icon-Datei Beispiel: <link rel="stylesheet" href="URL" /> <link rel="icon" href="favicon.gif" type="image/x-icon" /> Webtechnologien – WS 2016/17 - Teil 4/HTML I 20 Kopfteil (Auszug) II - Kleine Icons/favicon 21 Webtechnologien – WS 2016/17 - Teil 4/HTML I Kopfteil (Auszug) III - Meta-Information Key Beschreibung author name des Autors copyright Inhaber des Urheberrechts keywords Stichworte zur Einordnung der Seite language Sprache expires Verfallsdatum der Seite revisit-after Zeitraum für erneuten Suchmaschinenbesuch robots Anweisungen an Suchmaschinen Webtechnologien – WS 2016/17 - Teil 4/HTML I 22 Beispiel <meta http-equiv="content-type" content="application/xhtml+xml;charset=iso-8859-1"/> <meta name="author" content="..."/> <meta name="copyright" content="..."/> <meta name="keywords" lang="de" content="..."/> <meta name="description" lang="de" content="..."/> <meta name="language" content="de, at, ch"/> <meta name="expires" content="never"/> <meta name="revisit-after" content="60 Days"/> <meta name="robots" content="INDEX, FOLLOW"/> • • Da diese Meta-Tags in der Vergangenheit für eine Erhöhung des Rankings von Suchmaschinen missbraucht wurden, werden diese kaum noch beachtet. Sie sollten aber trotzdem immer noch benutzt werden, denn die Algorithmen der Suchmaschinen können sich wieder ändern. Webtechnologien – WS 2016/17 - Teil 4/HTML I 23 Erläuterungen zu HTTP-EQUIV I <meta http-equiv="content-type" content="application/xhtml+xml;charset=iso-8859-1" /> Schlüsselwort http-equiv erzwingt Angaben durch den Server im Kopfteil der HTTP-Antwort im Format name:Value, wenn <meta http-equiv="name" content="Value" /> ist. http-equiv Beschreibung expires Datum des spätesten Löschens aus dem Cache des Browsers refresh Automatisches Neuladen bzw. Nachladen content-type MIME-Typ mit Zeichensatz (charset) cache-control No-cache: kein Speichern im Cache des Browsers Webtechnologien – WS 2016/17 - Teil 4/HTML I 24 Erläuterungen zu HTTP-EQUIV II (1)<meta http-equiv="refresh" content="20"/> (2)<meta http-equiv="refresh" content="1;url=URL"/> • • In der Version (1) wird das Dokument nach 20 Sekunden neu vom Server geladen. In der zweiten Form wird sofort umgeleitet. Dies ist nach einem Relaunch einer neuen Version für die veralteten Bookmarks wichtig. 25 Webtechnologien – WS 2016/17 - Teil 4/HTML I Erläuterungen zu Robots <meta name="robots" content="INDEX, FOLLOW"/> Hier werden Anweisungen an Suchmaschinen eingefügt. Werte Bedeutung INDEX, FOLLOW Indizieren der Seite sowie Weitergehen der URLs INDEX, NOFOLLOW Indizieren der Seite NOINDEX, FOLLOW Nur URLs heraus zum Indizieren benutzen NOINDEX, NOFOLLOW Nichts tun Siehe: http://de.wikipedia.org/wiki/Meta-Element Webtechnologien – WS 2016/17 - Teil 4/HTML I 26 body I <body [lang=“Sprache“]> ... </body> • Sprache nach ISO 639, z. B. "de", "mk" (Maori) oder "zu" (Zulu) Siehe dazu: http://de.wikipedia.org/wiki/ISO_639 27 Webtechnologien – WS 2016/17 - Teil 4/HTML I Zeichendarstellung I Für Zeichen außerhalb des Bereichs a-z, A-Z, 0-9 gibt es eine Ersatzdarstellung: – &Symbol; – &#Code; Groß-/Kleinschreibung ist relevant. Zeichen Ersatz Zeichen Ersatz < &lt; ' &#039; > &gt; Blank &nbsp; ä &auml; Ä &Auml; ö &ouml; Ö &Ouml; ü &uuml; Ü &Uuml; ß &szlig; Bullet &#149; " &quot; Tilde &#152; Siehe: http://sonderzeichentabelle.de/ Webtechnologien – WS 2016/17 - Teil 4/HTML I 28 Zeichendarstellung III Webtechnologien – WS 2016/17 - Teil 4/HTML I 30 Zeichendarstellung V Das ist ein Auszug aus dem Source-Code der Site (kein XHTML). Kopf Menue Webtechnologien – WS 2016/17 - Teil 4/HTML I 32 Überschriften html Bedeutung <h1> ... </h1> Oberste Gliederungsstufe <h2> ... </h2> 2. Gliederungsstufe <h3> ... </h3> 3. Gliederungsstufe <h4> ... </h4> 4. Gliederungsstufe Webtechnologien – WS 2016/17 - Teil 4/HTML I 33 Absätze <br/> <p> … … … </p> • <br /> fügt einen Zeilenumbruch ein, ohne einen Absatz zu erzeugen (hat den normalen Zeilenabstand). • <p> generiert einen Absatz mit größerem Zeilenabstand. Beispiel: Das ist der 1. Absatz. <p> und das der zweite </p><p> gefolgt vom Dritten. Das n&auml;chste Zeilenende ist einfach: </p><br/> Jetzt geht es direkt in der n&auml;chste Zeile weiter. Webtechnologien – WS 2016/17 - Teil 4/HTML I 34 Tags für Texte innerhalb von Absätzen I html Bedeutung <strike> ... </strike> Durchgestrichen <big> ... </big> Größere Schrift <small> ... </small> Kleinere Schrift <sub> ... </sub> Index-Schreibweise <sup> ... </sup> Exponenten-Schreibweise Beachten Sie die Vererbung bei Schachtelung. 35 Webtechnologien – WS 2016/17 - Teil 4/HTML I Tags für Texte innerhalb von Absätzen II html Bedeutung <em> ... </em> Hervorheben <strong> ... </strong> Betonen <cite> ... </cite> Zitat <kbd> ... </kbd> Tastatureingabe <q> ... </q> Kurzes Zitat <ins> ... </ins> Hinzugefügter Text <del> ... </del> Gelöschter Text <abbr> ... </abbr> Abkürzung (Kürzel) Das sind "echte" Auszeichnungen. Webtechnologien – WS 2016/17 - Teil 4/HTML I 36 Einbinden von Graphiken <img [alt="Text"] src="URL" /> • • Text ist ein alternativer Text, der ausgegeben wird, wenn die Graphik nicht geladen oder wenn die Seite vorgelesen wird. Breite und Höhe der Graphik sollten immer angegeben werden, da dann der Browser den Text herum unmittelbar setzen kann. Aber das sollte per CSS erfolgen. • Beispiel: <img src="images/logo.gif" alt="Logo"/> Webtechnologien – WS 2016/17 - Teil 4/HTML I 37 Links - Referenzen (1) <a id="Ankername"> ... </a> (2) <a href="URL" [title="Text"]> ... </a> • • • • (1) definiert eine Stelle, die (von außen) referenzierbar ist (Anker). Das ist also der „Landungsprunkt“ für eine Referenz. (2) definiert einen Verweis auf ein Objekt (URL) oder auf eine Stelle innerhalb eines HTML-Dokuments, die mit (1) definiert ist. Alle Ankernamen müssen innerhalb der Seite eindeutig sein. Ankername kann sein: – Lokaler Anker: #name – URL mit angehängtem lokalen Anker: http://....#name Webtechnologien – WS 2016/17 - Teil 4/HTML I 38 Graphik als Link <a href="URL"> <img src="URLBILD" alt="TEXT" /> </a> • • • Ein Klick auf die Graphik geladen von URLBILD lässt ein Objekt mit der URL laden. Die Graphik liegt an der Adresse URLBILD und hat einen alternativen Text, der - falls die Graphik nicht geladen wird - als Linktext gekennzeichnet wird. Beispiel: <a href="http://www..../index.html"> <img src="Home.gif" alt="[Home]" /> </a> 39 Webtechnologien – WS 2016/17 - Teil 4/HTML I Listen I html Bedeutung <ul> ... </ul> Ungeordnete Liste <li> ... </li> Einleitung eines Eintrags <ol> ... </ol> Nummerierte Liste Ein Beispiel für eine Liste von Links: <ul> <li><a <li><a <li><a <li><a <li><a <li><a href="Common/Common.htm">Allgemeines</a></li> href="CSCW.htm">Computer Supported Coop. Work</a></li> href="FML/FML.htm">Facility Management</a></li> href="Kommunen/Kommunen.htm">Kommunen</a></li> href="Medizin/Medicine.htm">Medizin</a></li> href="WFMS/WFMS.htm">Workflow Management</a></li> </ul> Webtechnologien – WS 2016/17 - Teil 4/HTML I 40 Listen II - Beispiele <ul> <li> Koffer </li> <li> Tasche </li> <li> Mantel </li> </ul> <ol> <li> Mehl abwiegen </li> <li> Eier schlagen </li> <li> Zusammenmischen </li> </ol> 41 Webtechnologien – WS 2016/17 - Teil 4/HTML I Tabellen I <table> <tr> <th> Kopf 1. Zeile, 1. Spalte </th> <th> Kopf 1. Zeile, 2. Spalte </th> <th> Kopf 1. Zeile, 3. Spalte </th> Die angesprochenen Attribute werden über CSS definiert. </tr> <tr> <td> Daten 2. Zeile, 1. Spalte </td> <td> Daten 2. Zeile, 2. Spalte </td> <td> Daten 2. Zeile, 3. Spalte </td> </tr> <tr> <td> Daten 3. Zeile, 1. Spalte </td> <td> Daten 3. Zeile, 2. Spalte </td> <td> Daten 3. Zeile, 3. Spalte </td> </tr> </table> Tabelle mit definiertem Rahmen Webtechnologien – WS 2016/17 - Teil 4/HTML I 42 Tabellen II <table> <tr> Die angesprochenen Attribute werden über <th> Kopf 1. Zeile, 1. Spalte </th>CSS definiert. <th> Kopf 1. Zeile, 2. Spalte </th> <th> Kopf 1. Zeile, 3. Spalte </th> </tr> <tr> <td> Daten 2. Zeile, 1. Spalte </td> <td> Daten 2. Zeile, 2. Spalte </td> <td> Daten 2. Zeile, 3. Spalte </td> </tr> ..... Wie oben Tabelle ohne Rahmen und mit definiertem Zellabstand (cellspacing) 43 Webtechnologien – WS 2016/17 - Teil 4/HTML I Tabellen III html Bedeutung <table> ... </table> Gesamtdefinition der Tabelle <tr> ... </tr> Tabellenzeile ("row") <td> ... </td> Einleitung der Daten ("data") <th> ... </th> Einleitung der Überschrift ("header") • • • • Alle Rechteck-förmige Elemente können einen Abstand haben: zwischen Rahmen und Inhalt sowie zwischen Zelle und Zelle Der Inhalt kann wie jeder Text ausgerichtet werden: linksbündig, rechtsbündig etc. Die Position der Tabelle insgesamt kann in Bezug auf den umfassenden Rahmen ausgerichtet werden. Dies alles erfolgt über CSS. Webtechnologien – WS 2016/17 - Teil 4/HTML I 44 Nach dieser Anstrengung etwas Entspannung... Webtechnologien – WS 2016/17 - Teil 4/HTML I 46