Introduction to Technologies Stylesheets mit CSS HTML-CSS enthält den Inhalt HTMLDatei CSSDatei *.html *.css Darstellung des Seiteninhaltes im erstellten Layout Browser enthält die Layoutangaben ist austauschbar Was CSS kann Farben, Effekte, Schriften, Positionen u.v.m. festlegen HTML-Elemente und selbst definierte Elemente beschreiben HTML-Seiten für verschiedene Ausgabeund Anzeigegeräte optimieren Layoutinformationen zur Verfügung stellen, ohne in HTML-Datei eingreifen zu müssen Was CSS nicht kann dynamische Webseiten erzeugen – wenn Seite im Browser angezeigt wird, braucht man ein Programm, um diese Darstellung zu ändern automatische Auswahl des passenden Stylesheets für Benutzergruppen es gibt alte Browser, die CSS nicht darstellen können (IE 2, Netscape 3 ...) CSS - Regeln Regel: Selektor Eigenschaft Wert h1 { color: red; font-size: large; } Selektor gibt HTML-Elemente an, auf die sich die Regel bezieht Deklarationen beschreiben die Darstellung aller Elemente, auf die sich der Selektor bezieht Deklaration besteht aus zwei Teilen Eigenschaft, die verändert werden soll und Wert, den die Eigenschaft annehmen soll color: red; Eigenschaft color (Farbe) wird geändert, neuer Wert ist red (rot) CSS Beispiel h1 { color: font-size: } red; large; h1 ist die Bezeichnung für eine Überschrift erster Ordnung Regel wird also auf alle derartigen Überschriften angewendet Hierarchie von HTML-Dokumenten Vererbung: übergeordnete Elemente können Eigenschaften an untergeordnete Elemente weitergeben Wenn für untergeordnete Elemente Eigenschaften nicht definiert wurden, werden die Einstellungen der übergeordneten Elemente verwendet manche Eigenschaften werden nicht vererbt (z.B. width als Breitenangabe eines Elementes) Verknüpfung von CSS und HTML CSS-Anweisungen im Kopf der HTML-Datei <style type="text/css"> <!– /* ... Hier werden die Formate definiert ... */ --> CSS-Anweisungen innerhalb eines HTMLElementes <h1 style="[element-spezifische Formate]">Das style-Attribut</h1> CSS-Anweisungen in einer separaten Datei <link rel="stylesheet" type="text/css" href="formate.css"> Beispiel HTML-Element formatieren <p style="background-color:#808040; color:#D8FD02; font-family:'Century Schoolbook',serif; font-size:2em; letter-spacing:3px; padding:40px; border:double #D8FD02 4px;" title="Zitat von Francis Picabia"> Unser Kopf ist rund, damit das Denken die Richtung wechseln kann! </p> Stylesheets für verschiedene Ausgabemedien <link rel="stylesheet" media="screen" href="website.css"> <link rel="stylesheet" media="print, embossed" href="druck.css"> <link rel="stylesheet" media="aural" href="speaker.css"> CSS anwenden Folgende Beispiele sind für CSS in separater Datei Rangfolge der Stylesheets: Benutzer-Stylesheet mit !important Autoren-Stylesheet mit !important Autoren-Stylesheet Benutzer-Stylesheet Browser-Stylesheet Weiterhin wird nach Spezifität sortiert: direkt zugewiesene CSS-Deklarationen ID-Attribute Klassen Elementtyp-Selektor ein oder mehrere HTML-Tags als Selektoren h1, h2, h3{ font-size : 18px; text-transform : capitalize; } Universeller Selektor - CSS kein bestimmter Selektor angegeben, Eigenschaft bezieht sich auf alle Elemente der Seite * { color : red; } Klassen-Selektor Stil für mehrere HTML-Elemente auf einmal Name für Klasse beliebig wählen und Punkt davor schreiben (ohne Leerzeichen) .spezial { font-family: Verdana, Arial, Helvetica, sans-serif; } Jedes HTML-Element kann dieser Regel zugeordnet werden Klassen-Selektor Einbindung in HTML <p class= “spezial“> Ein Absatz mit Inhalt.</p> <li class= “spezial“> Listenpunkt</li> stellt den Text „Ein Absatz mit Inhalt“ und „Listenpunkt“ in einer serifenlosen Schrift dar (wie im CSS beschrieben) Klassen-Selektor Klasse für bestimmten Elementtyp p.spezial{ font-family: Verdana, Arial, Helvetica, sans-serif; } HTML-Tag, dann Punkt, dann Name (ohne Leerzeichen) In HTML muss diesem Elementtyp dann extra die Klasse spezial zugewiesen werden ID-Selektor Stilregeln für ein einzelnes HTML-Element auf der Seite festlegen diese Regel überschreibt sämtliche andere zentralen Regeln, die sonst gelten könnten Schreibweise: Namen ausdenken und hinter # schreiben #einzigartig { font-size : 10px; } ID-Selektor muss im HTML mit dem Namen gekennzeichnet sein <p id=“einzigartig”> Absatz mit kleiner Schrift</p> ID-Regeln haben grundsätzlich Vorrang gegenüber Klassenregeln ID-Selektor HTML-Elemente können eine ID und eine Klasse zugewiesen bekommen <div id=“suchbox“ class=“seitenleiste“> alle Formatierungen der ID-Regel haben Vorrang gegenüber den Angaben der Klassenregel Pseudo-Klassen in CSS2 :hover, Element, das gerade mit der Maus überfahren wird :active, gerade angeklicktes Element :focus, Element, das den Fokus hat :link, Verweis zu noch nicht besuchter Seite :visited, Verweis zu bereits besuchter Seite Selektor für Nachfahren außer HTML sind alle Elemente Nachfahren von mindestens einem anderen Element Stilregeln sind möglich, die nur für untergeordnete Elemente eines bestimmten Elementes gelten z.B. Formatierungsanweisungen nur für <li>-Elemente, die sich in der Navigationsliste befinden Selektoren für Nachfahren #navlist li { list-style: none; margin: 0; padding: 0.25em; border-top: 1px solid gray; } Selektoren Selektoren für direkt über- und untergeordnete Elemente div > p{ font-weight: bild; } Selektoren für benachbarte Elemente h1 + h2 { margin-top: 11px; } Absolute Maßangaben Inch in (2,54 cm) Zentimeter cm Millimeter mm Punkt pt (3,53 mm) Pica pc (12 Punkte, 42,33 mm) Pixel px (ein Punkt auf dem Bildschirm) Relative Maßangaben Größenangabe bezüglich eines Ausgangswertes Prozentuale Angaben Verhältnis zur Höhe der Versalie M em Verhältnis zur Höhe des Kleinbuchstaben x ex Pixel-Angaben erzeugen ein stabiles Größenverhältnis zwischen Text und Bildern, auch bei unterschiedlicher Bildschirm-Auflösung bei Schriftgröße sollte man möglichst auf genaue Vorgaben verzichten Box-Modell Grundlage für Seitenaufbau Breite und Höhe von Elementen Innenabstände in alle vier Richtungen (entspricht „Auffüllen“ im Dreamweaver) Box-Modell Außenabstände für alle vier Richtungen (entspricht „Rand“ im Dreamweaver) Layout mit Stylesheets enthalten alle Layout-Informationen mit Inhalts-Entwickler müssen alle Bestandteile der Seiten abgesprochen sein Namen für alle Teile vergeben beim Entwickeln des Inhalts: alle Bestandteile korrekt benennen beim Entwickeln des Layouts: für alle abgesprochenen Bestandteile das Layout beschreiben Vorüberlegungen 1. 2. 3. Welchen Inhalt soll die Seite haben? Wie soll die Struktur der Seite aufgebaut sein? Welche Layoutobjekte brauche ich dafür? Schritt 1: Inhalt Beispiel: Vortrag über Digitalkameras inhaltliche Schwerpunkte überlegen grobe Gliederung aufstellen Recherche Schritt 2: Struktur Layout-Skizze oftmals als Ausgangspunkt geeignet Bestandteile der Seite auflisten, wie Kopfoder Fußzeile, Navigationsbereich, Textbereich, Spalten usw. inhaltliche Gliederung auf Seiten aufteilen Bezeichner für Navigationsleiste wählen, evtl. Unterpunkte Schritt 3: Layoutobjekte alles, was einzeln beschrieben werden soll, muss ansprechbar sein – muss also einen Namen haben Festlegen, was Layoutobjekte sein müssen Namen dafür überlegen Vorgehensweise 1. 2. 3. 4. 5. 6. neue leere HTML-Datei erzeugen erforderliche Layout-Objekte in die HTML-Datei einfügen, dabei auf korrekte Bezeichnung achten Inhalte der ersten Seite einfügen neue leere CSS-Datei erzeugen für jedes Layout-Objekt ein Stylesheet in die CSS-Datei einfügen und beschreiben CSS-Datei in die HTML-Datei einbinden Gestaltungsbeispiel Wie ist die Seite aufgebaut? Aus welchen Elementen besteht sie? Wie erfolgt die Navigation? Wie wird der Inhalt dargestellt? Wie ist die Trennung zwischen Inhalt und Form realisiert? Wie ist die Seite aufgebaut? Navigationsbereich Seiteninhalt gestalterische Elemente Aus welchen Elementen besteht sie? div-Bereich id=navigation div-Bereiche id=navi div-Bereich id=lineo div-Bereich id=text div-Bereich id=pic div-Bereich id=lineu Aus welchen Elementen besteht sie? Navigationsbereich, der Bildbereiche enthält sowohl Navigationsbereich insgesamt als auch jeder Bildbereich kann angesprochen werden Inhaltsbereiche unabhängig voneinander, können nicht als Ganzes beschrieben werden (wäre das nötig?) Wie erfolgt die Navigation? Navigationsbereich eher untypisch für Hypertextanwendung sequentielles Anzeigen der Seiten Benutzer kann nicht direkt eine bestimmte Seite anschauen Ausnahme: Home-Link, der zur Startseite verweist Wie wird der Inhalt dargestellt? Verwendung von Bildern auch für Inhalt (Text) problematisch, da dieser Text nicht gestaltet und auch nicht automatisch ausgewertet werden kann Bilder können für Neugestaltung nur ausgetauscht oder neu positioniert werden Inhalte müssen dem Gestalter bekannt und zugänglich sein bei Text-Darstellung kann unformatierter Text erzeugt werden, der dann mit CSS gestaltet wird Trennung Inhalt - Form prinzipiell gegeben (siehe Problem der Bilder) Änderung des Inhaltes erfordert keine Änderung des Designs und umgekehrt Änderung der Form bzw. Beschreibung der Form möglich ohne detaillierte Kenntnis des Inhaltes Verknüpfung Inhalt-Form Darstellung am Beispiel Darstellung ohne Stylesheet – Standardannahmen werden verwendet für <div>-Bereiche: nur Beginn neuer Zeile für neuen Bereich schrittweises Hinzufügen von DesignVorgaben Darstellung ohne CSS CSS für Gestaltungsbeispiel #navigation: Positionierung des Navigationsbereiches auf der Seite Box-Modell: relative Positionierung, Abstand von oben, von linkem Rand, Breite und Höhe angeben #navigation { position: relative; left: 360px; top: 30px; width: 250px; height: 160px; } mit Positionierung der Navigation CSS für Gestaltungsbeispiel Darstellung der einzelnen Navigationselemente nebeneinander .navi { display:inline; } Darstellung nebeneinander CSS für Gestaltungsbeispiel Positionieren der div-Bereiche für die Linien #lineu { position: absolute; left: 50px; top: 550px; } #lineo { position: absolute; left: 50px; top: 115px; } Linien positionieren CSS für Gestaltungsbeispiel Text formatieren mit Schriftart, -farbe, position #text { font-family: Arial, Helvetica, sans-serif; font-size: 24px; font-style: normal; font-weight: normal; font-variant: normal; position: absolute; left: 130px; top: 150px; } Text formatiert CSS für Gestaltungsbeispiel Bildbereich positionieren #pic { position: absolute; left: 50px; top: 200px; } Bild positioniert Vorteil von CSS alle Designinformationen in einer CSSDatei einfach austauschbar z.B. Darstellung der Navigation am unteren statt am oberen Rand #navigation { position: relative; left: 360px; top: 550px; width: 250px; height: 160px; } Beispiel: geänderte CSS-Datei Schriftgebung font: Zusammenfassung aller font-bezogenen Tags (shorthand) font-family: Bestimmt die Schriftart font-size: Bestimmt die Schriftgröße font-style: Bestimmt den Schriftstil (kursiv...) font-weight: Bestimmt die Schriftdicke letter-spacing: Verändert den Abstand der Buchstaben zueinander line-height: Bestimmt die Höhe der Zeile text-align: Bestimmmt die Ausrichtung des Textes text-decoration: Unterstreicht den Text text-indent: Rückt die erste Zeile eines Abschnitts ein Farben/Hintergrund color: Bestimmt die Vordergrundfarbe background: Fasst alle Hintergrund-Deklarationen zusammen (shorthand) background-color: Weist dem Hintergrund eine Farbe zu background-image: Weist dem Hintergrund ein Bild zu background-attachment: Legt fest ob das Hintergrundbild mitscrollt oder nicht background-repeat: Legt fest ob und wie das Hintergrundbild wiederholt wird background-position: Positioniert das Hintergrundbild Ausrichtung/Layout/Darstellung clear: verhindert float display: Verändert die Darstellungsart eines Elements (nicht anzeigen, inline oder block...) float: Lässt Elemente aneinander vorbeifließen height: Definiert die Höhe eines Elements width: Definiert die Breite eines Elements margin: Verändert den Abstand des Elements zur Umgebung (shorthand) margin-bottom: Verändert den Abstand des Elements nach unten margin-left: Verändert den Abstand des Elements nach links Ausrichtung/Layout/Darstellung margin-right: Verändert den Abstand des Elements nach rechts margin-top: Veränderte den Abstand des Elements nach oben padding: Abstand des Inhalts zum Rand (shorthand) padding-bottom: Abstand des Inhalts zum unteren Rand padding-right: Abstand des Inhalts zum rechten Rand padding-top: Abstand des Inhalts zum oberen Rand padding-left: Abstand des Inhalts zum linken Rand Links/Auflistungen a:link: Bestimmt die Formatierung eines normalen Links a:visited: Bestimmt die Formatierung eines besuchten Links a:active: Bestimmt die Formatierung eines aktiven Links a:hover: Bestimmt die Formatierung eines gehoverten Links (Maus ist grade drüber) list-style-image: Weist den Listenpunkten ein Bild zu list-style-type: Bestimmt das Aussehen der Listenpunkte Rahmen border: Fasst alle Rahmen-Tags zusammen (shorthand) border-bottom: Bestimmt Aussehen, Dicke und Farbe des unteren Rands border-bottom-width: Bestimmt die Breite des unteren Rands border-color: Farbe des Rahmens border-left: Bestimmt Aussehen, Dicke und Farbe des linken Rands border-left-width: Bestimmt die Breite des linken Rands Rahmen border-right: Bestimmt Aussehen, Dicke und Farbe des rechten Rands border-right-width: Bestimmt die Breite des rechten Rands border-style: Bestimmt die Darstellungsweise des Rahmens border-top: Bestimmt Aussehen, Dicke und Farbe des oberen Rands border-top-width: Bestimmt die Breite des oberen Rands border-width: Bestimmt die Rahmenbreite für alle Rahmen