CSS Style Sheets Eines vorneweg, diese Lektion ist für Fortgeschrittene. Durch Style Sheets lassen sich jedoch mit geringem Aufwand interessante Effekte erzielen, die die eigene Seite aufpeppen und von der Masse ein wenig abheben können. Denjenigen die sich mit dieser Lektion beschäftigen sei gesagt, daß ich diese der Einfachheit halber und mangels Zeit als Word Doc einblende, was natürlich weniger komfortabel ist als ein mit html dargestellter Text. Wer sich aber wirklich in dem Thema fit machen will, den sollte etwas blättern und die fehlende Übersicht nicht entmutigen. 1. Style Sheets einbinden 1.1 Definition Style-Sheets sind eine unmittelbare Ergänzung zu HTML. Es handelt sich dabei um eine Sprache zur Definition von Formateigenschaften einzelner HTML-Befehle. So können Sie beliebige Bereiche einer HTML-Datei mit einer eigenen Hintergrundfarbe, einem eigenen Hintergrundbild (Wallpaper) oder mit diversen Rahmen versehen. Sie können beliebige Elemente, sei es eine Grafik, ein Textabsatz, eine Tabelle oder ein Bereich aus mehreren solcher Elemente, pixelgenau im Anzeigefenster des WWWBrowsers positionieren. Ein weiteres wichtiges Leistungsmerkmal von Style-Sheets ist es, daß Sie Definitionen zentral angeben können. So können Sie beispielsweise im Kopf einer HTML-Datei zentrale Definitionen zum Aussehen einer Tabellenzelle notieren. Alle Tabellenzellen der entsprechenden HTML-Datei erhalten dann die Formateigenschaften, die einmal zentral definiert sind. Das spart Kodierarbeit und macht die HTML-Dateien kleiner. Sie können Ihre Style-Sheet-Definitionen sogar in separaten Dateien notieren. Solche Style-Sheet-Dateien können Sie in beliebig vielen HTML-Dateien referenzieren. Auf diese Weise können Sie für große Projekte einheitliche Layouts entwerfen. Mit ein paar kleinen Änderungen in einer zentralen Style-Sheet-Datei können Sie dann für hunderte von HTML-Dateien ein anderes Layout bewirken. Sie können innerhalb einer HTML-Datei einen Bereich für Style-Sheet-Angaben definieren. <html> <head> <title>Titel der Datei</title> <style type="text/css"> <!-/* ... Style-Sheet-Angaben ... */ //--> </style> </head> <body> </body> </html> Mit dem Befehl <style...> ... </style> im Kopf der HTML-Datei definieren Sie einen Bereich für Style-Sheet-Angaben (style = Stil, Format). Im einleitenden <style>-Tag müssen Sie den Typ der Formatdefinition angeben. Das geschieht bei allen hier beschriebenen Formatiermöglichkeiten durch die Angabe type="text/css". Zwischen dem einleitenden Tag und dem abschließenden </style> können Sie dann die eigentlichen Style-Sheet-Angaben definieren.Damit WWW-Browser, die keine StyleSheets kennen, die Style-Sheet-Angaben nicht irrtümlich als anzuzeigenden Text interpretieren, können Sie den Bereich der eigentlichen Style-Sheet-Angaben in einen mehrzeiligen HTML-Kommentar <!-- ... //--> einbinden, so wie im obigen Beispiel. In vielen Fällen werden Sie einheitliche Formate für alle HTML-Dateien Ihres Projekts haben wollen. In diesem Fall brauchen Sie die Angaben nicht in jeder Datei zu wiederholen. Stattdessen können Sie die Style-Sheet-Angaben in einer separaten Textdatei notieren und diese Datei einfach in jeder gewünschten HTML-Datei einbinden. Wenn Sie die Angaben in der separaten Datei ändern, wirken sich die Änderungen einheitlich auf alle Dateien aus, in denen diese separate Datei eingebunden ist. 2. Definition durch separate Dateien <html> <head> <title>Titel der Datei</title> <link rel=stylesheet type="text/css" href="formate.css"> <style type="text/css"> <!-... Extra-Style-Sheet-Angaben ... //--> </style> </head> <body> </body> </html> Im Dateikopf einer HTML-Datei können Sie mit einem HTML-Befehl des Typs <link...> eine Datei referenzieren, die Style-Sheet-Angaben enthält (link = Verweis). Innerhalb dieses Befehls sollten immer die Angaben rel=stylesheet type="text/css" stehen (rel = relation = Bezug, type = Typ). Bei der referenzierten Datei muß es sich um eine reine Textdatei handeln, die die Endung .css haben sollte. Die Datei sollte nichts anderes als Formatdefinitionen enthalten, also auch keine HTML-Befehle. Eine solche Datei können Sie mit jedem einfachen Texteditor erstellen. /* Zeilen wie diese, die mit Schraegstrich und Stern */ /* beginnen und mit Stern und Schraegstrich enden, sind */ /* Kommentarzeilen. */ body { margin-top:10px; margin-bottom:10px; } /* margin-top = Abstand zwischen Fensterrand und Inhalt oben */ /* margin-bottom = Abstand zwischen Fensterrand und Inhalt unten */ /* 10px = 10 Pixel, Wert aenderbar */ p,h1,h2,h3,h4,ul,ol,li,div,td,th,address,blockquote,nobr,b,i { font-family:Arial,sans-serif; } /* font-family = Schriftart fuer Textelemente */ /* Arial,sans-serif = Arial und serifenlose Schrift, Wert aenderbar */ h1 { font-size:18pt; } /* font-size = Schriftgroesse */ /* 18pt = 18 Punkt, Wert aenderbar */ p,ul,ol,li,div,td,th,address,nobr,b,i { font-size:10pt; } /* normaler Text */ /* font-size = Schriftgroesse */ /* 10pt = 10 Punkt, Wert aenderbar */ pre { font-family:Courier New,Courier; font-size:10pt; color:#0000C0; } /* Quelltext-Beispiele */ /* font-family = Schriftart */ /* Courier New,Courier = Schriftarten, Wert aenderbar */ /* font-size = Schriftgroesse */ /* 10pt = 10 Punkt, Wert aenderbar */ /* color = Farbe */ /* #0000C0 = blau, Wert aenderbar */ .doc { background-color:#EEEEEE; } /* Layout-Elemente mit hellgrauem Hintergrund */ /* background-color = Hintergrundfarbe */ /* #EEEEEE = helles Grau, Wert aenderbar */ a:link { color:#AA5522; text-decoration:underline; } a:visited { color:#772200; text-decoration:underline; } a:active { color:#000000; text-decoration:none; } /* a:link = Verweise zu noch nicht besuchten Seiten */ /* a:visited = Verweise zu bereits besuchten Seiten */ /* a:active = Verweise, die gerade angeklickt werden */ /* color = Farbe */ /* #AA5522 = kotzbeige, Wert aenderbar */ /* #772200 = scheissbraun, Wert aenderbar */ /* #000000 = schwarz, Wert aenderbar */ /* text-decoration = Tesxtstil */ /* underline = unterstrichen, Default-Wert, Wert aenderbar */ /* none = nicht unterstrichen, Wert aenderbar */ Wenn Sie mit <link...> eine Datei mit Style-Sheet-Angaben referenzieren, brauchen Sie keinen Bereich <style...>...</style>. Im obigen Beispiel wird dennoch ein solcher Bereich definiert. Das soll zeigen, daß Sie beide Arten, Style-Sheet-Angaben zu definieren, durchaus kombinieren können. Wenn Sie beide Arten benutzen, haben Formate, die direkt innerhalb von <style...>...</style> definiert werden, im Konfliktfall Vorrang vor den referenzierten Formaten. So können Sie etwa immer wieder verwendete Formate importieren und einige davon mit dateispezifischen Formaten überschreiben. Um Ihre Formatdefinitionen intern auszukommentieren, steht eine spezielle, an die Programmiersprache C angelehnte Syntax zur Verfügung. <title>Titel der Datei</title> <style type="text/css"> <!-p { color:blue; } /* Format für blauen Text, kreiert am 4.1.1998 */ //--> </style> Sie können dem Browser in einer HTML-Datei mit Hilfe einer Meta-Angabe ausdrücklich mitteilen, daß diese Datei Style-Sheet-Definitionen in einer bestimmten Definitionssprache enthält.Die Angabe dient dazu, um dem Client (also dem WWW-Browser) und dem WWW-Server einen Befehl zur Verfügung zu stellen, der beiden Seiten helfen soll, sich vor dem Interpretieren der Datei über die zu verwendende Style-Sheet-Syntax zu einigen. Beispiel: <head> <meta http-equiv="Content-Style-Type" content="text/css"> </head> 3. Tags definieren Sie können für gewöhnliche HTML-Tags, zum Beispiel für HTML-Tags zu Absatztypen und Textgestaltung oder für Tabellen, mit Hilfe von Style-Sheet-Angaben Formate definieren. Wenn Sie das entsprechende HTML-Tag dann in der HTML-Datei verwenden, werden alle Formate angewendet, die Sie für das betreffende HTML-Tag definiert haben. <title>Titel der Datei</title> <style type="text/css"> <!-h1 { font-size:48pt; color:#FF0000; font-style:italic; } p,li { font-size:12pt; line-height:14pt; font-family:Helvetica,Arial; letter-spacing:0.2mm; word-spacing:0.8mm; } //--> </style></head> Dazu notieren Sie zuerst das gewünschte HTML-Tag, und zwar ohne spitze Klammern. Im obigen Beispiel werden die HTML-Tags h1 (Überschrift 1. Ordnung), p (Textabsatz) und li (Listeneintrag) auf diese Weise notiert. Wenn Sie gleichartige Formate für mehrere HTMLTags definieren wollen, geben Sie alle gewünschten Tags an und trennen Sie diese durch Kommata, so wie im obigen Beispiel p,li. Dahinter folgen die dazugehörigen, gewünschten Formatdefinitionen, und zwar in geschweiften Klammern { und }. Schließen Sie jede Formatdefinition jeweils durch einen Strichpunkt ab. Nur bei der letzten Formatdefinition vor der abschließenden geschweiften Klammer darf der Strichpunkt entfallen. Style-Sheet-Angaben für HTML-Tags wie <p> oder <li> werden möglicherweise nur interpretiert, wenn Sie ein einleitendes und ein abschließendes Tag notieren. Sie können mit Hilfe von Style-Sheets Unterklassen von gewöhnlichen HTML-Tags definieren. Das ist vor allem für HTML-Tags zu Absatztypen und Textgestaltung oder für solche zu Tabellen sinnvoll. So können Sie beispielsweise vom HTML-Tag für Überschriften 1. Ordnung zwei Varianten erzeugen, etwa eine mit schwarzer und eine mit roter Schrift. Dazu vergeben Sie Namen für die entsprechenden Unterklassen. <style type="text/css"> <!-p.normal { font-size:10pt; color:black; } p.gross { font-size:12pt; color:black; } p.klein { font-size:8pt; color:black; } all.rot { color:red; } .blau { color:blue; } //--> </style></head> <body> <p class="normal">Normaler Textabsatz mit Schrift 10 Punkt schwarz</p> <p class="gross">Textabsatz mit Schrift 12 Punkt schwarz</p> <p class="klein">Textabsatz mit Schrift 8 Punkt schwarz</p> <p class="rot">roter Textabsatz</p> <address class="rot">roter Absatz für Adressen</address> <blockquote class="blau">blaues Zitat</blockquote> Unterklassen von HTML-Tags bilden Sie dort, indem Sie zuerst das Tag notieren, im obigen Beispiel p. Dahinter folgt ein Punkt und dahinter ein Name für die Unterklasse.Anstelle eines bestimmten HTML-Tags können Sie auch das Schlüsselwort all (=alle) notieren. Dadurch definieren Sie eine Unterklasse mit Formatierungen, die Sie anschließend auf irgendein HTML-Tag anwenden können. Es ist auch erlaubt, Schlüsselwort all wegzulassen. In diesem Fall beginnt die Formatdefinition mit einem Punkt. Innerhalb des Dateikörpers können Sie definierte Unterklassen anwenden. Dazu notieren Sie im einleitenden HTML-Tag die Angabe class= und dahinter den Namen der Unterklasse, den Sie zuvor vergeben haben. Einfach ist das Arbeiten mit prozentualen Angaben, die in Style-Sheets ebenfalls erlaubt sind. So könnten Sie beispielsweise eine allgemeingültige Unterklasse all.Meine { fontsize:150%;} definieren. Wenn Sie diese Unterklasse dann einem HTML-Tag zuweisen, wird der darin enthaltene Text einfach in 1½facher Größe dargestellt, und zwar in Bezug auf die sonst übliche Größe. 1.4 Formate definieren Sie können Formate vordefinieren, die Sie anschließend auf beliebige geeignete HTML-Tags anwenden können. So können Sie z.B. ein unabhängiges Format mit der Eigenschaft fett/kursiv definieren. Dieses unabhängige Format können Sie dann innerhalb von HTMLTags zusätzlich zu anderen Formaten anwenden, die für das betreffende Tag definiert sind. <style type="text/css"> <!-p,li,dd,dt,blockquote { color:red;font-family:Times; margin-top:1cm; margin-left:1cm; } #fettkursiv { font-weight:bold; font-style:italic; } //--> </style></head><body> <p id="fettkursiv">Extra-Formatierung</p> <p>Das ist formatierter Text mit <em id="fettkursiv">Extra-Formatierung</em></p> Im Beispiel wird für Fließtext-Standard-Tags wie <p>, <li>, <dt>, <dd> und <blockquote> ein einheitliches Format mit verschiedenen Angaben definiert. Ferner wird ein unabhängiges Format mit dem Namen fettkursiv definiert. Namen von unabhängigen Formaten müssen ein Gatterzeichen # vorangestellt bekommen. Im Dateikörper können Sie freie Formate innerhalb von HTML-Tags anwenden. Dazu notieren Sie im einleitenden HTML-Tag die Angabe id= und dahinter, in Anführungszeichen, den Namen des unabhängigen Formats ohne Gatterzeichen (id = identifier = Bezeichner). Dadurch werden dem Inhalt zwischen dem einleitenden und seinem abschließenden Tag die Eigenschaften des definierten unabhängigen Formats zugewiesen. Im obigen Beispiel wird das unabhängige Format fettkursiv einmal innerhalb eines einleitenden <p>-Tags und einmal innerhalb eines einleitenden <em>-Tags angegeben. Daraus können Sie ersehen, wie unabhängige Formate einsetzbar sind, und wie sie andere Formate additiv ergänzen. Pseudo-Elemente sind Elemente innerhalb einer HTML-Datei, die sich jedoch nicht durch ein eindeutiges HTML-Tag ausdrücken lassen, z.B. ein "noch nicht besuchter Verweis" oder der erste Buchstabe eines Absatzes. Zum Definieren solcher Pseudo-Elemente gibt es eine bestimmte Syntax innerhalb der Style-Sheet-Sprache CSS. <style type="text/css"> a:link { color:#FF0000; font-weight:bold } a:visited { color:#990000; } a:active { color:#0000FF; font-style:italic }</style> Bei Style-Sheet-Definitionen von Pseudo-Elementen notieren Sie zuerst das betroffene HTML-Tag, im Beispiel das <a>-Tag für Verweise. Dahinter folgt ein Doppelpunkt und dahinter eine erlaubte Angabe, im Beispiel etwa link oder visited. Beachten Sie, daß dies keine frei wählbaren Namen sind, sondern feste Schlüsselwörter. Sie können einzelne HTML-Tags innerhalb des HTML-Dateikörpers mit Hilfe von StyleSheet-Angaben formatieren. Die Formatierungsangaben gelten dann genau für den Geltungsbereich des betreffenden HTML-Tags. <body> <div style="background-color:#FFFFE0"> <h1 style="color:red; font-size:36pt;">Überschrift 1. Ordnung</h1> <p style="margin-left:1.5cm;">Ein Textabsatz</p></div> Im obigen Beispiel werden die individuellen Formatangaben zunächst auf ein <div>-Tag angewendet, das verschiedene weitere Elemente enthält, nämlich eine Überschrift 1. Ordnung und einen gewöhnlichen Textabsatz. Auch diese Elemente werden im Beispiel mit Hilfe von Style-Sheet-Angaben individuell formatiert. Bei allen numerischen Angaben innerhalb von CSS-Style-Sheets, also etwa bei Schriftgrößen, Absatzabständen oder Rändern, stehen Ihnen alle weit verbreiteten Maßeinheiten zur Verfügung. Dabei sind absolute Angaben (z.B. Millimeter) und relative Angaben (z.B. Prozent gegenüber "normal") möglich. p { font-size:12pc; text-indent:14mm; margin-left:3em; } Em steht für für die Elementeigene Schrifthöhe. Folgende Farbwörter sind erlaubt: activeborder = Farbe der aktiven Fenstertitelzeile. activecaption = Farbe der Überschrift in der aktiven Fenstertitelzeile. appworkspace = Farbe des Hintergrunds der aktiven Anwendung. background = Farbe des Desktop-Hintergrunds. buttonface = Farbe von Buttons in Dialogfenstern. buttonhighlight = Farbe für 3D-Schatten von Buttons in Dialogfenstern. buttontext = Farbe von Texten beschrifteter Buttons in Dialogfenstern. captiontext = Farbe von Überschriften in Dialogfenstern. greytext = Farbe von deaktiviertem Text Dialogfenstern. highlight = Farbe von ausgewählten Einträgen in Auswahllisten. highlighttext = Farbe von selektiertem Text. inactiveborder = Farbe einer nicht aktiven Fenstertitelzeile. inactivecaption = Farbe der Überschrift in einer nicht aktiven Fenstertitelzeile. infobackground = Farbe für Tooltips und Hints (kleine Popup-Hilfen). infotext = Textfarbe für Tooltips und Hints (kleine Popup-Hilfen). menu = Farbe für Menüleisten. menutext = Farbe für Menüeinträge. scrollbar = Farbe der Scroll-Leiste in Fenstern. threeddarkshadow = Dunkle Farbe bei Schatten von 3D-Elementen. threedface = Farbe von 3D-Elementen. threedhighlight = Farbe von gerade angeklickten 3D-Elementen. threedlightshadow = Helle Farbe bei Schatten von 3D-Elementen. threedshadow = Dunkle Farbe bei Schatten von 3D-Elementen. window = Hintergrundfarbe von Dokumentfenstern. windowframe = Farbe von Fensterrahmen. windowtext = Farbe von normalem Text in Dokumentfenstern. 2. Die Style Sheet Befehle 2.1 Schriftart und Ausrichtung Mit font: können Sie verschiedene Schriftformatierungen mischen. <p style="font:bold italic 12pt Palatino, serif">Text</p> Mit dem hier beschriebenen Befehl können Sie Schriftarten angeben, ohne sich darum zu kümmern, ob und wie die Schriftart beim Anwender angezeigt werden kann. Falls die angegebene Schriftart nicht angezeigt werden kann, bleibt die Angabe wirkungslos. <style type="text/css"> h1,h2,h3 { font-familiy:Avantgarde,Arial } </style> Folgende Schriftfamilien sind fest vordefiniert - diese Angaben können Sie also neben Schriftartnamen benutzen: serif, sans-serif, cursive, fantasy und monospace. <p style="font-size:130%">Text</p> Alternativ zu numerischen Angaben sind auch folgende "ungenaue" Angaben möglich: xx-small = winzig. x-small = sehr klein. small = klein. medium = mittel. large = groß. x-large = sehr groß. xx-large = riesig. smaller = sichtbar kleiner als normal. larger = sichtbar größer als normal. dt { font-weight:bold } Mit font-weight: können Sie das Schriftgewicht bestimmen. Folgende Angaben sind möglich: bold = fett. bolder = extra-fett. lighter = dünner. 100,200,300,400,500,600,700,800,900 = extra-dünn (100) bis extra-fett (900). normal = normales Schriftgewicht. Mit dieser Angabe können Sie den Abstand zwischen Wörtern im Text bestimmen. h3 { word-spacing:8mm } Zeichenabstand: <b style="letter-spacing:3em">fetter breiter Text</b> Mit text-decoration: können Sie das Schriftgewicht bestimmen. Folgende Angaben sind möglich: strong { text-decoration:underline } underline = unterstrichen. overline = überstrichen. line-through = durchgestrichen. blink = blinkend. none = normal (keine Text-Dekoration). Der MS Internet Explorer interpretiert die Angabe blink nicht. Beispiel: <style><!-A{text-decoration: none;} a:link {color:#0080ff;} a:visited {color:#3000ff;} A:hover { color="red";} --></style> Dies sind die Styles, die die Linx auf meine Seiten ausmachen, wobei a:link der unbesuchte und a:visited der Besuchte Link ist. Die angabe hover bewirkt bei berühren mit dem Mauszeiger eine rote Unterlegung. Mit text-shadow: können Sie einen Textschatten erzwingen. Erlaubt sind Farbangaben oder der Wert none: <p style="text-shadow:black; font-size:24pt;">Text</p> Dieser Befehl, der zur Version 2.0 der CSS Style-Sheets gehört, wird von Netscape und MS Internet Explorer in den Versionen 4.x noch nicht interpretiert. Sinnvoll sind die hier beschriebenen Angaben für alle HTML-Tags, die einen eigenen Absatz erzeugen bzw. einen Block bilden, also etwa für <h[1-6]>, <p>, <blockquote>, <address> oder <pre>. Blockelemente sind aber auch HTML-Tags wie <div>, <table>, <tr>, <th> und <td>. Auch auf <body> lassen sich die hier aufgelisteten Style-Sheet-Angaben anwenden - in diesem Fall wird der gesamte sichtbare Körper einer HTML-Datei wie ein Block behandelt. Rand bzw. Abstand bedeutet: der Rand/Abstand des aktuellen Elements zu seinem logischen "Eltern-Element". Mit negativen Werten, also Angaben wie beispielsweise -18mm, können Sie für besondere gestalterischen Zwecke erreichen, daß sich Elemente überlappen. <style type="text/css"> h1,h2,h3 { margin-top:2cm; } div.beispiel { margin-top:30px; } div.beispiel h1,h2,h3 { margin-top:1cm; } </style> Sie können mit margin-bottom den unteren Abstand/Rand eines Elements zu seinem nachfolgenden Element festlegen. Mit margin-left (right): können Sie den Rand/Abstand links (rechts) bestimmen. body { margin:2cm; } /* 2cm oben, rechts, unten und links */ p.typC { margin: 1cm 2cm 3cm 4cm; } /* 1cm oben, 2cm rechts, 3 cm unten und 4 cm links */ Sie können für einen mehrzeiligen Fließtext bestimmen, daß die erste Zeile eingerückt wird. Dieses Gestaltungselement ist in Büchern und Zeitschriften sehr verbreitet. <p style="text-indent:7.5mm">viel Text</p> Sie können für Elemente mit viel Fließtext die Zeilenhöhe bestimmen. Diese Angabe ist vor allem in Verbindung mit einer Angabe zur Schriftgröße interessant. <style type="text/css"> p.gross { font-size:14pt; line-height:16pt; } p.klein { font-size:8pt; line-height:8pt; } </style> Sie können nebeneinanderstehende Elemente mit unterschiedlicher Höhe, zum Beispiel Tabellenzellen in einer Tabellenzeile oder Textpsassagen mit unterschiedlicher Schriftgröße innerhalb einer Zeile im Verhältnis zueinander ausrichten. <table> <tr> <td style="vertical-align:top">...</td> <td style="vertical-align:middle">...</td> <td style="vertical-align:bottom">...</td> </tr> </table> Mit vertical align: können Sie die vertikale Ausrichtung bestimmen. Folgende Angaben sind möglich: top = obenbündig ausrichten. middle = mittig ausrichten. bottom = untenbündig ausrichten. baseline = an der Basislinie ausrichten (oder untenbündig, wenn es keine Basislinie gibt). sub = tieferstellen (ohne die Schriftgröße zu reduzieren). super = höherstellen (ohne die Schriftgröße zu reduzieren). text-top = am oberen Schriftrand ausrichten. text-bottom = am unteren Schriftrand ausrichten. Mit text-align: oder alignment: können Sie gewünschte Elemente für Textinhalte ausrichten. Folgende Angaben sind möglich: left = linksbündig ausrichten (Voreinstellung). center = zentriert ausrichten. right = rechtsbündig ausrichten. justify = als Blocksatz ausrichten. <style type="text/css"> p,blockquote { text-align:justify } Sie können für einen Rahmen, die Sie für bestimmte oder alle Seiten eines Elements definieren, das Erscheinungsbild des Rahmens festlegen. Mit border-style: können Sie den Rahmentyp festlegen. Erlaubt ist eine der folgenden Angaben: none = kein Rahmen (bzw. unsichtbarer Rahmen). dotted = gepunktet. dashed = gestrichelt. solid = durchgezogen. double = doppelt durchgezogen. groove = 3D-Effekt. ridge = 3D-Effekt. inset = 3D-Effekt. outset = 3D-Effekt. Netscape 4.x interpretiert die Angabe border-style nur, wenn außerdem die Rahmendicke (border-width) notiert wird, also etwa: <p style="border-style:solid; border-width:thin"> Um für beide Browser zu schreiben, müssen Sie also eine Syntax wie in dem voranstehenden Beispiel wählen und beide Angaben notieren. Der MS Internet Explorer zieht den Rahmen über die gesamte zur Verfügung stehende Breite, während Netscape den Rahmen nur so weit zieht, wie der Absatz/der Block an Breite benötigt. Eine einheitlichere Darstellung erreichen Sie mit Angaben zur Breite von Elementen arbeiten, z.B. mit Angaben wie width:100% oder width:500px. Einige der Effekte (z.B. groove) kommen nur zustande, wenn Sie eine Farbe angeben, die sich von schwarz unterscheidet. Mit border-top/bottom/left/right können auch die einzelnen Teile des Rahmens angesprochen werden. Innenabstände sind vor allem in Verbindung mit Rahmen, Hintergrundfarben und Hintergrundbildern sinnvoll. Mit der hier beschriebenen Angabe können Sie den Zwischenraum zwischen Elementinhalt und oberer Elementgrenze (sichtbar bei Rahmen, Farben usw.) bestimmen. <style type="text/css"> td { padding-top:3mm; } th { padding-top:5mm; } p.LinieOben { border-top:thin solid red; padding-top:5mm; } </style> Auch bei unterem Innenabstand und innerhalb von Tags:<p style="border-bottom:thick groove silver; padding-bottom:10px;">Text</p> STatt top kann auch left und right angesprochen werden oder der Innenabstand allgemein definiert werden (padding:10px). 2.2 Grafik, Verweise und Cursor Mit background-color: können Sie eine Hintergrundfarbe bestimmen. Oder ein Hintergrundbild: <p style="background-image:url(back.gif);">Text</p> Mit background-image:url([Dateiname]): können Sie eine Hintergrundgrafik bestimmen. Per Voreinstellung wird die Hintergrundgrafik als Wallpaper (Tapetenmuster) wiederholt, so wie bei der Angabe eines Hintergrundbildes im HTML-Tag <body>. . Sie können jedoch ein anderes Verhalten erzwingen. <style type="text/css"> body { background-image:url(back.gif); background-repeat:no-repeat; } </style> Oder auch: repeat = wiederholen (Voreinstellung). repeat-x = nur "eine Zeile lang" waagerecht wiederholen. repeat-y = nur "eine Spalte lang" senkrecht wiederholen. no-repeat = nicht wiederholen, nur als Einzelbild anzeigen. Mit background-position: können Sie festlegen, wo die linke obere Ecke der Hintergrundgrafik sein soll. Bezugspunkt ist das HTML-Element, für das die Hintergrundgrafik definiert wird. Erlaubt sind entweder zwei numerische Werte, der erste für den Abstand von links und der zweite für den Abstand von oben. Oder eine oder sinnvolle Kombinationen der folgenden Angaben. top = vertikal obenbündig. center = horizontal zentriert. middle = vertikal mittig. bottom = vertikal untenbündig. left = horizontal linksbündig. right = horizontal rechtsbündig. <style type="text/css"> body { background-image:url(back.gif); background-position:1cm 2cm; } </style> Sie können eine eigene geeignete Grafik als Bullet-Zeichen für Aufzählungslisten bestimmen.Mit list-style-image:url([Dateiname]) können Sie eine Grafik für das eigene Bulletzeichen angeben. Als Grafikdateitypen sollten Sie wie in HTML üblich GIF- oder JPGGrafiken benutzen. <style type="text/css"> ul { list-style-image:url(point.gif) } </style> Sie können das Erscheinungsbild von Verweisen zu noch nicht besuchten Seiten, zu bereits besuchten Seiten und zu Verweisen, die gerade angeklickt werden, bestimmen. <style type="text/css"> a:link { color:#FF0000; font-weight:bold } a:visited { color:#990000; } a:active { color:#0000FF; font-style:italic } </style> Sie können für ein HTML-Element einen Cursor definieren. Wenn der Anwender mit der Maus über die Fläche fährt, die das Element einnimmt, nimmt der Mauscursor die angegebene Gestalt an. <p style="cursor:hand; color:blue" onClick="window.location.href='datei2.htm'">Verweis, der nicht unterstrichen ist</p> Mit cursor: können Sie das Aussehen des Mauscursors für den Fall definieren, daß der Anwender mit der Maus über den entsprechenden Bereich fährt. Folgende Angaben sind erlaubt: auto = automatischer Cursor (Normaleinstellung). default = Plattformunabhängiger Standard-Cursor. crosshair = Cursor in Form eines einfachen Fadankreuzes. pointer = Cursor in Form eines Zeigers. move = Cursor in Form eines Kreuzes, das die Fähigkeit zum Bewegen des Elements signalisiert. n-resize = Cursor in Form Pfeils, der nach oben zeigt (n = Norden). ne-resize = Cursor in Form Pfeils, der nach rechts oben zeigt (ne = Nordost). e-resize = Cursor in Form Pfeils, der nach rechts zeigt (e = Osten). se-resize = Cursor in Form Pfeils, der nach rechts unten zeigt (se = Südost). s-resize = Cursor in Form Pfeils, der nach unten zeigt (s = Süden). sw-resize = Cursor in Form Pfeils, der nach links unten zeigt (sw = Südwest). w-resize = Cursor in Form Pfeils, der nach links zeigt (w = Westen). nw-resize = Cursor in Form Pfeils, der nach links oben zeigt (nw = Nordwest). text = Cursor in einer Form, die normalen Text symbolisiert. wait = Cursor in Form eines Symbols, das einen Wartezustand signalisiert. help = Cursor in Form Symbols, das Hilfe zu dem Element signalisiert. url([Datei]) = Beliebiger Cursor, [Datei] sollte eine GIF- oder JPG-Grafik sein. 2.3 Filter Mit filter: können Sie einen Effekt-Filter bestimmen. Hinter dem Doppelpunkt folgt der Aufruf eines Filters. Einige Filter erwarten Parameter, andere nicht. Die Parameter und Ihre Wertangaben zu den Filtern notieren Sie in Klammern unmittelbar hinter dem Filternamen, so wie im obigen Beispiel (strength=50) als Parameter an den Filter Blur übergeben wird. Wenn ein Filter keine Parameter erwartet, notieren Sie trotzdem die Klammern, lassen den Inhalt dazwischen aber leer. <img src="grafik.gif" style="filter:Blur(strength=50)"> <img src="grafik.gif" style="filter:Blur(strength=50) FlipH();"> Sie können auch mehrere Filter kombinieren. Im zweiten der obigen Beispiele werden etwa die beiden Filter Blur() und FlipH() kombiniert. Dazu dürfen Sie nur einmal das Schlüssenwort filter: notieren. Zwischen diesem Schlüsselwort und dem nächsten Semikolon (;) zum Abschließen der Style-Sheet-Angabe können Sie mehrere Filter notieren. Trennen Sie die Filter durch ein Leerzeichen vor dem Namen des nächsten Filters, so wie im Beispiel vor FlipH(). Die Filter sind für die folgenden HTML-Tags gedacht (bei anderen funktionieren sie nicht): <body> (Effekt betrifft die gesamte angezeigte Seite) <button> (Effekt betrifft die Schaltfläche) <div> (Effekt betrifft den Bereich in Verbindung mit den Style-Sheet-Angaben width: und/oder height: und/oder position:) <img> (Effekt betrifft die referenzierte Grafik) <input> (Effekt betrifft das Eingabefeld) <marquee> (Effekt betrifft den Lauftext) <span> (Effekt betrifft den Bereich in Verbindung mit den Style-Sheet-Angaben width: und/oder height: und/oder position:) <table> (Effekt betrifft die Tabelle) <td> (Effekt betrifft die Datenzelle einer Tabelle) <textarea> (Effekt betrifft das mehrzeilige Eingabefeld) <tfoot> (Effekt betrifft den Fußbereich einer Tabelle) <th> (Effekt betrifft die Kopfzelle einer Tabelle) <thead> (Effekt betrifft den Kopfbereich einer Tabelle) <tr> (Effekt betrifft die Zeile einer Tabelle) 2.3.1 Verschmelz Effekt Mit diesem Filter können Sie Vordergrundelemente mit Hintergrundelementen farblich verschmelzen. Der Filter erlaubt verschiedene Möglichkeiten, wie ein Vordergrundelement aus seinem Hintergrund "heraustreten" kann. Beispiel (Style-Sheet-Definition für HTML-Tag im Text): <p style="background-image:url(back.jpg); padding:10pt;" align=center> <img src="xdance1.gif" style="filter:Alpha(opacity=100, finishopacity=0, style=2)" width=247 height=383> </p> Erläuterung: Mit Alpha(): können Sie Vordergrundelemente und Hintergrundelemente ineinander verschmelzen. Geeignet ist der Filter z.B. für Grafiken, die auf Hintergrundgrafiken erscheinen. Dieser Filter erwartet folgende Parameter: opacity= Deckgrad am Urpsrung der Verschmelzung. Erlaubt sind Werte zwischen 0 und 100. Wert 0 bedeutet: vollkommen transparent (Hintergrund scheint voll durch), Wert 100 bedeutet: vollkommen abdeckend (Hintergrund scheint nicht durch). finishopacity= Deckgrad am Ende der Verschmelzung. Erlaubt sind Werte zwischen 0 und 100. Wert 0 bedeutet: vollkommen transparent (Hintergrund scheint voll durch), Wert 100 bedeutet: vollkommen abdeckend (Hintergrund scheint nicht durch). style= Art, in der der Filter wirkt. Erlaubt sind die Werte 0, 1, 2 und 3. 0 bedeutet: Hintergrund und Vordergrund werden farblich addiert. Das Vordergrundelement wird farblich entsprechend manipuliert. Keine Verschmelzung. Angaben zu den anderen Parametern sind in diesem Fall nicht erforderlich, d.h. Alpha(style=0) genügt. 1 bedeutet: linearer Verlauf von einem selbst definierbaren Anfangspunkt zu einem selbst definierbaren Endpunkt. Am Anfangspunkt gilt der Wert, der bei opacity= angegeben wird. Ab dem Endpunkt verliert der Wert für opacity= seinen Einfluß, und der Wert für finishopacity= dominiert. Den Anfangspunkt bestimmen Sie durch startx= und starty=, den Endpunkt durch finishx= und finishy=. 2 bedeutet: radialer (elliptischer) Verlauf von innen nach außen. Ganz innen gilt der angegebene Wert für opacity=, ganz außen der angegebene Wert für finishopacity=. In diesem Fall können Sie Angaben zu startx=, starty=, finishx= und finishy= weglassen, so wie im obigen Beispiel. 3 bedeutet: rechteckiger Verlauf von innen nach außen. Ganz innen gilt der angegebene Wert für opacity=, ganz außen der angegebene Wert für finishopacity=. In diesem Fall können Sie Angaben zu startx=, starty=, finishx= und finishy= weglassen, so wie im obigen Beispiel. startx= Anfangspunkt in Pixel horizontal vom linken Rand des Vordergrundelements. Nur in Verbindung mit style=1 von Bedeutung. starty= Anfangspunkt in Pixel vertikal vom oberen Rand des Vordergrundelements. Nur in Verbindung mit style=1 von Bedeutung. finishx= Endpunkt in Pixel horizontal vom linken Rand des Vordergrundelements. Nur in Verbindung mit style=1 von Bedeutung. finishy= Endpunkt in Pixel vertikal vom oberen Rand des Vordergrundelements. Nur in Verbindung mit style=1 von Bedeutung. 2. Verwisch-Effekt Dieser Filter erlaubt es, Grafiken in HTML mit Verwisch-Effekt auszustatten. Beispiel (Style-Sheet-Definition für HTML-Tag im Text): <img src="grafik.jpg" style="filter:Blur(direction=45, strength=30)"> Mit Blur(): können Sie einen Verwisch-Effekt definieren. Geeignet ist der Filter für Grafiken. Dieser Filter erwartet folgende Parameter: add= Diesen Parameter brauchen Sie nur anzugeben, wenn Sie add=0 notieren wollen. Dann erscheinen die Konturen der Grafik gar nicht mehr, und am Bildschirm erscheint nur noch die Verwischspur. Der Effekt wird dadurch sehr stark, die eigentliche Grafik ist oft nicht mehr zu erkennen. direction= Mit diesem Parameter geben Sie die Richtung an, in die die Verwischspur führt. Es wirkt dann so, als ob die Grafik aus dieser Richtung kommt. Erlaubt sind die Werte 0, 45, 90, 135, 180, 225, 270, 315: 0 bedeutet: Die Verwischspur zeigt nach oben. 45 bedeutet: Die Verwischspur zeigt nach oben rechts. 90 bedeutet: Die Verwischspur zeigt nach rechts. 135 bedeutet: Die Verwischspur zeigt nach unten rechts. 180 bedeutet: Die Verwischspur zeigt nach unten. 225 bedeutet: Die Verwischspur zeigt nach unten links. 270 bedeutet: Die Verwischspur zeigt nach links. 315 bedeutet: Die Verwischspur zeigt nach oben links. strength= Mit diesem Parameter bestimmen Sie, wie stark der Verwisch-Effekt sein soll. 0 bedeutet keinen Verwisch-Effekt, jeder höhere Wert die Verwischspur in Pixeln. Beachten Sie jedoch, daß die Grafik innerhalb ihrer normalen Bildgröße dargestellt wird. Verwischspuren von Konturen, die sehr nah am Bildrand sind, werden nur bis zum Bildrand gezogen. 3. Transparenzfarbe Mit diesem Filter können Sie bei Grafiken eine Farbe als transparent definieren. Anders als bei transparenten GIF-Grafiken werden jedoch auch alle anderen Farben der Grafik betroffen. Beispiel (Style-Sheet-Definition für HTML-Tag im Text): <img src="grafik.gif" style="filter:Chroma(color=#FFFFCC)"> Mit Chroma(): können Sie eine Farbe in einer Grafik als transparent definieren. Der Filter erwartet folgenden Parameter: color= Eine HTML-gerechte Hexadezimalangabe der Farbe, die als transparent definiert werden soll (siehe Farben definieren in HTML). 4. Schattenwurf Dieser Filter bewirkt einen Schatten-Effekt für alle Konturen eines Elements. Bei Text sind bilden die Zeichen die Konturen, bei Grafiken sollten Sie nur solche für den Filter benutzen, die eindeutige Konturen haben, z.B. Cliparts. Beispiel (Style-Sheet-Definition für HTML-Tag im Text): <div style="width:100%; font-size:64pt; color:blue; filter:DropShadow(color=#C0C0C0, offx=3, offy=3)">Text</div> Mit DropShadow(): können Sie einen Schattenwurf erzwingen. Der Filter erwartet folgende Parameter: color= Eine HTML-gerechte Hexadezimalangabe der Farbe, die als Schatten definiert werden soll (siehe Farben definieren in HTML). offx= Anzahl für den Schatteneffekt horizontal in Pixeln. Positive Zahlen bewirken einen Schatteneffekt rechts, negative mit Minuszeichen davor einen Schatteneffekt links. offy= Anzahl für den Schatteneffekt vertikal in Pixeln. Positive Zahlen bewirken einen Schatteneffekt unten, negative mit Minuszeichen davor einen Schatteneffekt oben. positive= Diesen Parameter sollten Sie nur angeben, wenn Sie nur für die transparenten Pixel einer Grafik (siehe transparenten GIF-Grafiken) einen Schatteneffekt erzwingen wollen. Dazu sollte dieser Parameter den Wert 1 erhalten. Beachten Sie: Für verlaufende Schatten können Sie den Filter für Schatten filter:Shadow() verwenden. 5. Horizontal spiegeln Mit diesem Filter können Sie eine Grafik vertikal spiegelverkehrt anzeigen. Beispiel (Style-Sheet-Definition für HTML-Tag im Text): <img src="grafik.gif" style="filter:FlipV()"> Mit FlipV(): bewirken Sie die vertikale Spiegelung. Geeignet ist der Filter für Grafiken in HTML. Dieser Filter erwartet keine Parameter. 6. Glühender Rand Dieser Filter bewirkt einen "Heiligenschein" um ein Text- oder Grafikobjekt. Beispiel (Style-Sheet-Definition für HTML-Tag im Text): <div style="width:100%; font-size:100pt; color:000000; filter:Glow(color=#0000FF, strength=10)">Text</div> Mit Glow(): können Sie einen glühenden Rand definieren. Dieser Filter erwartet folgende Parameter: color= Eine HTML-gerechte Hexadezimalangabe der Farbe, die als Glühfarbe definiert werden soll (siehe Farben definieren in HTML). strength= Stärke der Wirkung. Erlaubt sind Werte zwischen 1 und 255, praxisgerecht sind aber in den meisten Fällen nur Werte zwischen 1 und etwa 20. 7. Graustufen Dieser Filter entfernt alle Farbinformationen aus einem Elment oder einer Grafik und wandelt sie stattdessen in Graustufen um. Beispiel (Style-Sheet-Definition für HTML-Tag im Text): <img src="grafik.jpg" style="filter:Gray()"> Mit Gray(): können Sie Graustufen erzwingen. Geeignet ist der Filter besonders für Grafiken. Dieser Filter erwartet keine Parameter. 8. Invertieren filter Dieser Filter invertiert farbige Elemente und Grafiken. Alle Farben werden bei der Anzeige in ihre Komplementärfarben verwandelt. Beispiel (Style-Sheet-Definition für HTML-Tag im Text): <img src="grafik.jpg" style="filter:Invert()"> Mit Invert(): können Sie invertieren. Geeignet ist der Filter besonders für Grafiken. Dieser Filter erwartet keine Parameter. 9. Transparenzmaske Dieser Filter ist für transparente GIF-Grafiken gedacht. Er ersetzt alle transparenten Pixel der Grafik durch eine gewünschte Farbe und stattdessen alle nicht-transparenten Pixel der Grafik durch die Farbe, die in der Grafik als transparent definiert ist. Beispiel (Style-Sheet-Definition für HTML-Tag im Text): <img src="grafik.gif" style="filter:Mask(color=#FFFFCC)"> Mit Mask(): können Sie für eine transparente GIF-Grafik eine Transparenzmaske definieren. Der Filter erwartet folgenden Parameter: color= Eine HTML-gerechte Hexadezimalangabe der Farbe, in der die Pixel erscheinen sollen, die in der GIF-Grafik eigentlich als transparent definiert sind (siehe Farben definieren in HTML). 10. Schatten Dieser Filter bewirkt einen Verlaufsschatten um die Konturen eines Elements. Beispiel (Style-Sheet-Definition für HTML-Tag im Text): <div style="width:100%; font-size:48pt; color:black; filter:Shadow(color=#808080, direction=135)">Text</div> Mit Shadow(): können Sie einen Schatten erzeugen. Dieser Filter erwartet folgende Parameter: color= Eine HTML-gerechte Hexadezimalangabe der Schattenfarbe (siehe Farben definieren in HTML). direction= Mit diesem Parameter geben Sie die Richtung an, in die der Schatteneffekt führt. Erlaubt sind die Werte 0, 45, 90, 135, 180, 225, 270, 315: 0 bedeutet: Der Schatteneffekt zeigt nach oben. 45 bedeutet: Der Schatteneffekt zeigt nach oben rechts. 90 bedeutet: Der Schatteneffekt zeigt nach rechts. 135 bedeutet: Der Schatteneffekt zeigt nach unten rechts. 180 bedeutet: Der Schatteneffekt zeigt nach unten. 225 bedeutet: Der Schatteneffekt zeigt nach unten links. 270 bedeutet: Der Schatteneffekt zeigt nach links. 315 bedeutet: Der Schatteneffekt zeigt nach oben links. 11. Wellenartige Störung Dieser Filter bewirkt eine wellenförmige Verzerrung des betroffenen Text- oder Grafikobjekts. Beispiel (Style-Sheet-Definition für HTML-Tag im Text): <div style="width:100%; font-size:64pt; color:#FFCCFF; filter:Wave(freq=5, light=20, phase=50, strength=6);">Text</div> Mit Wave(): können Sie eine wellenartige Verzerrung definieren. Dieser Filter erwartet folgende Parameter: freq= Die Wellenfrequenz. Je höher der Wert, desto kleiner die Wellen, je niedriger, desto größer die einzelnen Wellen. Praxisnah sind etwa Werte zwischen 5 und 50. light= Stärke des Lichts im Welleneffekt in Prozent. Werte zwischen 0 und 100. phase= Beginn der Sinus-Wellenphase in Prozent. Werte zwischen 0 und 100. Bei 0 beginnt der Welleneffekt normal, bei 25 etwa beginnt er bei 90°. strength= Stärke des gesamten Effekts. Praxisnah sind z.B. Werte zwischen 1 und 10. add= Wenn der Effekt auf eine Grafik angewendet wird, bewirkt add=1, daß die Originalgrafik zu der verzerrten Grafik hinzugefügt wird. Bei add=0 wird die Originalgrafik nicht hinzugefügt. 12. Foto-Negativ-Effekt Dieser Filter konvertiert alle Farben eines Elements oder einer Grafik in Graustufen und bewirkt einen Effekt wie ein Foto-Negativ. Beispiel (Style-Sheet-Definition für HTML-Tag im Text): <img src="grafik.jpg" style="filter:XRay()"> Mit XRay(): können Sie den Foto-Negativ-Effekt erzwingen. Dieser Filter erwartet keine Parameter.