Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Tutorium Cascading Stylesheets (CSS) Martin Stricker [email protected] 16. Juni 2004 Cascading Stylesheets CSS Stylesheets ist eine eigene Stilsprache für die Gestaltung von Webseiten. CSS behebt Defizite von HTML: • HTML hat nur einen begrenzten Zeichenvorrat an Attributen zur visuellen Gestaltung von Webseiten. • Viele Eigenschaften lassen sich per HTML überhaupt nicht definieren, z.B. Abstände zwischen Absätzen, Zeilenabstände, absolute Werte für Schriftgröße usw. • Eigenschaften müssen für jedes Element neu definiert werden, eine zentrale Steuerung einer Seite oder ganzer Sites ist per HTML nicht möglich Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Tutorium/ Cascading Stylesheets CSS: Syntax und Einbettung CSS-Stile haben • eine eigene, einfach strukturierte Syntax, • ein (hohe) Anzahl an möglichen Attributen (Eigenschaften) und • viele Möglichkeiten zur Zuweisung von Werten CSS-Formate können in HTML-Dokumente auf unterschiedliche Weise eingebettet werden: • • Innerhalb eines Elements durch Notierung von CSS-Stilen als Werte des HTML-Attributs style= Zentral: 1. im Kopf (Header) eines HTML-Dokuments für das ganze Dokument 2. in einer externen Stylesheet-Datei, die mit HTMLDokumenten verknüpft wird Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Tutorium/ Cascading Stylesheets CSS Syntax Die Grundsyntax eines CSS-Stils: attribut:wert Folgen mehrere Stile aufeinander; werden sie durch ein Semikolon getrennt: attribut:wert; attribut:wert; usw. Beispiele: font-weight:bold ... Schrift soll fett dargestellt werden font-family:Verdana; font-size:12px; ... Schriftfamile Verdana, Schriftgröße 12 Pixel Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Tutorium/ Cascading Stylesheets Eigenschaften und Werte Die Zahl der CSS-Eigenschaften ist hoch, und da CSS laufend weiterentwickelt wird, steigt sie an Werte können sein: • Feste Angaben wie z.B.: bold, normal (font-weight, Schriftgewicht) oder left, center, justify usw. • Maßangaben in unterschiedlichen Maßeinheiten, bei Schrift font-size, Zeilenabstand line-height usw., z.B.: mm, cm, px Pixel, pt Punkt, typographische Maßeinheit: 1/72 Inch, % • Farbwerte (bei u.a. color, background-color): Hexadezimal, z.B. #003366, RGB-Werte, z.B. rgb(0,51,102), oder Farbnamen • Weitere Wertetypen, wie z.B. URL's: url(img/pflanze.gif), u.a. bei background-image Siehe auch CSS-Stile bei SELFHTML http://selfhtml.teamone.de Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Tutorium/ Cascading Stylesheets CSS-Stile für einzelne HTML-Elemente definieren Mit dem Universalattribut (kann in jedem Tag verwendet werden) style= können unbegrenzt viele CSS-Stile für ein Element definiert werden: <p style="font-family:Verdana; font-size:12px">...</p> Mozilla Composer: • Automatische CSS-Generierung bei Formatierung über Menüs • Über Advanced Edit ... bzw. Advanced Properties ... , Registerkarte Inline-Style, können CSS-Stile erstellt werden Composer zeigt (fast) alle Stile richtig an Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Tutorium/ Cascading Stylesheets CSS-Stile zentral definieren Bei zentral definierten CSS-Stilen wird ein Selektor notiert, und anschließend zwischen geschweiften Klammern die Formatangaben Beispiel CSS-Stile für (alle) Absatz-Elemente: p {font-family:Verdana,sans-serif; font-size:12px} Beispiel body-Tag: body {margin:0px; padding:10px; color:#000000} Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Tutorium/ Cascading Stylesheets CSS-Stile zentral im head Mit dem style-Tag wird ein Bereich für die Notation von CSS-Stilen erzeugt. Die definierten Formate gelten jeweils für das komplette HTML-Dokument. <head> ... andere Head-Tags, wie z.B. <title> ... <style type="text/css"> body {margin:0px;padding:10px;color:#000000;font-size:12px; font-family:Verdana,sans-serif;line-height:18px} p {margin-top:10px;margin-bottom:10px} a {color:rgb(102,0,102);text-decoration:none;font-weight:bold} </style> </head> <body> ... Seiteninhalt Realisierung mit Mozilla Composer: • Die Stile müssen direkt im Quelltext eingetragen werden • Composer erkennt die CSS-Stile und passt nach Änderungen die Darstellung meist korrekt an Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Tutorium/ Cascading Stylesheets Zentrale Stile in externem Stylesheet CSS Stil-Definitionen werden in einer externen Stylsheet-Datei (Endung: .css) erstellt Das externe Stylesheet wird mit einem link-Tag im head des HTML-Dokuments verknüpft. Beispiel: <link rel="stylesheet" href="styles.css"> Realisierung mit Mozilla Composer: 1. Externes Stylesheet erstellen 2. Im Quelltextmodus im head das externe Stylesheet verknüpfen Composer reagiert nicht auf Änderungen des Stylesheets => Kontrolle mit Navigator od. Dokument in Composer neu laden Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Tutorium/ Cascading Stylesheets Externe Stylesheets <link rel="stylesheet" href="styles.css"> Die Verknüpfung href= muss, wie bei Links, ein gültiger Pfad (relativ od. absolut) sein • Beispiel oben: Das Stylesheet befindet sich im selben Verzeichnis wie die verknüpfte Datei CSS-Dateien sind reine Textdokumente, man kann sie mit einem beliebigen Text-Editor erstellen Spezielle CSS-Editoren erzeugen CSS-Dateien automatisch, sie haben teilweise eine Vorschaufunktion (z.B. Topstyle Lite) Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Tutorium/ Cascading Stylesheets Klassenstile Man kann eigene Klassenstile (Spezialformate) erzeugen und mit einem Selektor frei benennen Ein Klassenstil wird einem HTML-Element mit dem HTMLUniversal-Attribut class= zugewiesen Syntax: .selector { ... } - kann allen Elementen zugewiesen werden p.selector { ... } - kann nur Absätzen zugewiesen werden Beispiel: .meinlogo {font-size:30px;color:rgb(102,102,102);} Notation im HTML-Element: <p class="meinlogo">Tee</p> Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Tutorium/ Cascading Stylesheets Eigenschaftslose Elemente span und div span und div sind "eigenschaftslose" HTML-Tags, die auschließlich durch CSS-Angaben gesteuert werden CSS-Formatierung erfolgt durch die HTML-Attribute style= bzw. class= • span erzeugt ein Inline-Element <span style="font-weight:bold">fettes Wort</span> • div erzeugt ein Blockelement mit definierbarem Rand border, Außenabstand margin, Innenabstand padding, Breite width, Höhe height, usw. <div class="infobox">Extra-Infos</div> Hermann von Helmholtz-Zentrum für Kulturtechnik Übung: Wissensmanagement mit Neuen Medien Tutorium/ Cascading Stylesheets