HTML und CSS Daniel Beuter Mannheimer Abendakademie, 7. Dezember 2012 Copyright: D. Beuter Seminar-Inhalte Grundlagen Internet/Browser HTML Grundstruktur Document Type Definition Tags CSS Einbindung Selektoren Klassen Formatierungen Ablauf Heute Seminar 13:00 Uhr bis 15:00 Uhr PAUSE 15:00 Uhr bis 15:15 Uhr Seminar 15:15 Uhr bis ca. 16:45 Uhr Grundlagen Internet – Datenfluss Server - Bereitstellung von Informationen PC/Laptop Internet - Datenaustausch - Domainverwaltung - Abruf von Daten - Interpretation - Darstellung Grundlagen Internet – Darstellung einer Internetseite 1. Datenabruf einer Internetseite (z.B. www.dmkommunikation.de) PC/Laptop - Abruf von Daten - Interpretation - Darstellung 2. Interpretation durch einen Browser (z.B. Firefox, Internet Explorer, Google Chrome) 3. Darstellung auf dem Bildschirm Was leistet der Browser? Interpretiert HTML und CSS Erstellt aus Fließtext eine übersichtliche Darstellung Was leistet der Browser? - Einschränkungen ACHTUNG! Standards sind nicht durchgehend umgesetzt Jeder Browser hat seine Besonderheiten Vor allem im Bereich CSS ist Vorsicht geboten Firefox/Chrome Internet Explorer Was ist HTML HTML -> Hyper Text Markup Language Die Hypertext Markup Language (HTML; deutsch Hypertext-Auszeichnungssprache) ist eine textbasierte Auszeichnungssprache zur Strukturierung von Inhalten wie Texten, Bildern und Hyperlinks in Dokumenten. Quelle: http://de.wikipedia.org/wiki/Hypertext_Markup_Language Wie programmiert man eine Internetseite? Man benötigt lediglich einen Text-Editor Auf jedem System vorhanden Beispiel HTML - Grundlagen HTML besteht aus Tags: <b>gefetteter Text</b> Tags können verschachtelt werden <b><i>gefetteter und kursiver Text</i></b> Verschachtelung muss immer in der richtigen Reihenfolge geschehen. Was zuletzt geöffnet wurde, muss zuerst geschlossen werden <b>fetter, <i>kursiver</i></b> Text <b>fetter, <i>kursiver</b></i> Text Verschiedene Tags Quelltextstruktur <html>,<head>,<body> etc Tags zur Textformatierung <b>,<i>,<strong> etc Layout-Tags <table> <ol>,<ul> Meta-Tags <meta name=“abc“ content=“test“ /> Quelltextstruktur Jede Seite besteht mindestens aus diesen Teilen Bereiche eines HTML-Quelltextes <head> bietet Platz für Allgemeine Informationen wie Sprache, Autor, Lizenz, Inhalt, Zusammenfassung Titel der Seite Importieren von externen Dateien (CSS und JavaScript) <body> bietet Platz für den Inhalt der Seite Document Type Definition Wichtiges Detail, DTD steht vor dem öffnenden HTML-Tag DTD gibt an, mit welcher Syntax das Dokument erstellt wurde Standards werden vom W3C herausgegeben und verwaltet <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> Transitional sollte gewählt werden Strict ist sehr „hart“ mit Fehlern Welche Formatierungen werden benötigt? Fett Farbig Kursiv tiefgestellt/hochgestellt andere Schriftart Ausrichtung Schriftgröße Tabellen Absatz Überschrift Bilder Umbruch Überschriften werden mit <h1> bis <h6> gekennzeichnet <h1> sollte nur einmal pro Seite vorkommen <h1> ist Überschrift der obersten Ebene <h6> ist Überschrift der untersten Ebene Überschriften nicht für Textformatierung verwenden, da für Strukturierung der Seite vorgesehen Beispiel Überschriften Abschnitt Abschnitte werden mit <p> für „Paragraph“ eingeleitet und geschlossen Automatischer Zeilenumbruch zwischen Abschnitten Leerzeichen und Zeilenumbrüche werden im HTMLQuelltext ignoriert Abschnitt: Beispiel Abschnitt: Beispiel Textausrichtung im Absatz Mit dem Schlüsselwort align align=“center“ – mittig align=“right“ - rechts align=“left“ - links Einfacher Umbruch <br/> eines der wenigen Elemente, die ohne ein End-Tag auskommen Trennlinie <hr/> auch ohne Endtag Erzeugt eine Trennlinie über die gesamte Breite Schriftformatierung <font> Wird genutzt, um Schriftgröße, Farbe und Schriftart festzulegen Textfarbe kann per Name oder per Hex-Code angegeben werden Schriftarten mit Vorsicht einsetzen color=green align=center Schriftformatierung Kursiv, Fett, Unterstrichen, Durchgestrichen, Hoch und Tief Für oft benötigte Elemente gibt es kurze Schreibweisen Listen es gibt sortierte und unsortierte Listen sortierte Listen haben eine Nummerierung 1,2,3 (Standard) a,b,c I,II,III unsortierte Listen haben Aufzählungszeichen square (Quadrat) circle (nicht ausgefüllter Kreis) disc (ausgefüllter Kreis, Scheibe) Listen Einleitung der Liste mittels <ul> oder <ol> <ul> unsorted list – unsortierte Liste <ol> ordered list – sortierte Liste Listeneinträge mit <li> Listen können verschachtelt werden, so können Hierarchien abgebildet werden. Listen - Beispiele Listen – Beispiele Listen - Beispiele Listen Bei nummerierten Listen kann der Wert des aktuellen Eintrags angegeben werden. <li value=“8“>Eintrag mit Nummer 8</li> Arten von nummerierten Listen: <ol type=“a“> a,b,c <ol type=“A“> A,B,C <ol type=“I“> (großes i) I,II,III <ol type=“i“> i,ii,iii Listen Arten von unsortierten Listen <ul type=“disc“> Ausgefüllter Kreis (Standard) <ul type=“circle“> Hohler Kreis, Ring <ul type=“square“> Quadrat Tabellen Tabellen werden über das Tag <table> eingeleitet Zeilen einer Tabelle werden mit <tr></tr> definiert Zellen in einer Zeile werden mit <td></td> definiert Tabellen – Einfaches Beispiel Tabellen – Einfaches Beispiel Tabelle - Header Eine Tabelle hat meist eine Überschrift Diese wird mittels <th></th> für „Table Header“ definiert Tabelle – Header – Beispiel Tabelle aufteilen Eine Tabelle kann in 3 Bereiche gegliedert werden thead – Der Kopf der Tabelle tfoot – Der Fuß der Tabelle tbody – Der Inhaltsbereich einer Tabelle Diese Reihenfolge ist einzuhalten einzelne Elemente können ausgelassen werden Werden keine Bereiche definiert, wird alles als tbody interpretiert (Beispiel von vorhin) Tabelle aufteilen - Beispiel Tabelle - Formatierungsoptionen Eine Tabelle kann formatiert werden Gitternetzlinien: border=“1“ Innenabstand: cellpadding=“5“ Aussenabstand: cellspacing=“8“ Die Angaben werden als Pixel interpretiert. Gitternetz in der Tabelle Gitternetz wird mit border=“1“ eingeschaltet Standard: Alle Gitternetzlinien werden angezeigt Schlüsselwort: rules none – Keine Gitternetzlinien rows – Nur die Zeilen sind abgetrennt cols – Nur die Spalten sind abgetrennt groups – Die Gruppen (head,foot, body) sind voneinander getrennt all – Alle Gitternetzlinien werden angezeigt Gitternetz – Beispiel Aussenrahmen Außenrahmen kann auch definiert werden. Schlüsselwort: frame void – kein Rahmen above – nur oben ein Rahmen below – nur unten ein Rahmen lhs – left hand side – nur links ein Rahmen rhs – right hand side – nur rechts ein Rahmen hsides – horizontal sides – nur oben und unten vsides – vertical sides – nur rechts und links Außenrahmen Spalten definieren Spalten werden über Colgroups definiert direkt nach dem Begin der Tabelle vor dem ersten Inhalt, also vor thead Können absolut definiert werden (in Pixeln) Können in % angegeben werden Spalten definieren Bilder Werden mit dem Tag <img> eingebunden benötigen kein Endtag Schlüsselwort src um Bilddatei zu laden Bilder - Beispiel Bilder – Optionen Bilder können formatiert werden Rahmen ums Bild mit border=“1“ Größe kann festgelegt werden width=“200px“ – Festlegen der Breite height=“180px“ – Festlegen der Höhe Man kann auch beides festlegen, hier ist jedoch Vorsicht geboten, sonst: Links, Anker Links und Anker werden über das Tag <a> definiert Ankerpunkte werden innerhalb eines Dokumentes gesetzt, um an eine definierte Stelle des Dokumentes zu springen Sinnvoll bei sehr langen Text-Seiten, Glosar Links werden genutzt, um Ankerpunkte oder andere Seiten zu verlinken Links - Beispiel Ankerpunkt setzen <a name=“seitenanfang“> Kann in einem Link direkt angesprungen werden Seitenintern und Seitenextern Zum Anspringen eines Ankerpunktes wird # verwendet DIV/Span DIV (diverse) und Span werden verwendet, um den Inhalt zu strukturieren DIV ist Blockelement Umbruch, falls nicht anders definiert Span ist Inline-Element kein Umbruch Können Style-Informationen aufnehmen, ähnlich wie <font> Meta-Tags Es gibt diverse Meta-Tags werden verwendet, um Informationen über die Seite anzugeben Beispiele sind: Schlüsselwörter Beschreibung des Inhalts Nennung des Autors Nennung des Copyright Codierung der Seite Meta-Tags Meta-Tags waren für Suchmaschinen sehr relevant mittlerweile nur noch für Yahoo interessant, Google verwendet sie kaum Aufbau Meta-Tags Keywords Stichwortartige Beschreibung des Seiteninhalts Getrennt durch Komma Description Fließtext, sollte nicht mehr als 180 Zeichen haben aber auch nicht zu kurz robots wird von Suchmaschinen ausgewertet, um festzulegen, ob die Seite indexiert werden soll Optionen: index vs. no-index follow vs. no-follow Meta-Tags Ein sehr wichtiges Meta-Tag ist die Angabe der Zeichenkodierung Fehlendes Meta-Tag kann unleserliche Zeichen zur Folge haben Umlaute kodieren ä -> &auml; Ä -> &Auml; ß -> &szlig; HTML und CSS Heute CSS als Auszeichnungssprache Formen der Einbindung Selektoren Regeln für die Gestalltung CSS – Cascading Style Sheets Grundidee beim Entwurf von CSS war es, mittels HTML oder XML nur die inhaltliche Untergliederung eines Dokumentes und die Bedeutung seiner Teile zu beschreiben, während mittels CSS weitgehend unabhängig davon die konkrete Darstellung (Farben, Layout, Schrifteigenschaften usw.) der Teile festgelegt wird. Wie kann man CSS einbinden? Möglichkeiten der Einbindung von CSS Inline Style-Blöcke Separate Datei Inline-CSS Die einfachste Möglichkeit, CSS einzusetzen Schlüsselwort: style Vorteile/Nachteile Inline-CSS Vorteile sehr einfach umzusetzen Style ist immer direkt am Element keine komplizierten Konstrukte Nachteile Jedes Element muss für sich definiert werden keine Wiederverwertbarkeit uneinheitlich Inline Style-Blöcke Werden direkt in der HTML-Datei geschrieben Vorteile/Nachteile Style-Blöcke Vorteile Alle Design-Informationen an einer Stelle Regeln können wiederverwendet werden „volle Kraft“ von CSS kann genutzt werden Nachteile nur für eine Seite gültig zwischen den Seiten nach wie vor kein Standard „geht unter“ zwischen HTML-Code CSS in eigene Datei auslagern CSS-Regeln können in einer eigenen Datei ausgelagert werden Diese Datei wird auf allen Seiten verwendet Styles sind somit im ganzen Projekt verfügbar Vorteile/Nachteile von Auslagerung Vorteile Einheitliches Design für die ganze Seite möglich Klare Trennung von Inhalt und Design CSS kann „komplett“ genutzt werden Nachteile zwei unterschiedliche Dateien Empfehlung für den Einsatz von CSS keine Methode ist für alles geeignet Mischen ist möglich Empfehlung: Für jede Regel individuell überlegen, wo sie am besten hinpasst Gibt es das Element auch auf anderen Seiten? Auslagern Gibt es das Element noch einmal auf dieser Seite? Auslagern oder Style-Block (besser Auslagern) Ist das Element wirklich einmalig? Inline mit Style-Tag (sehr sparsam gebrauchen) Aufbau einer CSS-Regel CSS-Regeln sind immer nach folgendem Schema aufgebaut: Es können mehrere Selektoren mit Komma getrennt verwendet werden Es können mehrere Schlüsselwörter mit Strichpunkten getrennt in einer Regel verwendet werden Sonderfall: Inline-CSS mit Style-Schlüsselwort Wird das CSS direkt im Element mit dem Schlüsselwort „style“ verwendet, fällt der Selektor und die Klammern weg Stattdessen: Selektoren Selektoren in CSS selektieren ein oder mehrere Elemente Verschiedene Möglichkeiten über eine ID über eine Klasse über den Elementname über ein Schlüsselwort über die Position im Dokument Selektor: ID Über die ID wird ein spezielles Element selektiert Aufbau im CSS #ID des Elements Aufbau im HTML <p id=“ID_des_Elements“> Wird verwendet, um einzigartige Elemente zu referenzieren, welche einmalig auf einer Seite sind Selektor: Klasse Über eine Klasse können mehrere Elemente einer Seite selektiert werden Aufbau im CSS .Klasse des Elements Aufbau im HTML class=“Klasse des Elements“ Ein Element kann mehrere Klassen haben dadurch lässt sich eine schöne Aufteilung der FormatRegeln erziehlen Selektor: Elementname Über den Elementname können gleiche Elemente selektiert werden Keine Anpassungen im HTML notwendig Sollte so viel wie möglich verwendet werden, um einheitliches Design zu ermöglichen Aufbau im CSS h1 span p Selektor: Schlüsselwort Es können Elemente selektiert werden, welche ein bestimmtes Schlüsselwort gesetzt haben. Über dies können auch Elemente selektiert werden, welche einen bestimmten Wert für ein bestimmtes Schlüsselwort gesetzt haben Aufbau CSS *[Schlüsselwort=Wert] =Wert kann weggelassen werden Selektor: Position im Dokument Selektoren können verknüpft werden Selektoren können aufgelistet werden Verknüpfung von Selektoren Elemente, welche innerhalb eines anderen liegen, werden selektiert Es können Ebenen dazwischen liegen, es muss also kein direktes Kindelement sein Beispiel #content h1 Wird nur angewendet auf Überschriften, welche innerhalb des content-Blocks liegen Auflistung von Selektoren Durch Komma von einander getrennte Selektoren Jeder Teil des Selektors kann greifen Beispiel: h1, h2, h3 { color: red; } Alle Überschriften h1-h3 werden rot dargestellt Verschiedene Verknüpfungsarten Nachfolger Kindelement Geschwister-Selektor Tiefen-Selektor Nachfolger Nachfolger werden als einfache Liste dargestellt Arten von Einzel-Selektoren können beliebig gemischt werden Beispiel body #content p.abschnitt h4 Selektiert wird jetzt Überschrift (H4), welche innerhalb eines Abschnittes mit der Klasse .abschnitt liegen, welche wiederum zum Content-Bereich gehören muss. Das bodyElement kann hier weggelassen werden. Kindelemente Ähnlich dem Nachfolger-Selektor Nur direkte Kinder werden selektiert Beispiel #content > h4 Nur eine Überschrift (h4) welche direkt im Content-Bereich liegt Geschwister-Selektor Elemente liegen auf gleicher Ebene Müssen nicht direkte Geschwister sein Beispiel: p + span Jeder Span, welcher auf gleicher Ebene ein „p“-Element haben, werden selektiert Tiefen-Selektor Das „Gegenteil“ vom Kind-Selektor Es muss mindestens eine Ebene zwischen dem ersten und dem zweiten Element liegen Beispiel #content * h3 Jede Überschrift H3 wird selektiert, welche innerhalb von #content liegt, und mindestens ein Element dazwischen liegt. Schriften Schriften werden durch das Schlüsselwort “font“ definiert Beispiel <span style=“font-family:Arial“>Text</span> Fettung in CSS Fettung wird durch das schlüsselwort “font-weight“ definiert. Mögliche Werte bold bolder light lighter 100,200,300,400,500,600,700,800,900 Schriften kursive Schriften werden durch das Schlüsselwort “font-style“ Mögliche Werte sind normal (Standard) italic oblique Farben Wie auch in HTML werden Farben in CSS über einen Farbcode (Hexadezimal) angegeben Referenzierung auch über Namen möglich Auflistung aller Farbnamen mit Codes: http://www.farb-tabelle.de/de/farbtabelle.htm Farben in CSS Farben werden mit dem Schlüsselwort “color“ festgelegt color bezieht sich dabei auf die Textfarbe, also den Inhalt des Elements Hintergrund Hintergrund kann sein: Farbfläche Bild Schlüsselwort: background-color Hintergrund-Bild Der Hintergrund eines Elementes kann auch aus einem Bild bestehen Schlüsselwort: background-image Als Wert muss die Adresse des Bildes angegeben werden. Hintergrund-Bild Hintergrund - Repeat Standardmäßig wird der Hintergrund in alle Richtungen wiederholt Dieses Verhalten kann gesteuert werden: background-repeat Mögliche Werte repeat-x repeat-y repeat no-repeat horizontal wiederholt vertikal wiederholt in beide Richtungen wiederholt keine Wiederholung Hintergrundeffekte mit Repeat Durch die Wiederholung wird Speicherplatz gespart eine kleine Graphik kann eine ganze Fläche füllen Hintergrundeffekte für Menüs durch vertikales Wiederholen kann man einen Hintergrund beispielsweise für ein Menu erstellen Home | Über uns | Anfahrt Float Float = Fluss, fließen Elemente in HTML fließen immer Mit CSS kann der Float beeinflusst werden Beispiel: float:left; float: right; Einheitlicher Umbruch (auch für übergeordnete Container) <br style=“clear:both“ /> Positionierung In CSS gibt es 2 weitere Möglichkeiten, Elemente zu positionieren Standard ist relative Positionierung Es gibt noch die absolute Positionierung Absolut: Die linke obere Ecke wird zum Elternelement um bestimmte Pixel verschoben Relativ: Die Position wird von der laut Float zugewiesenen Position aus entsprechend verschoben Schatten Man kann Elementen einen Schatten zuordnen Schlüsselwort: box-shadow Beispiel: box-shadow: 3px 2px 7px #ccc; wobei gilt: verschiebung vertikal, verschiebung horizontal, breite des Schattens, Farbe des Schattens Unterschiedliche Umsetzung in Browsern box-shadow wird nicht von allen Browsern erkannt Für Mozilla Firefox: -moz-box-shadow Für Webkit-basierte Browser (Chrome, iPhone) -webkit-box-shadow Kompletter Schatten-Block also -moz-box-shadow: 3px 2px 7px #ccc; -webkit-box-shadow: 3px 2px 7px #ccc; box-shadow: 3px 2px 7px #ccc; Runde Ecken Ecken können abgerundet werden Auch hier ist die Umsetzung in den Browsern (noch) nicht einheitlich Beispiel: border-radius: 5px; Für Mozilla und Webkit wieder entsprechend: -moz-border-radius: 5px; -webkit-border-radius: 5px; Runde Ecken Man kann auch einzelne Ecken abrunden border-top-left-radius: 5px; border-top-right-radius: 18px; border-bottom-left-radius: 10px; border-bottom-right-radius: 15px; Vielen Dank! Daniel Beuter DM Kommunikation Neustadt / Weinstraße Tel. 06321 – 484 0162 [email protected] http://www.dmkommunikation.de https://www.xing.com/profile/Daniel_Beuter3