![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Komplette Anleitung
Diese Seite wird nicht zur Online-Ansicht empfohlen und das Verhalten der Links wird fehlerhaft sein; sie ist aber nützlich, wenn Sie die Anleitung zu Cascading Style Sheets aus dem Webbrowser heraus drucken wollen. Beachten Sie auch, daß die Seiten über Style Sheets mit HomeSite hier nicht enthalten sind, sondern in der kompletten Anleitung der Anleitung zu HomeSite 2.5 nachzulesen sind.
Inhalt
Wenn Ihre Bildschirmauflösung auf 640x480 Pixel steht, sollten Sie vielleicht besser diesen Abschnitt ohne seitliches Menü ansehen.
Style Sheets mit HomeSite 2.5
Einführung
Style Sheets für das Web wurden schon vor einigen Jahren vorgeschlagen und werden seitdem entwickelt, aber erst seit kurzer Zeit haben sie breite Beachtung gefunden. Der Grund ist, daß Style Sheets nutzlos sind, solange sie nicht von Browsern unterstützt werden, und kein verbreiteter Browser tat das, bevor Microsoft teilweise Unterstützung von Cascading Style Sheets (CSS) in Version 3.0 des Internet Explorer anbot. Unterstützung von Style Sheets ist gegeben in IE 3.0 und höher sowie in Netscape 4.0 und höher. Dieser Abschnitt bietet einen Überblick über CSS, über die Vorteile und Einschränkungen beim Benutzen von Style Sheets und eine Anleitung zu deren Benutzung. Dieser Abschnitt basiert selbst auf Style Sheets, und wenn Sie mehrere Browser haben, sollten Sie vielleicht die Darstellung dieser Seiten z.B. in Internet Explorer (3.0 oder höher) und einem anderen Browser, der keine Style Sheets unterstützt (z.B. Netscape 3.0 oder früher) vergleichen. Beachten Sie, daß Sie die Auswirkungen der Style Sheets nur sehen könenn, wenn Sie die Seiten mit Internet Explorer oder Netscape Communicator 4.0 (oder höher) ansehen.
Vorteile von Style Sheets
Zuerst sollte gesagt werden, daß so ziemlich alles, was Sie mit Style Sheets anstellen können, auch mit konventionellen HTML Tags erreicht werden kann (es gibt einige Ausnahmen, und manche Sachen können nur mit kniffligen HTML-Tricks dargestellt werden). Trotzdem bleiben einige gewichtige Vorteile durch die Benutzung von Style Sheets: 1. Logische Trennung von Informationsstruktur und -formatierungIm Guide to HTML (engl. Original) wird HTML beschrieben als ein System zur Formatierung von Dokumenten; praktisch gesehen ist das korrekt, aber es entspricht nicht dem Grundgedanken von HTML. Ursprünglich wurde HTML als System zur Strukturierung von Informationen entwickelt, das den relativen Status von Informationsblöcken (Hauptüberschrift, Unterüberschrift, normaler Absatz usw.) auszeichnen und es dem lokalen Browser überlassen sollte, darüber zu entscheiden, welche Formatierung benutzt werden sollte, um die jeweilige Struktur darzustellen. Dieses Design resultierte aus der Idee, daß Web-Dokumente komplett unabhängig von speziellen Voraussetzungen der Plattform oder der Software sein sollten. Es passt auch zur traditionellen Beziehung zwischen Autoren und Herausgebern von gedruckten Texten, wo der Autor den Inhalt und die Informationsstruktur vorgibt und der Herausgeber entscheidet, wie der Text genau aussehen soll. Textverarbeitungen und Systeme zum Desktop Publishing haben allerdings viel von der Entscheidung über das Aussehen des Textes, genau wie über den Inhalt, zurückgegeben in die Hände der Autoren, und viele Autoren sind recht zurückhaltend, wenn sie jetzt diese Macht zurück in die Verantwortung der Webbrowser zurückgeben sollen. In der Konsequenz wurde HTML zu einer komplexen und recht unordentlichen Kombination von Tags zur Strukturierung und zur Formatierung, was das Verwalten einer großen und komplexen Website sehr schwierig macht (wenn Sie z.b. das FONT Tag benutzen und eine Schriftart auf einer Reihe von Seiten ändern wollen, können Sie Stunden damit zubringen, alle Stellen zu finden, wo das Tag auftaucht). Style Sheets erlauben es Ihnen nun, die Formatierungscodes, die auf mehrere Seiten angewandt werden, zu isolieren, so daß generelle stilistische Änderungen durch Editieren einer einzigen Datei erreicht werden können. 2. Reduzieren der nötigen Bandbreite und der LadezeitWenn ein Benutzer eine Webseite anfordert, dann muß der Browser den gesamten HTML-Code auf der Seite untersuchen, um sie darzustellen. Wenn Sie eine menge komplexer Formatierungen auf Ihrer Seite haben, muß der Browser auf jeder Seite sehr viel prüfen. Durch Auslagern dieser Formatierungsinformationen in ein einzelnes Style Sheet, auf das die einzelnen Seiten verweisen, reduzieren Sie die Menge von Code in den entsprechenden Seiten und verringern dadurch die Datenmenge, die übermittelt und überprüft werden muß. Das bewirkt schneller geladene Seiten und damit glücklichere Benutzer.
Einschränkungen durch Style Sheets
Nach dem Lesen der vorherigen Seite fragen Sie sich jetzt vielleicht "Warum soll ich dann nicht für alle Webseiten Style Sheets verwenden?" Der erste Teil der Antwort ist: das sollten wir wahrscheinlich tun. Der zweite Teil allerdings ist: es ist noch nicht so einfach, wie es wohl sein sollte. Die Probleme sind vielfältig und zusammenhängend. Selbst jetzt, wo CSS sowohl von Internet Explorer als auch von Netscape unterstützt werden, von denen einer von der großen Mehrheit der Websurfer benutzt wird, gibt es immer noch eine große Zahl von Benutzern, die ein ältere Version von Netscape als 4.0 einsetzen, und sogar manche, die noch IE 2.0 verwenden. Das ist an sich kein großes Problem, solange Sie dafür sorgen, daß Seiten, die Styles verwenden, auch von Browsern ohne Unterstützung für CSS akzeptabel dargestellt werden. Ein zweiter und ernsterer bedenklicher Punkt ist, daß bis jetzt die Implementierung von CSS zwischen Netscape und IE variiert und selbst zwischen IE 3 und 4. Um das zu umgehen haben Entwickler zwei Optionen:
Zusätzlich sollten Webautoren folgendes berücksichtigen:
Wenn Sie diesen zweiten Weg gehen wollen, werde ich später einige Tips geben, um Ihre Seiten kompatibel sowohl zu CSS- als auch nicht-CSS-Browsern zu gestalten, lassen Sie mich aber hier einige generelle Vorsichtsmaßnahmen darstellen:
Das Fazit lautet: wenn Sie im Internet Style Sheets verwenden wollen, müssen Sie bereit sein, den Preis zu zahlen, daß manche Benutzer (hoffentlich eine schnell sinkende Zahl) ziemlich karge Seiten zu sehen bekommen werden.
Einsatz von Styles
Styles können auf verschiedene Arten in Dokumente eingefügt werden:
Rangfolge von Styles
In manchen Fällen könnte es vorkommen, daß Sie unterschiedliche Funktionen von Styles für den gleichen Text durch eine Kombination eines "linked style sheet", eines "embedded style tag" und von "inline style attributes" verwenden. Wenn diese unterschiedlichen Angaben untereinander in Konflikt geraten, muß der Browser entscheiden, welcher Wert davon zu benutzen ist. Die Auswahl geschieht auf der Grundlage einer Regel der Rangfolge [precedence] (das ist es, was durch cascading Style Sheets ausgedrückt wird; die Styles bauen aufeinander auf). Die Rangfolge der Cascading Style Sheets ist wie folgt:
Es ist wichtig, sich diese Anordnung einzuprägen, damit Sie wissen, welche Werte von Style andere überschreiben.
Vererbung
Ein weiteres grundlegendes Konzept, bevor wir uns den Details der Definition von Styles eidmen. Wie wir auf den folgenden Seiten sehen werden, kann man Style-Angaben sowohl für linked style sheets als auch embedded style tags für verschiedene HTML-Elemente wie <p>, <h1>, <li>, <table> usw. machen. Einiges an zusätzlicher Flexibilität bei Styles kann durch Style-Vererbung (inheritance) erreicht werden. Vererbung bedeutet, daß Sie zusätzliche Klassen (classes) jedes Elements angeben können, und jede Klasse wird einige der Style-Angaben des Grundelements erben, solange nicht explizit neue Werte eingetragen werden oder die jeweilige Funktion nicht vererbt wird. (Die Tabelle der Eigenschaften (properties) zeigt, welche vererbt werden und welche nicht.) Beispiel
P erstellt einen Absatz, der so aussieht wie dieser... während
P.small einen Absatz mit diesem Aussehen produziert. Um den Basisabsatz zu erstellen, würden Sie einfach ein <p>-Tag benutzen, und zum Darstellen des kleinen, zentrierten Absatzes würden Sie das Attribut class=small hinzufügen (<p class=small>). Beachten Sie, daß auch generelle Klassen definiert werden können, die dann mit beliebigen HTML-Elementen Verwendung finden: Beispiel
.note Ist diese Klasse definiert, dann wird ein von <blockquote class=note> umgebener Absatz so wie dieser aussehen. (Die Umrandung ist nicht sichtbar, wenn Sie IE 3.x einsetzen) Achten Sie darauf, daß nur eine Ebene von Klassen erlaubt ist: eine Klasse P.note.red wird nicht funktionieren. Spezielle Klassen für LinksSie sollten sich auch der vordefinierten Klassen für das <a>-Tag bewusst sein:
A.link { color: #FFFF00 }
Wie bei jeder anderen Klassendefinition können Sie die Farbe und andere Werte so einstellen, wie Sie möchten; wir werden uns auf den folgenden Seiten ansehen, wie das gemacht wird.
Wenn Sie wollen, daß Links und bereits besuchte Links sich durch unterschiedliche Farben hervorheben, wie wir es von den meisten Webseiten gewohnt sind, dann müssen diese Klassen in Ihren Style Sheets definiert sein. Und es gibt noch eine Einschränkung: die Klasse A.active wird von Internet Explorer noch nicht unterstützt. Das ist schade, da der aktive Link bei Seiten in Frames nützlich sein kann, bei denen ein Frame den Inhalt eines Abschnitts darstellt (d.h. die Farbänderung des aktiven links würde automatisch den derzeitigen Standort des Benutzers in der Inhaltsliste kennzeichnen, ein Effekt, den Webdesigner normalerweise durch komplizierte und ineffiziente Mittel erreichen). Da die Klasse A.active aber möglicherweise nützlich werden kann, empfehle ich trotzdem, sie jetzt schon in Ihren Style Sheets einzubauen, damit sie schon da ist, wenn die Unterstützung dafür eintrifft -- bis dahin wird sie bestimmt nicht schaden. Es gibt einige andere vordefinierte "pseudo-classes" für die erste Zeile und den ersten Buchstaben von Textblocks, aber diese werden noch nicht von Internet Explorer unterstützt. Allgemein gesprochen ist Vererbung eine machtvolle Abkürzung zum Erstellen von Variationen eines Styles, in der gleichen Art, in der Vererbung es objekt-orientierten Programmierern erlaubt, effizient Variationen von Objekten zu erstellen (Style Sheets zu erstellen ist eigentlich eine sehr einfache Form des objekt-orientierten Programmierens). Gelegentlich kann aber die Vererbung zu einem Ärgernis werden, da bestimmte Eigenschaften vererbt werden, die Sie eigentlich nicht haben wollten (wir werden später ein Beispiel sehen).
Styles definieren
Wie Sie vielleicht schon beim Betrachten der Beispiele auf den vorhergehenden Seiten gesehen haben, werden Styles angegeben als Paare property: value (Eigenschaft: Wert), die durch Strichpunkte getrennt sind. Jeder Wert kann durch Anführungszeichen umgeben sein und Werte aus mehreren Wörtern wie "Trebuchet MS" sollten es immer sein; daran sollten Sie besonders dann denken, wenn Sie einen HTML-Editor verwenden, um Eigenschaften und Werte automatisch einzusetzen, da viele die Anführungszeichen weglassen. Inline StylesBei inline styles wird die Textkette aus den Paaren property: value in Anführungszeichen eingeschlossen und als Wert für das Attribut style gesetzt: <li style="font-size: 10pt; font-weight: bold"> Linked und Embedded StylesBei linked style sheets oder embedded style tags werden die Style-Angaben für verschiedene selectors (jedes HTML-Element kann ein Selector sein) gesetzt. In diesem Fall sind die Paare property: value der Style-Definition in spitzen Klammern (braces) eingeschlossen, die nach dem Selector stehen:
H2 Beachten Sie, daß für den Fall, daß einer der Werte aus mehreren Wörtern besteht (wie im Fall der Werte für font-family im obigen Beispiel) jeder Wert in der Liste für diese Eigenschaft von Anführungszeichen umgeben sein sollte. Erinnern Sie sich auch daran, daß Sie mehrere Klassen (aber nur eine Ebene tief) für einen Selector angeben können, um die Styleangaben zu variieren, wie wir es bei der Erklärung von Vererbung sahen. Styles im KontextSchließlich sollten Sie auch wissen, daß sie contextual Styles erstellen können, indem Sie zwei Selectors kombinieren: P STRONG { color: #FF0000 } Dieser Style würde nur Text betreffen, der innerhalb eines STRONG Elements steht und dieses wiederum in einem PARAGRAPH Element. Wenn Sie möchten, daß mit STRONG ausgezeichneter Text vom Kontext unabhängig immer gleich aussieht, dann erstellen Sie einfach ein simples Style mit STRONG als Selector: STRONG { color: #FF0000 } In beiden Fällen müssen Sie wissen, daß jede andere Styleangabe für das Element, in dem der Text mit Auzeichnung STRONG auftaucht, wirksam bleibt, solange die Styleangabe für STRONG diese nicht explizit überschreibt.
Fonts: Eigenschaften und Werte
Unten finden Sie eine Tabelle der Style-Eigenschaften und -Werte für Fonts (Schriftarten) -- andere Eigenschaften und Werte sind auf den folgenden Seiten aufgeführt. (Ich habe hier nur Eigenschaften und Werte aufgenommen, die im Moment von Internet Explorer und Netscape erkannt werden -- weitere werde ich hinzufügen, sobald sie unterstützt werden) Häufig benutzte Eigenschaften und Werte für Cascading Style Sheets
Der spezielle Style @font-face wird wahrscheinlich in der Final-Version von IE4 implementiert sein, vorausgesetzt, er wird vom World Wide Web Consortium akzeptiert; im Moment konnte ich noch keine Informationen über den Aufbau oder Beispiele dieser ".eot" (Open Type) Dateien finden -- besuchen Sie Microsoft's Typography Page, um sich über die Entwicklung zu informieren; ich werde diese Seite aktualisieren, wenn mehr Informationen verfügbar werden.
Text: Eigenschaften und Werte
Unten sehen Sie die Style-Eigenschaften und Werte für Text. (Ich habe hier nur Eigenschaften und Werte aufgenommen, die im Moment von Internet Explorer und Netscape erkannt werden -- weitere werde ich hinzufügen, sobald sie unterstützt werden) Häufig benutzte Eigenschaften und Werte für Cascading Style Sheets
Farben und Hintergrund: Eigenschaften und Werte
Unten finden Sie eine Tabelle der Style-Eigenschaften und -Werte für Farben und Hintergrund -- andere Eigenschaften und Werte sind auf den folgenden Seiten aufgeführt. (Ich habe hier nur Eigenschaften und Werte aufgenommen, die im Moment von Internet Explorer und Netscape erkannt werden -- weitere werde ich hinzufügen, sobald sie unterstützt werden) Häufig benutzte Eigenschaften und Werte für Cascading Style Sheets
Boxen: Eigenschaften und Werte
Unten finden Sie eine Tabelle der Style-Eigenschaften und -Werte für Boxen -- andere Eigenschaften und Werte sind auf den folgenden Seiten aufgeführt. (Ich habe hier nur Eigenschaften und Werte aufgenommen, die im Moment von Internet Explorer und Netscape erkannt werden -- weitere werde ich hinzufügen, sobald sie unterstützt werden) Häufig benutzte Eigenschaften und Werte für Cascading Style Sheets
Klassifizierungen: Eigenschaften und Werte
Unten finden Sie eine Tabelle der Style-Eigenschaften und -Werte für Klassifizierungen -- andere Eigenschaften und Werte sind auf den folgenden Seiten aufgeführt. (Ich habe hier nur Eigenschaften und Werte aufgenommen, die im Moment von Internet Explorer und Netscape erkannt werden -- weitere werde ich hinzufügen, sobald sie unterstützt werden) Häufig benutzte Eigenschaften und Werte für Cascading Style Sheets
Positionierung: Eigenschaften und Werte
Unten finden Sie eine Tabelle der Style-Eigenschaften und -Werte für Positionierungen -- andere Eigenschaften und Werte sind auf den folgenden Seiten aufgeführt. (Ich habe hier nur Eigenschaften und Werte aufgenommen, die im Moment von Internet Explorer und Netscape erkannt werden -- weitere werde ich hinzufügen, sobald sie unterstützt werden) Häufig benutzte Eigenschaften und Werte für Cascading Style Sheets
Drucken: Eigenschaften und Werte
Unten finden Sie eine Tabelle der Style-Eigenschaften und -Werte zum Drucken -- andere Eigenschaften und Werte sind auf den folgenden Seiten aufgeführt. (Ich habe hier nur Eigenschaften und Werte aufgenommen, die im Moment von Internet Explorer und Netscape erkannt werden -- weitere werde ich hinzufügen, sobald sie unterstützt werden) Häufig benutzte Eigenschaften und Werte für Cascading Style Sheets
Filter: Eigenschaften und Werte
Unten finden Sie eine Tabelle der Style-Eigenschaften und -Werte für Filterungen. (Ich habe hier nur Eigenschaften und Werte aufgenommen, die im Moment von Internet Explorer und Netscape erkannt werden -- weitere werde ich hinzufügen, sobald sie unterstützt werden) (Beachten Sie, daß die Filterung, wie sie in IE 4.0 implementiert ist, scheinbar nur funktioniert, wenn Sie die Filtereigenschaften in einer Klasse angeben [z.B. .dropshadow] und darauf mit einem TD, DIV oder SPAN Tag mit dem passenden Attribut 'class' zugreifen. Bei manchen Filten müssen Sie auch Eigenschafen für Positionierung, Höhe und Breite angeben, um sie zum Arbeiten zu bewegen.) Häufig benutzte Eigenschaften und Werte für Cascading Style Sheets
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() ![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Beispiele für Filter | Bitte beachten: wenn Sie nicht IE 4.0+ verwenden, können Sie die Filtereffekte nicht sehen. |
Alpha Text -- Beispielbild: ![]() |
|
Blur Text -- Beispielbild: ![]() |
|
Chroma Text -- Beispielbild: ![]() |
|
Dropshadow Text -- Beispielbild: ![]() |
|
Fliph Text -- Beispielbild: ![]() |
|
Flipv Text -- Beispielbild: ![]() |
|
Glow Text -- Beispielbild: ![]() |
|
Greyscale Text -- Beispielbild: ![]() |
|
Invert Text -- Beispielbild: ![]() |
|
Light Text -- Beispielbild: ![]() |
|
Mask Text -- Beispielbild: ![]() |
|
Shadow Text -- Beispielbild: ![]() |
|
Wave Text -- Beispielbild: ![]() |
|
X-ray Text -- Beispielbild: ![]() |
.alpha { filter: alpha(Opacity=75,FinishOpacity=15,Style=1); width: auto; height: auto; position: relative; } .blur { filter: blur(Add=1,Direction=90,Strength=10); width: auto; height: auto; position: relative; } .chroma { filter: chroma(Color=#ffff00); width: auto; height: auto; position: relative; } .dropshadow { line-height: 140%; filter: DropShadow(Color=#003399,OffX=3,OffY=3,Positive=1); width: auto; height: auto; position: relative; } .fliph { filter: fliph; width: auto; height: auto; position: relative; } .flipv { filter: flipv; width: auto; height: auto; position: relative; } .glow { font: Bold medium; filter: glow(Color=#00FF00,Strength=30); width: auto; height: auto; position: relative; } .greyscale { filter: gray; width: auto; height: auto; position: relative; } .invert { filter: invert; width: auto; height: auto; position: relative; } .light { filter: light; width: auto; height: auto; position: relative; } .mask { filter: mask(Color=#009933); width: auto; height: auto; position: relative; } .shadow { font: Bold x-large/140% 'Arial', 'sans-serif'; color: #FFFF00; filter: shadow(Color=#9900FF,Direction=135); width: auto; height: auto; position: relative; } .wave { filter: wave(Add=1,Freq=10,Phase=90,LightStrength=10,Strength=10); width: auto; height: auto; position: relative; } .x-ray { filter: xray; width: auto; height: auto; position: relative; } DIV { font: Bold medium/140% 'Arial', 'sans-serif'; }
Unten finden Sie andere Style-Eigenschaften und -Werte, die auf den vorherigen Seiten nicht enthalten waren. (Ich habe hier nur Eigenschaften und Werte aufgenommen, die im Moment von Internet Explorer und Netscape erkannt werden -- weitere werde ich hinzufügen, sobald sie unterstützt werden)
Legende der Tabelle | |
![]() ![]() ![]() |
pt = points (Punkte) in = inches (Zoll) cm = centimeters (Zentimeter) px = pixels (Pixel) em = Höhe der Schriftart des jeweiligen Elements (die Einheit em wird noch nicht häufig unterstützt und sollte sehr vorsichtig eingesetzt werden) |
Eigenschaft | Beschreibung | Werte | Beispiel | |
---|---|---|---|---|
Andere Eigenschaften | ||||
![]() |
@import (wird nicht vererbt) | importiert ein anderes Style Sheet in das aktuelle; muß erscheinen, bevor irgendwelche Styles definiert werden; neue Eigenschaften und Werte überschreiben die im importierten Style Sheet | @import: url(url) | @import url(stylesheet2.css) |
![]() |
cursor (wird vererbt) | Gibt das Aussehen des Cursors an, wenn er im Element plaziert wird | auto (Standard, vorgegeben vom Browser / dem Betriebssystem); crosshair (Fadenkreuz); default (Standard); hand (Hand); move (Verschieben); e-resize (rechts Größe ändern); ne-resize (rechts oben Größe ändern); nw-resize (links oben Größe ändern); n-resize (oben Größe ändern); se-resize (rechts unten Größe ändern); sw-resize (links unten Größe ändern); s-resize (unten Größe ändern); w-resize (links Größe ändern); text (Textcursor); wait (Sanduhr); help (Hilfecursor) | { cursor: help } |
Der effektive Einsatz von Style Sheets beruht zum Teil auf Grundregeln des guten Web-Designs. Sie sollten besonders daran denken, daß effektive Seiten auf jedem System, das Ihre Benutzer haben, funktionieren muss; und das ist ein großer Unterschied zu dem, was auf Ihrem (zweifellos auf dem neuesten Stand befindlichen und sorgfältig konfigurierten) System funktioniert. Lassen Sie uns einige dieser Grundlagen im Sinne des Schreibens guter Style Sheets betrachten.
Sie werden bemerkt haben, daß in jedem meiner Beispiele, in dem eine Schriftfamilie angegeben war, mehrere Werte angegeben sind. Der Grund ist, daß nur die Fonts, die auf der Maschine des Benutzers installiert sind, angezeigt werden können; und Sie können sich nicht darauf verlassen, daß alle Benutzer die gleichen Fonts haben. Es wird natürlich immer einen Standardwert geben, auf den der Browser zurückgreifen kann, wenn es Ihnen aber auf einen bestimmten Font ankommt, dann ist es schon etwas Aufwand wert, daß das, was der Benutzer sieht, dem, was Sie wollten möglichst gut entspricht.
Zuerst müssen Sie wissen, daß Sie, quasi als letzten Ausweg, eine generelle Schriftfamilie genau wir spezielle Fonts angeben können. Die erlaubten Schriftfamilien sind:
Eine von diesen sollte eigentlich immer die letzte Option für den Wert font-family. Fonts des Typs 'Monospaced' verwenden den Platz sehr ineffizient, sind nicht einfach zu lesen und sollten deshalb sparsam eingesetz werden, z.B. für spezielle Effekte oder für Code-Beispiele. Fantasy Fonts enthalten generell spezielle Symbole, die sich von Schrift zu Schrift stark unterscheiden und sind generell nur zu dekorativen Zwecken brauchbar (obwohl die Symbole sehr nützlich sein können, wenn Sie genau wissen, daß alle Benutzer den gleichen Font haben). Kursive Fonts sind i.A. weniger gut lesbar als Druckschriften und sollten deshalb ebenfalls sparsam verwendet werden. Es bleiben 'serif' und 'sans-serif' als die Familien mit dem besten Nutzen. Einige Studien lassen den Schluss zu, daß 'sans-serif' Fonts generell ein wenig schneller als 'serif' Fonts gelesen werden können und auch mit weniger Fehlern, aber die Unterschiede sind so gering, daß die Auswahl eigentlich eine ästhetische sein muß.
Der nächste Schritt ist es, sich zu überlegen, welche Fonts wohl am wahrscheinlichsten auf den meisten Maschinen installiert sind. Für Benutzer von Windows sind das sicherlich Arial, Courier und Times New Roman, aber Times New Roman ist ohnehin der Standardfont der meisten Browser. Zusätzlich fügt das Installieren von Internet Explorer auch noch die folgenden Schriften in Windows ein:
(Dank an Jim Tom Polk für das Zusammenstellen dieser Liste.)
Microsoft hat noch einige andere Fonts "für das Web", so wie Trebuchet MS und Georgia in der Site Builders Workshop Gallery verfügbar gemacht, und ich nehme an, daß diese Teil der Standardinstallation in zukünfigen Versionen werden. Darüber hinaus kann die Ausstattung mit Fonts stark variieren, abhängig davon, welche Software der Benutzer installiert hat, man kann sich also eigentlich nur auf generelle Font-Familien verlassen. Bei Benutzern von Betriebssystemen ausser Windows sind generelle Font-Familien wirklich das einzige, auf das man sich verlassen kann.
Die neue Eigenschaft @font-face (wenn denn unterstützt) oder Netscape's Alternative, bieten Ihnen die Möglichkeit, den ausgewählten Font denjenigen Benutzern zugänglich zu machen, die ihn nicht installiert haben. Zwei Vorsichtsmaßnahmen sind aber nötig: 1) der Font sollte plattformübergreifend funktionieren, was Microsoft versucht sicherzustellen; 2) es könnte den Benutzer vielleicht nicht gefallen, ein Dutzend neuer Fonts auf ihrem System zu haben, und ein ganzes Dutzend unterschiedlicher Fonts zu verwenden, ist ohnehin keine gute Idee (siehe auch im nächsten Absatz).
Eine letzte Warnung zu Fonts: wie bei den ersten großen Textverarbeitungen ist es auch bei Style Sheets so, daß Sie vielleicht versuchen, für jedes Element die Schriften zu ändern, seinfach nur weil es so simpel ist. Das ist keine gute Idee im Sinne der Lesbarkeit und der effektiven Kommunikation; häufige Änderungen der Schriften verlangsamen das Lesen und erhöhen die Wahrscheinlichkeit, sich zu 'verlesen'. Legen Sie sich auf höchstens zwei oder drei Fonts pro Seite fest und wechseln Sie nicht von Seite zu Seite die Schriften solange es keinen guten Grund gibt. Kleine Änderungen der Schriftgröße und, in geringerem Umfang, der Text- und der Hintergrundfarbe sind bessere Methoden, unterschiedliche Arten und Tiefen von Informationen darzustellen.
Die Regeln für den effektiven Einsatz von Farben in Style Sheets sind die gleichen wie die für Webseiten im Allgemeinen: für eine konsistente Darstellung sollten Sie die 216-Farben safety palette einsetzen, wie ich es im HTML Style Guide erkläre. Sie sollten es vermeiden, die Farbe jedes Selectors zu ändern, nur weil es doch so einfach ist. Farbe ist ein starkes visuelles Signal, um unterschiedliche Arten von Informationen zu markieren, aber nur dann, wenn sie vorsichtig und einheitlich eingesetzt wird.
Darüber hinaus sollten Sie sorgfältig sein beim Einsatz von Hintergrund- und Vordergrundfarbe, wenn Sie glauben, daß Benutzer die Seiten aus einem Browser heraus drucken wollen. Heller Text auf dunklem Hintergrund sieht oft gut auf der Anzeige aus, wird aber auf einem Schwarz-Weiß-Drucker vielleicht als schwarzes Rechteck gedruckt.
1
(Es gibt keine Bilder in der obigen Abbildung. In der style sheet gallery auf der Website von Microsoft finden Sie noch mehr Beispiele.)
Dummerweise wird es hier kompliziert mit Style Sheets, teilweise, da CSS immer noch eine junge Technologie ist und die Implementierung der CSS-Unterstützung nirgends komplett oder standardisiert ist. IE 3.0 behandelte Overlays Streng mit Hilfe der Eigenschaft 'Margin' von Boxen. Später haben sich Microsoft und Netscape darauf geeinigt, daß Overlays durch Positionieren erreicht werden sollten; sie haben sich aber (noch) nicht darauf geeinigt, wie Positionieren genau definiert sein soll. (Positionieren in den drei Browsern wird detaillierter auf den folgenden Seiten behandelt.) Das bedeutet, daß Sie, wenn Sie Positionieren verwenden wollen, separate Style Sheets für jeden Browser schreiben müssen und ein JavaScript einsetzen, um die Seite zu zwingen, je nach Browser des Benutzers das jeweils passende einzusetzen.
Für Overlays müssen Sie ohnehin Scripting einsetzen, da Browser ohne CSS-Unterstützung einfach beide Textblöcke nacheinander darstellen würden, was besonders bei schattiertem Text problematisch ist, da das Ergebnis eine einfache Wiederholung des Absatzes wäre. Die Lösung ist es, ein JavaScript einzusetzen, um den Text mit Overlay nur dann auszugeben, wenn der Browser CSS unterstützt, und sicherzustellen, daß die Seite auch ohne das Overlay immer noch verständlich, wenn auch nicht vollständig, ist. Wir werden uns bald ein Script ansehen, das genau diese Aufgaben übernimmt.
Einige andere Anmerkungen zu Effekten, die Overlays von einem Textblock über einen anderen verwenden:
stellen Sie sicher, daß Sie mit Textblocks arbeiten, die kurz genug sind, damit sie bei keiner Auflösung bzw. bei keiner vernünftigen Breite des Fensters umgebrochen werden
Stellen Sie das Overlay-Element in eine Tabelle mit festgelegter Breite, um Zeilenumbrüche zu verhindern; normalerweise rate ich aber vom Einsatz solcher Tabellen ab, wenn Sie die Breite nicht unter etwa 470 Pixeln halten, da sonst einige Benutzer vielleicht scrollen müssen, was unerwünscht wäre. Und wenn Sie eine solche geringe Breite einsetzen, dann sehen Benutzer mit hochauflösendem Bildschirm viel freie Fläche auf der Seite.
Beachten Sie bitte, daß die Methoden zum Positionieren für Netscape und Internet Explorer, die auf dieser und den folgenden Seiten beschrieben werden, nicht die einzigen Wege zum Erstellen von Overlays sind. Der Einsatz der beschriebenen Methoden erlaubt es Ihnen aber, eine einzige Seite zu schreiben, die mit allen drei Browsern funktioniert, vorausgesetzt, Sie benutzen ein JavaScript, um das für den jeweiligen Browser passende Style Sheet zu laden und um die Vordergrundebene zu schreiben (diese Scripts werden nach der Erklärung der Positionierung vorgestellt).
Das Erstellen von Overlays in Netscape 4.0(x) erfordert den Einsatz von relativer und absoluter Positionierung (positioning), Randeinstellungen (margins) und Ebenen (layers).
Der Hintergrundteil des Overlays sollte in einem Element (oder einer Klasse) stehen, das relativ positioniert ist (relativ zum Verlauf des Seiteninhalts):
.hugeding { font: 80pt 'Wingdings', 'fantasy'; color: #FFFF99; position: relative; }
Der Vordergrundteil des Overlays sollte in einem Element (oder einer Klasse) stehen, das absolutel positioniert ist (innerhalb des Hintergrundelements), obwohl die Positionierung auch im Layer-Element erfolgen kann (siehe unten):
.shadow3 { font: Bold x-large 'sans-serif'; color: #339999; position: absolute; }
Sie werden auch einige spezielle layer-Angaben im Style Sheet brauchen. Die Layer sind sehr wichtig, und Overlays in Netscape funktionieren nicht ohne sie. Hier sind die Layer-Angaben für das Overlay-Beispiel auf der vorherigen Seite:
#layer1 { position: relative; } #layer3 { position: absolute; left: 40pt; top: 30pt; }
Beachten Sie, daß die Layer mit größerer Nummer über solchen mit niedriger Nummer dargestellt werden. Elemente erscheinen als Standard im Layer mit der niedrigsten Nummer. Der zweite Layer hätte auch layer2 sein können, aber ich hatte bereits einen layer2 für einen anderen Zweck im Style Sheet. Beachten Sie auch die Postitionierung der Layer für Hinter- und Vordergrund und daß die Position des Vordergrundelements mit den Eigenschaften top und left eingestellt wird; die Werte sind am besten durch Testen herauszufinden. Sie können auch Positionieren für das Element selbst angeben, indem Sie die Eigenschaften margin-top und margin-left einsetzen, aber die Ergebnisse waren weniger gleichmässig. Wenn Sie diese Randpositionen im Element einsetzen, dann werden sie zusätzlich zu den Werten für 'top' und 'left' im Layer angewandt.
Der Inhalt, der mit einem Overlay versehen werden soll, sollte innerhalb des Hintegrundelements stehen, durch Verwenden des <span>-Tags:
<p class=hugeding> 1<br> <span class=shadow3 id=layer3> Name </span> </p>
Achten Sie auf das Attribut class und auch das Atrribut id; diese geben den Style des Vordergrundelements und den Layer an.
Zusätzliche Bemerkungen: die Technik für Overlays mit Hilfe von layer ist eine Erfindung von Netscape und ist nicht Teil der CSS1 Spezifikationen; ich glaube, daß das World Wide Web Consortium offiziell die Ablehnung der Layer-Methode verkündet hat und den Einsatz der Eigenschaft Z-index empfiehlt (wir werden diese Methode auf der folgenden Seite über IE 4.0 ansehen). Ich habe keinen Hinweis darauf, daß Netscape plant, ihren Ansatz zur Positionierung zu ändern, aber ich werde Sie auf dem laufenden halten.... |
Beachten Sie bitte, daß die Methoden zum Positionieren für Netscape und Internet Explorer, die auf dieser und den folgenden Seiten beschrieben werden, nicht die einzigen Wege zum Erstellen von Overlays sind. Der Einsatz der beschriebenen Methoden erlaubt es Ihnen aber, eine einzige Seite zu schreiben, die mit allen drei Browsern funktioniert, vorausgesetzt, Sie benutzen ein JavaScript, um das für den jeweiligen Browser passende Style Sheet zu laden und um die Vordergrundebene zu schreiben (diese Scripts werden nach der Erklärung der Positionierung vorgestellt).
Das Erstellen von Overlays in IE 4.0(x) erfordert den Einsatz von relativer und absoluter Positionierung, margins und Layern.
Wie bei Netscape 4.0 sollte der Hintergrundteil des Overlays in einem Element (oder einer Klasse) stehen, das relativ (zum Inhalt der Seite) positioniert ist:
.hugeding { font: 80pt 'Wingdings', 'fantasy'; color: #FFFF99; position: relative; }
Der Vordergrundteil des Overlays sollte in einem Element (oder einer Klasse) stehen, das absolut psoitioniert ist (innerhalb des Hintergrundelements), aber da es positioniert wird, wollen Sie vielleicht eine spezielle Klasse für diesen Zweck erstellen:
.shadow3 { font: Bold x-large 'sans-serif'; color: #339999; position: absolute; left: 50pt; top: 35pt; z-index: 3; }
Wie Sie sehen, funktioniert hier das Positionieren durch Einsatz der Eigenschaften left und top; die Werte ermitteln Sie am besten durch Ausprobieren. Beachten Sie auch die Eigenschaft Z-index. Wie bei den Layern in Netscape werden auch hier die Elements mit größeren Werten von Z-index über Elementen mit niedrigern Werten dargestellt (der Standardwert ist 1).
Der Inhalt, der mit einem Overlay versehen werden soll, sollte innerhalb des Hintergrundelements stehen, indem Sie das Tag <span> verwenden:
<p class=hugeding> 1<br> <span class=shadow3 id=layer3> Name </span> </p>
Beachten Sie das Attribut class; es gibt den Style für das Vordergrundelement an. Das Atrribut id=layer3 ist für Netscape und IE wird es ignorieren, wenn kein #layer3 im Style Sheets für IE vorhanden ist.
Beachten Sie bitte, daß die Methoden zum Positionieren für Netscape und Internet Explorer, die auf dieser und den folgenden Seiten beschrieben werden, nicht die einzigen Wege zum Erstellen von Overlays sind. Der Einsatz der beschriebenen Methoden erlaubt es Ihnen aber, eine einzige Seite zu schreiben, die mit allen drei Browsern funktioniert, vorausgesetzt, Sie benutzen ein JavaScript, um das für den jeweiligen Browser passende Style Sheet zu laden und um die Vordergrundebene zu schreiben (diese Scripts werden nach der Erklärung der Positionierung vorgestellt).
Das Erstellen von Overlays in IE 3.0(x) erfordert eine etwas andere Strategie als für IE 4.0 oder Netscape 4.0, weil IE 3.0 kein Positionieren in der gleichen Art kennt. Stattdessen werden Sie die Eigenschaft margin von Box nutzen müssen (margin-top, margin-left usw.).
Der Hintergrundteil des Overlays kann ein beliebiges Element oder eine Klasse sein:
P.hugeding { font: 80pt 'Wingdings', 'fantasy'; color: #FFFF99; }
(Beachten Sie: wenn das verwendete Element eine Hintergrundfarbe hat, müssen Sie ein anderes Element für den Vordergrund verwenden (eines ohne Hintergrundfarbe) oder die Farbe wird das Hintergrundelement komplett verdecken.
Von der Überlegung zur Hintergrundfarbe abgesehen kann der Vordergrundteil des Overlays jedes Element sein, aber da es positioniert wird, wollen Sie vielleicht eine spezielle Klasse für diesen Zweck erstellen:
.shadow3 { font-family: "'Trebuchet MS', 'Arial', 'Sans-Serif'"; font-weight: bold; font-size: 30pt; color: #336666; text-align: left; margin-top: -70pt; margin-left: 38pt; }
Die Positionierung verwendet hier die Eigenschaften margin-left und margin-top; die Werte ermittelt man am besten durch Ausprobieren.
Der Inhalt, der mit einem Overlay versehen werden soll, sollte nach dem Hintergrundelement angeordnet werden, in dem Sie das <p>-Tag mit der passenden Klasse verwenden:
<p class=hugeding> 1 </p> <p class=shadow3> Name </p>
Beachten Sie das Attribut class.
Zusätzliche Bemerkungen:
|
Overlays, die mit CSS erstellt wurden, sehen i.A. in Browsern, die keine Style Sheets unterstützen, ziemlich seltsam, wenn nicht verwirrend aus, deshalb ist es eine gute Idee, ein Script zu benutzen, um das Vordergrundelement nur zu schreiben, wenn es der Browser unterstützt. Hier ist ein JavaScript, das diesen Job für Netscape 4.0 und IE 4.0 übernimmt:
<script language="JavaScript"> //dieses Script schreibt den Vodergrundlayer eines Overlays, //falls der Benutzer Netscape 4.0+ oder IE 4.0+ hat <!-- var browser=navigator.appName; var version=navigator.appVersion var ver1=version.substring(0,1) if (((browser == "Netscape") && (ver1 >= 4)) | ((browser == "Microsoft Internet Explorer") && (ver1 >= 4))) { document.write("<span class=shadow3 id=layer3>Hier den Text für das Overlay einsetzen</span>") } //--> </script>
Da Overlays in IE 3.0 am besten in zwei separaten Elementen ausgeführt werden (dagegen in Netscape und IE 4.0 das Vordergrund in einem <span> innherhalb des Hintergrundelements), brauchen Sie ein separates Script, um den Vordergrund für IE 3.0 zu schreiben; hier ist eins:
<script language="JavaScript"> //this script writes the foreground layer of an overlay for IE 3.0x <!-- var browser=navigator.appName; var version=navigator.appVersion var ver2=version.lastIndexOf("MSIE") var ver3=version.substring(ver2+5,ver2+6) if ((browser == "Microsoft Internet Explorer") && (ver3 == 3)){ document.write('<p class=shadow3>Overlay text here</p>') } // --> </script>
Hier sehen Sie jetzt den kompletten Code für das Beispiel zu Overlays, das wir vor einigen Seiten schon mal hatten, unten nochmal angezeigt:
1
<p class=hugeding>1 <br> <script language="JavaScript"> <!-- var browser=navigator.appName; var version=navigator.appVersion var ver1=version.substring(0,1) if (((browser == "Netscape") && (ver1 >= 4)) | ((browser == "Microsoft Internet Explorer") && (ver1 >= 4))) { document.write("<span class=shadow3 id=layer3>Name</span>") } //--> </script> </p> <script language="JavaScript"> <!-- var browser=navigator.appName; var version=navigator.appVersion var ver2=version.lastIndexOf("MSIE") var ver3=version.substring(ver2+5,ver2+6) if ((browser == "Microsoft Internet Explorer") && (ver3 == 3)){ document.write('<p class=shadow3>Name</p>') } // --> </script>
Zusätzlich zu Overlays werden Sie auch ein Script brauchen, um die Links zu den einzelnen Style Sheets zu setzen. So sieht eine erweiterte und modifizierte Version des Scripts zum Ausführen von Overlays aus:
<script language="JavaScript"> // dieses Script ermittelt, ob der Browser des Benutzers // IE3, IE4 oder Netscape 4 ist und lädt für jeden // ein anderes Style Sheets, bei anderen Browsern // tut es nichts <!-- var browser=navigator.appName; var version=navigator.appVersion var ver1=version.substring(0,1) var ver2=version.lastIndexOf("MSIE") var ver3=version.substring(ver2+5,ver2+6) function itsNetscape() { document.write('<LINK REL=StyleSheet HREF="styles/nn4.css" TYPE="text/css">') } function itsMsie() { if (browser == "Microsoft Internet Explorer") ieVersion() } function ieVersion(){ if (ver1 >= 4) document.write('<LINK REL=StyleSheet HREF="styles/ie4.css" TYPE="text/css">') if (ver3 == 3) document.write('<LINK REL=StyleSheet HREF="styles/ie33.css" TYPE="text/css">') } if ((browser == "Netscape") && (ver1 >= 4)){ itsNetscape() } else{ itsMsie() } // --> </script>
(an dieser Stelle dankt mir Robert Crooks, daß ich ihm dabei geholfen habe, einige Details dieses Scripts zu verfeinern; ich spare mir das jetzt ;-) )
Bemerkung: Sie müssen die kursiven Teile des Scripts durch die passenden Pfadangaben und Dateinamen für Ihre Style Sheets ersetzen.
In der Tabelle von Eigenschaften und Werten und in den Beispielen auf verschiedenen Seiten werden Sie festgestellt haben, daß die Werte für viele Attributes in einer von mehreren Einheiten angegeben sind, gewöhnlich:
In den meisten Fällen macht es keinen großen Unterschied, welchen Einheit Sie benutzen, solange sie sich damit auskennen (Autoren in den USA bevorzugen z.B. wohl inches, während die in den meisten anderen Ländern Zentimetern den Vorrang geben werden; die meisten von uns sind es gewohnt, Schriftgrößen in Punkt anzugeben, obwohl scheinbar nur wenige wissen, was ein Punkt in diesem Fall ist -- 1/72 inch). Eine Sache sollte man aber bemerken. Im Gegensatz zu den ersten drei Einheiten geben Pixel keine absolute Entfernung an; ein Pixel ist vielmehr die Einheit der Anzeigehöhe bzw. -breite, die von der eingestellten Auflösung der Anzeige abhängt. Die Einstellungen der Auflösung unterscheiden sich stark, viele Benutzer haben 640x480 Pixel, während durch die stärkere Verbreitung von 17" oder größeren Monitoren und besseren Grafikkarten Auflösungen von 1024x768 oder mehr nicht mehr ungewöhnlich sind. Aus diesem Grund sind Pixelwerte generell nicht zu empfehlen. Pixel können aber in manchen Fällen doch das passende Mittel sein, wie z.B. beim Overlay von Text über ein Bild, da Bildgrößen in Pixeln angegeben werden. Es ist aber trotzdem wichtig, Ihre Seiten bei unterschiedlichen Auflösungen zu testen.
Wenn Sie ein Benutzer von Allaire HomeSite sind, sollten Sie sich den Abschnitt über Style Sheets in der Anleitung zu HomeSite ansehen. Es gibt auch einige nützliche Dokumente und Quellen zu Cascading Style Sheets im World Wide Web:
Unten sehen Sie den kompletten Inhalt der Dateien stylesheets.css und n_stylesheets.css (für Netscape), die für diesen Abschnitt verwendet werden. Ich habe sie als Besipiele eingebaut, die Sie studieren und mit denen Sie experimentieren können, wenn Sie Ihre eigenen Style Sheets entwickeln.
Version für Internet Explorer 4.0 |
---|
.StyleSheetHiddenPlaceHolder { display: none; } H1 { font-family: 'Trebuchet MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: xx-large; color: #660066; text-align: Left; position: relative; } H2 { font-family: 'Trebuchet MS', 'Arial', 'Helvitica'; font-weight: bold; font-size: 18pt; color: #660066; text-align: Center; position: relative; } H3 { font-family: 'Trebuchet MS', 'Arial', 'Helvitica'; font-weight: bold; font-size: 16pt; color: #660066; position: relative; } H4 { font-family: 'Trebuchet MS', 'Arial', 'Helvitica'; font-weight: bold; font-size: 11pt; color: #660066; background: transparent; width: auto; height: auto; position: relative; left: auto; top: auto; } H5 { font-family: 'Trebuchet MS', 'Arial', 'Helvitica'; font-weight: bold; font-size: 10pt; color: #660066; background: #FFFFCC; position: relative; } P { font-family: 'Trebuchet MS', 'Arial', 'Helvitica'; font-weight: bold; font-size: 11pt; color: #000066; position: relative; margin-left: 1cm; } BLOCKQUOTE { font-family: 'Trebuchet MS', 'Arial', 'Helvitica'; font-weight: bold; font-size: 11pt; color: #000066; position: relative; margin-left: 2cm; } PRE { font-family: 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 10pt; color: #990000; text-align: left; margin-left: 1cm; position: relative; } I { color: #000099; position: relative; } B { color: #990000; position: relative; } UL { position: relative; margin-left: 1.5cm; } OL { position: relative; margin-left: 1.5cm; } LI { font-family: 'Trebuchet MS', 'Arial', 'Helvitica'; font-weight: bold; font-size: 11pt; color: #000066; margin: .4cm; position: relative; } TABLE { font-family: 'Trebuchet MS', 'Arial', 'Helvitica'; font-weight: bold; font-size: 11pt; color: #006600; position: relative; } TR { font-family: 'Trebuchet MS', 'Arial', 'Helvitica'; font-weight: bold; font-size: 11pt; color: #000066; position: relative; } TD { font-family: 'Trebuchet MS', 'Arial', 'Helvitica'; font-weight: bold; font-size: 11pt; color: #000066; position: relative; } TH { font-family: 'Trebuchet MS', 'Arial', 'Helvitica'; font-weight: bold; font-size: 12pt; color: #990000; background: #CCCC99; position: relative; } .blue { font-family: 'Trebuchet MS', 'Arial', 'Helvitica'; font-weight: bold; font-size: 12pt; color: #990000; background: #CCFFFF; position: relative; } CAPTION { font-family: 'Trebuchet MS', 'Arial', 'Helvitica'; font-weight: bold; font-size: 10pt; color: #000066; margin: .1in; position: relative; } A:active { color: #FF0000; } DIV { position: relative; } .note { font-size: 10pt; color: #006600; background: #FFFFFF; position: relative; padding: 2pt 2pt; border-width: thin; border-style: groove; } .float { width: 40%; text-align: left; float: right; font-size: 10pt; color: #006600; background: #FFFFFF; position: relative; padding: 4pt 4pt; border-width: thin; border-style: groove; } .small { font-family: 'Arial', 'Sans-Serif'; font-weight: normal; font-size: 8pt; text-align: center; } .red { font-family: 'Arial', 'Sans-Serif'; font-weight: normal; font-size: 8pt; color: #FF0000; text-align: center; position: relative; } .redleft { font-family: 'Arial', 'Sans-Serif'; font-size: 10pt; color: #990000; text-align: left; position: relative; } .indent { margin-left: 1cm; position: relative; } .noindent { margin-left: 0; position: relative; } .large { font-family: 'Arial', 'Sans-Serif'; font-style: italic; font-weight: bold; font-size: 16pt; color: #660066; text-align: left; position: relative; } .shadow { font-family: 'Trebuchet MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: xx-large; color: #9966FF; text-align: left; height: 0; position: absolute; left: -1pt; top: -1pt; } .first { border-top-width: thin; border-left-width: thin; border-left-color: #66CC99; border-top-color: #66CC99; border-top-style: outset; border-left-style: inset; padding-top: 2pt; padding-left: 2pt; } .hugeding { font: 80pt 'Wingdings', 'fantasy'; color: #FFFF99; position: relative; } .shadow3 { font: Bold x-large 'sans-serif'; color: #339999; position: absolute; left: 50pt; top: 35pt; z-index: 3; } |
Version für Internet Explorer 3.0 |
.StyleSheetHiddenPlaceHolder { display: none; } H1 { font-family: 'Trebuchet MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 30pt; color: #660066; } H2 { font-family: 'Trebuchet MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: x-large; color: #660066; } H3 { font-family: 'Trebuchet MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 12pt; color: #660066; background: #FFFFCC; } H4 { font-family: 'Trebuchet MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 11pt; color: #660066; background: #FFFFCC; } H5 { font-family: 'Trebuchet MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 10pt; color: #660066; background: #FFFFCC; } P { font-family: 'Trebuchet MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 11pt; color: #000066; margin-left: 1cm; } BLOCKQUOTE { font-family: "'Trebuchet MS', 'Arial', 'Sans-Serif'"; font-weight: bold; font-size: 11pt; color: #000066; margin-left: 2cm; } PRE { font-family: 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 12pt; color: #990000; } XMP { font-family: 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 10pt; color: #990000; text-align: left; } I { color: #000099; } B { color: #990000; } UL { margin-left: 1.5cm; } OL { margin-left: 1.5cm; } LI { font-family: 'Trebuchet MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 11pt; color: #000066; } TD { font-family: 'Trebuchet MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 11pt; color: #000066; } TH { font-family: 'Trebuchet MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 12pt; color: #990000; background: #CCCC99; } TH.blue { font-family: 'Trebuchet MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 12pt; color: #990000; background: #CCFFFF; } CAPTION { font-family: 'Trebuchet MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 10pt; color: #000066; margin: .1in; } A:active { color: #FF0000; } .note { font-size: 10pt; color: #006600; background: #FFFFFF; } .small { font-family: 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 8pt; text-align: center; } .red { font-family: 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 8pt; color: #FF0000; text-align: center; } .redleft { font-family: 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 10pt; color: #990000; text-align: left; } .indent { margin-left: 1cm } .noindent { margin-left: 0; position: relative; } .large { font-family: 'Arial', 'Sans-Serif'; font-style: italic; font-weight: bold; font-size: 16pt; color: #660066; text-align: left; margin-left: 1cm; } .shadow { font-family: "'Trebuchet MS', 'Arial', 'Sans-Serif'"; font-weight: bold; font-size: 30pt; color: #9999FF; text-align: left; margin-top: -48pt; margin-left: -1pt; } P.hugeding { font: 80pt 'Wingdings', 'fantasy'; color: #FFFF99; } .shadow3 { font-family: "'Trebuchet MS', 'Arial', 'Sans-Serif'"; font-weight: bold; font-size: 30pt; color: #336666; text-align: left; margin-top: -70pt; margin-left: 38pt; } |
Version für Netscape Communicator 4.0 |
.StyleSheetHiddenPlaceHolder { display: none; } H1 { font-family: 'Trebuchet MS', 'Arial', 'Sans-Serif'; font-style: bold; font-weight: bold; font-size: xx-large; color: #666666; text-align: left; position: relative; } H2 { font-family: 'Trebuchet MS', 'Comic Sans MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: x-large; color: #660066; } H3 { font-family: 'Trebuchet MS', 'Comic Sans MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: large; color: #660066; } H4 { font-family: 'Trebuchet MS', 'Comic Sans MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: medium; color: #660066; } H5 { font-family: 'Trebuchet MS', 'Comic Sans MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: medium; color: #660066; } P { font-family: 'Trebuchet MS', 'Comic Sans MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 11pt; color: #000066; margin-left: 1cm; } BLOCKQUOTE { font-family: 'Trebuchet MS', 'Comic Sans MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 11pt; color: #000066; margin-left: 2cm; position: relative; } PRE { font-family: 'Arial', 'Sans-Serif'; font-weight: normal; font-size: 10pt; color: #990000; text-align: left; margin-left: 1cm; position: relative; } EM { color: #000099; } STRONG { color: #990000; } UL { margin-left: 1.5cm; } OL { margin-left: 1.5cm; } LI { font-family: 'Trebuchet MS', 'Comic Sans MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 11pt; color: #000066; } TABLE { font-family: 'Trebuchet MS', 'Comic Sans MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 11pt; color: #006600; } TR { font-family: 'Trebuchet MS', 'Comic Sans MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 11pt; color: #000066; } TD { font-family: 'Trebuchet MS', 'Comic Sans MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 11pt; color: #000066; } TH { font-family: 'Trebuchet MS', 'Comic Sans MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: large; color: #990000; background: #CCCC99; } CAPTION { font-family: 'Trebuchet MS', 'Comic Sans MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: small; color: #000066; margin: .1in; } A:link { font-family: 'Trebuchet MS', 'Comic Sans MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 11pt; color: #0000FF; } A:visited { font-family: 'Trebuchet MS', 'Comic Sans MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 11pt; color: #990099; } A:active { font-family: 'Trebuchet MS', 'Comic Sans MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 11pt; color: #FF0000; } .small { font-family: 'Trebuchet MS', 'Verdana', 'Arial', 'Sans-Serif'; font-weight: normal; font-size: small; text-align: center; } .red { font-family: 'Trebuchet MS', 'Verdana', 'Arial', 'Sans-Serif'; font-weight: normal; font-size: small; color: #FF0000; text-align: center; } .redleft { font-family: 'Trebuchet MS', 'Verdana', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: 11pt; color: #990000; text-align: left; } .indent { margin-left: 1cm; } .noindent { margin-left: 0; position: relative; } .large { font-family: 'Trebuchet MS', 'Arial', 'sans serif'; font-style: bold; font-weight: bold; font-size: 18pt; color: #999999; text-align: left; margin-top: .4cm; margin-left: .02cm; } .blue { font-family: 'Trebuchet MS', 'Comic Sans MS', 'Arial', 'Sans-Serif'; font-weight: bold; color: #990000; background: #CCFFFF; } .note { font-size: small; color: #006600; background: #FFFFFF; border: thin #006600 ridge; } .first { padding-top: 2pt; padding-left: 2pt; border-top-width: thin; border-left-width: thin; border-left-color: #66CC99; border-top-color: #66CC99; border-top-style: outset; border-left-style: inset; } .hugeding { font: 80pt 'Wingdings', 'fantasy'; color: #FFFF99; position: relative; } .shadow { font-family: 'Trebuchet MS', 'Arial', 'Sans-Serif'; font-weight: bold; font-size: xx-large; color: #9966FF; text-align: left; } .shadow3 { font: Bold x-large 'Trebuchet MS', 'sans-serif'; color: #339999; position: absolute; } #layer1 { position: relative; } #layer2 { position: absolute; left: -2pt; top: -2pt; } #layer3 { position: absolute; left: 40pt; top: 30pt; } |
Es folgt eine einfache Übung, die Sie durch die ersten Experimente mit Style Sheets führt. Für diese Übung brauchen Sie eine HTML-Datei und eine CSS-Datei. Um diese zu erstellen, brauchen Sie einen Text-basierten HTML-Editor wie HomeSite oder einen Texteditor wie z.B. Notepad.
Bei der Arbeit mit Style Sheets ist es hilfreich, eine Testdatei zu haben, die Beispiele aller Styles anzeigt, die Sie benutzen. Der Code untern erstellt eine Seite zum Start; Sie können zusätzliche Elemente für andere Tags und Klassen einfügen, wenn Sie Styles für sie definieren. Um die Datei zu erstellen, starten Sie Ihren HTML- oder Texteditor und öffnen Sie eine neue Datei, kopieren Sie den Code unten und fügen Ihn in die leere Datei ein; speichern Sie dann die Datei als css_test.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> |
Jetzt erstellen Sie das Style Sheet; öffnen Sie eine neue leere Datei im Editor. Kopieren Sie den Code von unten und fügen Sie ihn ein, speichern Sie die Datei als sample1.css:
H1 { font-family: Arial; font-size: xx-large; font-weight: bold; color: #800000; background: #FFFFCC; text-align: center; padding: 4pt; border-top: inset; border-bottom: inset; position: relative; } H2 { font-family: Arial; font-size: x-large; font-weight: bold; color: #FFFFCC; background: #800000; text-align: center; padding: 3pt; border-top: inset; border-bottom: inset; position: relative; } H3 { font-family: Arial; font-size: large; font-weight: bold; color: #800080; text-align: center; border-top: inset; border-bottom: inset; position: relative; } A { font-family: Arial; font-weight: bold; color: #0000FF; text-decoration: underline; position: relative; } A:LINK { font-family: Arial; font-weight: bold; color: #0000FF; text-decoration: underline; position: relative; } A:VISITED { font-family: Arial; font-weight: bold; color: #800080; text-decoration: underline; position: relative; } B { font-family: Arial; font-weight: bold; color: #800000; position: relative; } I { font-family: Arial; font-weight: bold; font-style: italic; position: relative; } LI { font-family: Arial; font-size: medium; color: #000080; position: relative; } P { font-family: Arial; font-size: medium; color: #000080; position: relative; } TD { font-family: sans-serif; font-size: medium; background: #99CCCC; } TH { font-family: sans-serif; font-size: medium; font-weight: bold; color: #FF0000; background: #FFFF00; text-align: center; position: relative; } PRE { font-family: monospace; font-size: medium; background: #CCFFFF; position: relative; left: 1cm; } .first { border-top: ridge; border-left: ridge; position: relative; } .last { border-bottom: ridge; border-right: ridge; } |
Sehen Sie sich zuerst an, wie die Styles aussehen, indem Sie die Datei css_test.html in einem Webbrowser öffnen (beachten Sie, daß Sie IE 3 oder 4 bzw. Netscape 4 benutzen müssen und daß das Ergebnis davon abhängt, welchen Browser Sie benutzen. IE 3.0x stellt z.B. die Ränder nicht dar).
Nun da Sie die ursprünglichen Styles gesehen haben, werden wir mit dem Experimentieren beginnen, indem wir die Datei sample1.css editieren (beachten Sie, daß Sie die Änderungen natürlich in separaten Dateien speichern können -- z.B. sample2.css usw. -- wenn Sie das machen, müssen Sie das den Wert des Attributs href im Tag link in der Datei css_test.html für jedes neue Style Sheet anpassen, um die Ergebnisse zu sehen).
Bemerkung: blättern Sie ruhig zurück zu den Tabellen mit Style-Eigenschaften, um Ihr Gedächtnis aufzufrischen und die Syntax zu überprüfen.
Beginnen Sie mit einigen einfachen Änderungen:
Sehen Sie sich nun die Resultate in der Datei css_test.html an; benutzen Sie Ihren Webbrowser.
(Die nächsten beiden Änderungen wirken sich nur auf die Anzeige in IE 4.0 oder Netscape 4.0 aus)
Sehen Sie sich die Ergebnisse an.
Versuchen Sie nun, selbst neue Klassen hinzuzufügen:
Sehen Sie sich die Resultate an.
Jetzt sollten Sie den Dreh in etwa 'raus haben. Ausgehend vom Beispiel oder von einer neuen CSS-Datei können Sie jetzt Ihre eigenen Styles erstellen. Sie können die Tabellen der Eigenschaften und Werte als Referenz verwenden und sollten daran denken, daß in den HTML-Dateien, mit denen Sie das Style Sheet verwenden, eventuell class-Attribute zu den Tags geschrieben werden müssen.
Es gibt jetzt drei Editoren zum Erstellen von Cascading Style Sheets:
Viele HTML-Editoren werden ohne Zweifel ebenfalls beginnen, Unterstützung für CSS anzubieten, aber es wird immer noch Gründe geben, einen separaten Editor in Betracht zu ziehen: ein spezieller CSS-Editor wird vielleicht eher auf Änderungen in CSS und bei der CSS-Unterstützung durch Browser reagieren und kann auch, durch die Konzentration auf nur eine Funktion den besten und einfachsten Weg zur Erstellung von CSS gehen.
Jeder dieser CSS Editoren ist noch jung und in einer agressiven Entwicklungsphase, aber alle sind sie bereits gut benutzbar und machen das Erstellen von Style Sheets erheblich schneller und einfacher als beim direkten Schreiben des Codes. Hier sind einige Kommentare, gefolgt von einer persönlichen Bewertung durch Robert Crooks, der aktuellen Versionen:
Sheet Stylist (beim Schreiben dieser Zeilen Version 1.0) hat eine Menge guter Funktionen, unter anderem:
Wenn Sie darauf aus sind, ernsthaft mit Style Sheets zu arbeiten und sie möglichst gut auszunutzen, dann ist dies im Moment das beste Werkzeug, das ich kenne. Kein anderes Tool geht so gut mit existierenden Style Sheets um oder unterstützt so viele CSS Eigenschaften.
In Version 1.3 hat StyleMaker einen Sprung nach vorne gemacht. Es unterstützt nun (fast) alle Eigenschaften von IE 4.
Sheet Stylist ist immer noch der bessere Editor, aber StyleMaker hat aufgeholt und ist definitiv einen Versuch wert.
Dieser Editor wurde anderswo gut bewertet; ich kann aber nicht viel empfehlenswertes daran finden. Es hat ein Interface mit Tabs, um Styleeigenschaften einzugeben, genau wie Sheet Stylist und StyleMaker, kann aber keine existierenden CSS-Dateien importieren. Stattdessen benutzt es wie StyleMaker eine proprietäre Datenbank, um die Styleinformation zu speichern; da aber die Importfunktion fehlt, können CSS-Dateien nicht manuell beabeitet werden, ohne eine Abweichung von der Version des Editors von CoffeeCup zu erhalten. Die erstellten Datenbanken kommen mir auch ziemlich groß vor, deshalb dauert es immer lange, sie zu laden oder zu speichern. Dazu kommt noch, daß es nicht alle Eigenschaften von CSS unterstützt. In dieser Version ist der Editor abgeschlagener dritter.
Bernhard Friedrich