# Was sonst noch wichtig ist
Fluchen ist die einzige Sprache, die alle Programmierer wirklich beherrschen.
In diesem Kapitel werden Sie weitere interessante Möglichkeiten von CSS kennen lernen, die Sie aber nicht zwangsläufig beherrschen müssen, da sie stellenweise auf bestimmte Browser beschränkt oder mit gewissen Voraussetzungen verknüpft sind.
# Cursor
Seit der CSS-Version 2.0 können Sie die Form bzw. das Aussehen des Mauszeigers verändern. Einen solchen Effekt kennen Sie von den Hyperlinks. Wenn Sie den Mauszeiger über einem Hyperlink positionieren, verändert dieser seine Form. In der Regel wird dann eine stilisierte Hand dargestellt. Mit der CSS-Eigenschaft cursor
können Sie nun eine Form festlegen, in die der Mauszeiger geändert wird, wenn der Benutzer mit der Maus über ein entsprechendes Element fährt. Als Wert für cursor
können Sie einen der Werte aus der Tabelle 6.1 angeben.
Wert | Erklärung |
---|---|
auto | Automatisch |
default | Standard-Cursor |
crosshair | Fadenkreuz |
e-resize | Pfeil nach rechts |
help | Fragezeichen |
move | Kreuz, mit Pfeilen in alle Richtungen |
n-resize | Pfeil nach oben |
ne-resize | Pfeil nach oben-rechts |
nw-resize | Pfeil nach oben-links |
pointer | Zeiger bzw. Hand (wie bei Hyperlinks) |
s-resize | Pfeil nach unten |
se-resize | Pfeil nach unten-rechts |
sw-resize | Pfeil nach unten-links |
text | Zeiger für Texte |
url(bild) | Bild |
w-resize | Pfeil nach links |
wait | Sanduhr |
Tabelle 6.1: Mögliche Werte für die Eigenschaft cursor
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- Cursor //-->
<html>
<head>
<title>Listing 6.1</title>
<style type="text/css">
<!--
h1, p, a { cursor:help; }
//-->
</style>
</head>
<body>
<h1>Cursor</h1>
<p>Bewegen Sie den Mauszeiger mal auf eines der Elemente.</p>
<a href="http://www.galileo-press.de/">Galileo Press</a>
</body>
</html>
Listing 6.1: Beispiel für die Eigenschaft cursor
Achten Sie aber darauf, dass Cursor nicht zweckentfremdet werden sollten. Wenn Sie das Tabelle 6.1 einmal in Ihrem Browser betrachten, werden Sie schnell feststellen, dass man hinter den einzelnen Elementen anhand der Cursor-Form etwas anderes oder mehr erwarten würde. Außerdem unterstützt Netscape erst seit der Version 6 diese CSS-Eigenschaft, der Internet Explorer hingegen seit der Version 4.
Eine Besonderheit ist der Wert url(bild)
für die Eigenschaft cursor
. Damit können Sie ein Bild als Mauszeiger verwenden. Diese Angabe wird jedoch nur vom Opera interpretiert, nicht von Netscape oder dem Internet Explorer.
# Scrollbar
Microsoft hat seinem Internet Explorer ein paar spezielle Eigenschaften beigefügt, die von keinem anderen Browser interpretiert werden und auch nicht CSS-Standard sind. So können Sie für den Internet Browser, passend zum Design Ihrer Webseite, die Farben aller Bildlaufleisten verändern, die beim Darstellen eines HTML-Dokuments sichtbar werden, z. B. von Textfeldern, von Bereichen mit der Eigenschaft hidden:overflow
oder des gesamten Anzeigebereichs.
Folgende Eigenschaften stellt Microsoft dabei zur Verfügung:
Eigenschaft | Erklärung |
---|---|
scrollbar-base-color | Grundfarbe der Scrollbar |
scrollbar-arrow-color | Farbe der Pfeile |
scrollbar-darkshadow-color | Farbe für den Schatten |
scrollbar-face-color | Farbe der Oberfläche |
scrollbar-highlight-color | Farbe für den linken und oberen Rand |
scrollbar-shadow-color | Farbe für den rechten und unteren Rand |
scrollbar-track-color | Farbe für die Trackbar |
scrollbar-3dlight-color | Farbe für einen 3-D-Effekt |
Tabelle 6.2: Eigenschaften zum Verändern der Scrollbar
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- Scrollbar //-->
<html>
<head>
<title>Listing 6.2</title>
<style type="text/css">
<!--
* { scrollbar-base-color:green;
scrollbar-arrow-color:yellow;
scrollbar-darkshadow-color:black;
scrollbar-face-color:blue;
scrollbar-highlight-color:lightblue;
scrollbar-shadow-color:darkblue;
scrollbar-track-color:gray;
scrollbar-3dlight-color:black; }
//-->
</style>
</head>
<body>
<textarea rows="100" cols="50"></textarea>
</body>
</html>
Listing 6.2: Beispiel für die farbliche Anpassung der Scrollbars
Zwar eröffnen sich damit viele neue Gestaltungsmöglichkeiten, achten Sie aber darauf, nicht allen Eigenschaften die gleiche Farbe zuzuweisen oder Farben wie Rot und Blau zu kombinieren. Für den Benutzer wäre eine vernünftige Verwendung Ihrer Seite ansonsten fast ausgeschlossen.
# Special Effects
Seit der Version 4 des Internet Explorers hat Microsoft spezielle Filter in den Browser eingebunden, mit denen sich Elemente transparent oder spiegelverkehrt darstellen lassen. Jedoch funktionieren diese Filter nur mit dem IE. Verwenden Sie diese Filter also nur dann, wenn Sie sichergehen können, dass die Benutzer den IE auch verwenden.
Diese Filter stammen aus der Bildbearbeitung. Als Eigenschaft wird dabei filter
verwendet und als Wert der Name des Filters mit den entsprechenden Parametern, z. B.:
filter:Alpha(opacity=0, finishopacity=100, style=2)
Einige dieser Filter lassen sich auf eine Auswahl von Elementen anwenden, andere nur auf Grafiken. Entsprechende Beispiele finden Sie auf der beiliegenden CD‑ROM unter x:\misc\css-filter.htm.
# Alpha
Mit dem Alpha-Filter können Sie den Vordergrund mit dem Hintergrund verschmelzen lassen, z. B. eine Grafik mit dem Dokument-Hintergrund. Dabei müssen Sie sich für einen von vier Stilen entscheiden, den Sie mit dem Parameter style
übergeben.
- Stil 0
Der Vorder- und Hintergrund werden farblich addiert. Es reicht die Angabefilter:alpha(style=0)
. - Stil 1
Linearer Farbverlauf von Punkt A nach Punkt B. Punkt A wird mit den Parameternstartx
undstarty
festgelegt und der Punkt B mit den Parameternfinishx
undfinishy
. Der Parameteropacity
(dt. Deckkraft) gibt den Startwert undfinishopacity
den Endwert an. Dabei bedeutet 0 transparent und 100 volle Deckkraft.filter:alpha(style=1, startx=0, starty=0, finishx=50, finishy=75, opacity=100, finishopacity=0)
- Stil 2
Radialer Farbverlauf von innen nach außen. Eine mögliche Angabe könntefilter:alpha(style=2, opacity=100, finishopacity=0)
lauten. - Stil 3
Rechteckiger Farbverlauf von innen nach außen. Eine mögliche Angabe könntefilter:alpha(style=3, opacity=100, finishopacity=0)
lauten.
# Blur
Mit dem Blur-Filter können Sie ein Element verwischen, z. B. einen Text oder eine Grafik. Das entsprechende Element wirkt dann, als wäre es von einem Punkt zum anderen gezogen worden. Dieser Filter kennt die folgenden Parameter:
direction
Dieser Parameter bestimmt die Richtung des Verwischeffekts. Als Wert dürfen Sie einen der folgenden Winkel angeben: 0, 45, 90, 135, 180, 225, 270 und 315 Grad.strength
Bestimmt die Länge der Verwischspur in Pixel, wobei 0 für keinen Verwischeffekt steht. Je höher der Wert, desto stärker der Effekt.
Eine vollständige Angabe könnte filter:blur(direction=90, strength=50)
lauten.
# Chroma
Mit diesem Filter können Sie einer Grafik eine transparente Farbe zuweisen, zusätzlich zu der möglicherweise bereits vorhandenen. Die entsprechende Farbe müssen Sie mit dem color
-Parameter übergeben. Dabei ist zwar jede Farbangabe möglich, aber ich möchte Ihnen empfehlen, Hex-Tripel-Werte zu verwenden.
Eine vollständige Angabe könnte filter:chroma(color=#336699)
lauten.
# DropShadow
Der DropShadow-Filter ermöglicht das Erzeugen eines Schattens zu einem Element, z. B. von einem Text oder einer Grafik. Dabei erwartet der Filter folgende Parameter:
color
Die Farbe des Schattens. Jede Farbangabe ist erlaubt.offx
Bestimmt die relative Position des Schattens vom Quellelement auf der x-Achse (horizontal) in Pixel. Positive Angaben verschieben den Schatten nach rechts und negative nach links.offy
Bestimmt die relative Position des Schattens vom Quellelement auf der y-Achse (vertikal) in Pixel. Positive Angaben verschieben den Schatten nach unten und negative nach oben.
Eine vollständige Angabe könnte filter:DropShadow(color:black, offx=5, offy=5)
lauten.
# FlipH
Mit dem FlipH-Filter können Sie eine Grafik horizontal spiegeln und entsprechend im Browser darstellen lassen. Dieser Filter erwartet keine Parameter, daher lautet die Angabe filter:FlipH()
.
# FlipV
Mit dem FlipV-Filter können Sie eine Grafik vertikal spiegeln und entsprechend im Browser darstellen lassen. Dieser Filter erwartet keine Parameter, daher lautet die Angabe filter:FlipV()
.
Auch eine Kombination dieser beiden Filter (wie auch aller anderen Filter) ist möglich. Schreiben Sie die einzelnen Filter durch ein Leerzeichen getrennt hintereinander. Das folgende Beispiel spiegelt eine Grafik sowohl horizontal als auch vertikal:
filter:flipH() flipV();
# Glow
Dieser Filter erzeugt einen »glühenden Rand« um ein Element. Dabei ist die Anwendung auf ein Textelement oder eine Grafik möglich. Der Filter erwartet die folgenden Parameter:
color
Legt die Farbe für den Glüheffekt fest. Es sind alle Farbangaben erlaubt.strength
Definiert die Stärke des Glüheffekts. Erlaubt sind Angaben zwischen 0 und 255, wobei 0 für keinen und 255 für den stärksten Effekt steht.
Eine vollständige Angabe könnte filter:Glow(color:green, strength=15)
lauten.
# Gray
Mit dem Gray-Filter können Sie ein Farbbild in Graustufen im Browser ausgeben. Dabei stehen 256 Graustufen zur Verfügung, auf die Sie jedoch keinen weiteren Einfluss haben. Deshalb erwartet dieser Filter auch keine Parameter, und die Angabe lautet filter:gray()
.
# Invert
Der Invert-Filter invertiert die Farben einer Grafik und stellt sie entsprechend im Browser dar. Beim Invertieren werden die aktuellen Farben des Bilds in Ihre Komplementärfarben umgewandelt. Da dieser Filter keine Parameter erwartet, lautet die Notation filter:invert()
.
# Mask
Mit dem Mask-Filter konvertieren Sie eine GIF-Grafik insofern, als dass der sichtbare und der transparente Bereich vertauscht werden. Der vorher transparente Bereich wird mit der Farbe dargestellt, die im color
-Parameter angegeben wurde, und die vorher sichtbaren Pixel werden transparent dargestellt. Eine Angabe könnte wie folgt lauten: filter:mask(color=black)
.
# Shadow
Der Shadow-Filter funktioniert ähnlich wie DropShadow. Jedoch wird bei dem Shadow-Filter ein verlaufender Schatten erzeugt. Der Filter erwartet die folgenden Parameter:
color
Die Farbe des Verlaufsschattens. Erlaubt ist jede beliebige Farbangabe.direction
Bestimmt den Winkel des Verlaufsschattens. Erlaubt sind die Winkel 0, 45, 90, 135, 180, 225, 270 und 315 Grad.
Eine typische Angabe ist filter:Shadow(color:darkgray, direction=135)
.
# Wave
Dieser Filter erzeugt einen Verzerrungseffekt ähnlich wie bei Wärmeschlieren und kann sowohl auf Text- als auch auf Grafikelemente angewendet werden. Die folgenden Parameter bestimmen das Ergebnis:
freq
Legt die Wellenfrequenz fest. Je höher der Wert, desto stärker ist die Verzerrung; je niedriger der Wert, desto geringer ist die Verzerrung.light
Legt die Beleuchtungsstärke für die Verzerrung in Prozent fest. Erlaubt sind Werte zwischen 0 und 100.phase
Legt den Beginn der Sinuswelle in Prozent fest. 0 bedeutet 0, 25 = 90, 50 = 180 und 75 = 270.strength
Legt die Stärke des Effekts fest. Je höher der Wert ist, desto stärker ist der Effekt.
Ein vollständiges Beispiel könnte wie folgt aussehen:
filter:wave(freq=25, light=75, phase=25, strength=15);
# XRay
Dieser Filter konvertiert eine Farbgrafik in Graustufen und erzeugt davon ein Negativ. Da dieser Filter keine Parameter erwartet, lautet die Notation filter:xray()
.
# Weitere Informationen
Unter der Internetadresse http://msdn.microsoft.com/library/default.asp?url=/workshop/author/filter/filters.asp können Sie im Microsoft Developer Network weitere Informationen zum Thema IE-Filter finden. Auch die Verwendung der DirectX-Schnittstelle durch Filter wird dort eingehender erläutert.
# Printmedien
Je nachdem, welche Informationen Sie auf einer Webseite zur Verfügung stellen möchten, könnte es für den Benutzer interessant sein, diese in ausgedruckter Form zu erhalten. Gerade bei längeren Beiträgen ist das Lesen auf dem Papier wesentlich einfacher als an einem Bildschirm. Genau für diesen Zweck bietet Ihnen CSS 2.0 die Möglichkeit, spezielle Eigenschaften zu verwenden, die eine Druckausgabe optimieren.
Leider verweigern noch viele Browser die Unterstützung dieser speziellen CSS-Eigenschaften. Da sie aber in kommenden Versionen hoffentlich implementiert werden, werde ich Ihnen diese Eigenschaften im Folgenden kurz vorstellen.
# Medientyp festlegen
Um für die Druckausgabe ein Seitenlayout zu definieren, müssen Sie im zentralen Stylesheet-Bereich den Selektor @page
notieren. In geschweiften Klammern dahinter folgen dann die Eigenschaften.
<style type="text/css">
<!--
@page { Eigenschaft:Wert; }
//-->
</style>
Für die Ausgabe auf dem Bildschirm ignoriert der Browser diese Angaben, da der Monitor kein seitenbezogenes Ausgabemedium ist.
# Seitengröße und -ränder
Mit den Eigenschaften size
(dt. Größe) und margin
(dt. Abstand) können Sie die Abmessungen der Seite und die Außenränder bestimmen. Für size
können Sie entweder eines der Schlüsselwörter auto
(Einstellung wird vom Drucker übernommen), landscape
(Querformat) oder portrait
(Hochformat) verwenden oder zwei numerische Angaben machen. Bei der letzten Variante steht der erste Wert für die Breite und der zweite Wert für die Höhe.
@page { size:landscape; } /* Querformat */
@page { size:21cm 29.7cm; } /* DIN-A4 Hochformat */
Die Seitenränder werden entweder einzeln über margin-top
, margin-bottom
, margin-left
und margin-right
oder zusammen über margin
festgelegt. Dabei ist jeweils eine numerische Angabe erlaubt.
@page { size:portrait;
margin-top:2.5cm;
margin-bottom:2.5cm;
margin-left:3cm;
margin-right:2cm; }
# Seitenumbruch
An bestimmten Stellen können Sie einen Seitenumbruch erzwingen oder unterdrücken, sodass z. B. explizit vor oder nach einem Element ein Seitenumbruch erfolgt oder nicht erfolgt. Dafür stehen die Eigenschaften page-break-before
(dt. Seitenumbruch vor Element) und page-break-after
(dt. Seitenumbruch nach einem Element) zur Verfügung. Beide Eigenschaften können einen der folgenden Werte erhalten:
always
Immer ein Seitenumbruch vor dem Element.avoid
Nie ein Seitenumbruch vor dem Element.inherit
Die Seitenumbruchangabe vom Elternelement übernehmen.auto
Der Seitenumbruch wird durch den Browser bestimmt.
Beide Eigenschaften sollten bei dem entsprechenden Element entweder im zentralen Stylesheet-Bereich oder mit dem Attribut style
an die Elemente übergeben werden.
h1 { page-break-before:always; }
Beachten Sie, dass der Internet Explorer bereits seit der Version 4 diese beiden Eigenschaften vollständig unterstützt.
# Allein stehende Zeilen
Es kann vorkommen, dass eine Zeile eines Textabsatzes (p
-Element) allein auf einer Seite steht, z. B. als erste oder letzte Zeile. Dies können Sie verhindern, indem Sie festlegen, wie viele Zeilen eines Textabsatzes mindestens auf einer Seite stehen sollen. Der zu notierende Wert entspricht dann der Mindestzahl an Zeilen.
Für Zeilen am Seitenende wird die Eigenschaft orphans
und für Zeilen am Seitenanfang die Eigenschaft widows
verwendet.
@page { orphans:4; /* mind. die ersten vier Zeilen */
widows:6; } /* mind. die letzten sechs Zeilen */
# Schnittmarken
Wenn Sie eine Seitengröße definieren, die kleiner ist als das Papier, auf dem gedruckt wird, können Sie mit der Eigenschaft marks
Markierungen setzen bzw. drucken, damit Ihre festgelegte Seitengröße auf dem größeren Papier auch erkennbar wird und an den entsprechenden Stellen geschnitten werden kann. Auch Markierungen für die Belichtung mit dem Satzspiegel (Passermarken) können hinzugefügt werden.
none
– Keine Markierungencrop
– Schnittmarken setzencross
– Passermarken setzen
Wenn Sie sowohl Schnitt- als auch Passermarken setzen möchten, notieren Sie beide Werte getrennt durch ein Leerzeichen:
@page { size:10cm 10cm;
marks:crop none; }
@page { size:12cm 12cm;
marks:crop; }
# Linke, rechte und erste Seite
Sie können für die erste Seite eines Drucks und für die linken und rechten Seiten unterschiedliche Einstellungen festlegen, um bei doppelseitigem Druck z. B. die korrekten Seitenränder zum Lochen einzuhalten. Dafür werden die Pseudoformate :first
, :left
und :right
für den @page
-Selektor notiert.
@page { size:portrait;
margin-top:2cm;
margin-bottom:4cm; }
@page:left { margin-left:2cm;
margin-right:3cm; }
@page:right { margin-left:3cm;
margin-right:2cm; }
# Zusammenfassung
- Mit der Eigenschaft
cursor
können Sie den Mauszeiger verändern, wenn der Benutzer die Maus über ein bestimmtes Element bewegt. - Mit acht verschiedenen Eigenschaften können Sie im Internet Explorer das Aussehen der Bildlaufleisten farblich beeinflussen.
- Der Internet Explorer kennt so genannte Filter, die – ähnlich wie in Bildbearbeitungsprogrammen – Effekte über einen Text oder eine Grafik legen können.
- Für die Druckausgabe können Sie mit dem Selektor
@page
die Seite für einen Ausdruck in der Größe, den Seitenabständen usw. verändern.
# Fragen und Übungen
- Was müsssen Sie notieren, wenn sich der Mauszeiger in den Typ
wait
umwandeln soll, sobald ein Benutzer seine Maus über ein beliebigesh1
-Element bewegt? - Verändern Sie die Farbe der Bildlaufleisten nach Ihren eigenen Wünschen (natürlich nur für Leser, die den IE auf ihrem System installiert haben).
- Mit welcher Anweisung können Sie eine Grafik gleichzeitig horizontal und vertikal spiegeln?
- Welche Eigenschaften zum Formatieren einer Druckseite interpretiert der Internet Explorer? Testen Sie es notfalls aus.