This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
in der Zelle< /td> | in der Zelle | < /tr> o |
< /p> In den Oatensatzen sind Oberschr iften und Absatze gespe ichert nicht aber die Phrase »Kapltel«. Die Kapitelnum m er ergibt sich aus der Pos ition des Datensatzes .
Beispiel Bei untersch iedl ich en Katego rien in Katalogen 5011ein grafis ches Symbol vor jeden Dat ensatz eingefOgt werden . Da der Katalog auch in tan dern publ izlert werden 5011, in denen eine andere Wahrung als der Euro gilt macht es Sinn, die Wahrungsbeze ichnung in das Stylesheet aufzunehmen, wo sie zentral fur den gesamten Katalog geand ert werden kann . Auch der Nachsatz »zzgl. MwSt.« 5011 dur ch eine einfache Anderung in de r jeweilig en Landessprache ersch ein en.
o <style ~(el.nie (Nelken)
C 14.90zz;1
~h..SI.
Tauprinzessin (Tulpen)
Sommemachtstroum (Kakteen) C ~7. 10 zz;l MwSI.
152
• • • •
o
type= "text /css "> table { background : #FFFFF7; border : 2px solid #FFDE7B } td .preis :before content : " " } td . prei s : after content : " zzgl. MwSt . " } td .kat :before content : url( "tulpe .gif ") " " } td .kat :after content :" "a t t r (t i t l e );
4.10 Eigenschaften fur dynamisch generierte Inhalte
counter- increment Erblich: tiein
05+ Version: C552
counter- increment ist eine Liste von einem oder mehreren Paaren,
Werte none I [ identifier number? 1+
bestehend aus iden tif ier und number , die zu einem Selektor gehoren und durch Leerzeichen voneinander getrennt sind . Jedes Paar
setzt den numerischen Wert fest , durch den der Zahler jedes Mal, wenn der spezifische Selektor vorgefunden wird, erhbht wird. Wenn der numerische Wert number nicht angegeben lst, wlrd per Vorgabe der Zahler um eins erhbht. Auf diese Weise kbnnen z.B. aufeinander folgende Kapitel, Textpassagen oder Bilder durchnummeriert werden. none ist die Voreinstellung und verhindert das Hochzahlen des Zahlers. i d en t i f i er
number : Der Identifier-Teil des Wertepaares ist zwin-
gend erforderlich, denn er identifiziert den Zahler und kann sich auf etne Klasse, einen Identifier oder Selektor beziehen . Der Zahlenwert number des Wertepaares tst optional und kann negative oder positive Werte annehmen . Wenn er nicht angegeben tst. wlrd der Zahler per
Wenn die display -Eig enschaft des Elements auf none gesetzt tst, wird der Zahler nle erh6ht. Wenn die vi sibil i ty -Elgenschaft des Elem ents auf hidden gesetzt tst: kann der Zahler erhOht werden.
Vorgabe um eins erhbht. / * Vor jedem neuen Kapitel
Beispiel
eins nach oben zahlen
• hl : be f or e { content : "Kapi t el " counter(kapitel) counter-increment : kapitel ; }
und »Kap i t el ... « ausgeben
counter-reset Erblich: Nein
*/
05+ Version: C552
counter-reset 1st elne L1ste von elnem oder meh reren Paaren, bestehend aus identifier und number, die durch Leerzelchen vonelnander getrennt sind und elnern Selektor zugewlesen sind. Jedes Paar setzt den numerisch en Wert des Zahlers auf den Wert number zuruck, wenn der spezielle Selektor vorgefunden wird. Wenn number nicht angegeben tst, wlrd der Zahler per Vorgabe auf null zuruckgestellt. Auf dlese Weise werden aufeinander folgende Kapltel, Unterkapltel und Bilder mit 1.0, 1.1, 1.2, 2.0, 2.1, 2.2 ... fortlaufend nummerlert.
Werte none I [ identifier number?
Beispiel p :before { content : "Kost en pro Teilnehmer : "}
• p :after
{ "
"; }
non e tst die Vorelnstellung und verhlndert, dass der Zahlerzuruckqesetzt wlrd. Wenn die dispiay-Elgenschaft elnes Elements auf none gesetzt rst, kann der Zahler nkht zuruckqesetzt werden. Wenn die vi sibil i ty-
15 3
Fuge einen
Sti I an
den Mond
Kapitel 4
Aile Stylesheet-Eigenschaften
Eigenschaft emes Elements auf hidden gesetzt tst, kann der Zahler zurOckgesetzt werden.
identifier number : Der Identifier-Wert des Wertepaares ist zwingend erforder lic h und ldentlftzlert den Zahler. Er kann durch eine Klasse, eine Id oder durch einen se lektor angesprochen werden . Der optionale nume rische Wert ist der Wert. auf den der Zahler zurOckgesetzt wlrd, wenn der speziftsche selektor vorgefunden wlrd. number kann positive und negative Werte annehmen. Wenn number nkht angegeben tst. wird der Zahler per Vorgabe auf null zurOckgese tzt. Der Beispielcode vom W3C nummeriert Kapitel als 1, 1.1, 1.1 .1 usw.
Beispiel • 01 • li : before
counter-reset : item content : counters (i tern ,
" ." ) ;
counter-increment: item
Werte
quotes
IE5 (Mac)
none I
Erblich: Ja
Version : C552
[ string sering 1+
qu otes ist eine Liste von elnern oder mehreren Typen von bffnenden und schl tesenden AnfOhrungszeichen, die durch Leerzeichen voneinander getren nt sind. So kbnnen spezielle AnfOhrungszeichen gewahlt werden, wenn die content -Eigenschaft AnfOhrungszeichen vor oder hinter eln spezlftsches Element setzt und dabei stll und tnhaltsabhanglge Darstellu ngen bewahrt bleiben . (AnfOhrungszeichen mOssen nicht gesetzt werden. Wenn der eingesetzte Inhalt eine einfache Zeichenkette tst, kann man genauso gut «, >, " ? oder beliebige andere Zeichen benutzen .) none verhindert die Darstellung von AnfUhrungszeichen in der conten t -Elgenschaft.
string string komm t Im mer paarwelse vor und deftntert eln Paa r aus bffnenden und schllef:>enden Hochkommas . Die erste Zelchenfolge string deflnlert die bffnenden Hochkommas, die zwelte Zelchenfolge string die schlle f:>enden Hochkommas . Jedes AnfUhrungszelchen muss in doppelte bffnende und schuesende Hochkom mas gesetzt werden und darf keine Leerzeichen enthalten. Wenn Leerzeichen enthalten sind , werden ste dargeste llt.
Darstellung
Beispiel
»Dies sind >eingebectete< Hochkom:nas . «
o
154
• q : lang (de l quotes : " » " " « " " >" " <" } ... Dies sind
eingebettete
Hochkommas .
4.11 Aural - Eigenschaften fur die Sprachausgabe
4.11 Aural - Eigenschaften fUr die 5prachausgabe Die aurale Darstellung eines Dokuments verwandelt das Dokument in »flachen« Text und fOttert damit den Sprachsynthesizer fur die Sprachausgabe. Sie tst gedacht fur Blinde, zum Lesenlernen, zur UnterstOtzung fur Menschen mit Leseschwachen, zur Unterhaltung , fur ein zukOnftiges »lnternetradlo« - es gibt vlelfaltlge Anwendungen. Sprachsynthesizer, die Texte in Sprache umwandeln (Text-toSpeech), sind bereits vielfach verfOgbar. Zwar ist noch deutlich zu erkennen, dass hier der Computer spricht, aber sie sprechen klar und verstandlkh und modulieren die Sprache erstaunlich gut. Eine der ersten Sprachumwandlungen fur Browser im Internet ist
Noch erscheint uns die Sprachausgabe genauso wie WebTV als eher exotische Anwendung. Andererseits ist es heute fUr die Besitzer von Palmtops fast selbstverstiindlich, die neueste Adressbuchsoftware aus dem Internet zu laden. Erschien uns das nicht vorzwei, drei Jahren als ganz schon exotisch?
Logox, eine kommerzielle Software der G DATA Software AG. Logox besteht aus einem kostenlosen Plug-in fur Internet Explorer auf dem PC und einem Softwarepaket fur Webentwickler, die Seiten mit Sprachausgabe aufbauen wollen. Logox arbeitet nicht mit Stylesheets, sondern verfolgt einen herstellerspezifischen Ansatz. Aurale Stylesheets werden von dem Sprachpaket nicht interpretiert - der Hersteller setzt auf seine eigene Entwicklung. Aber das W3C hat die Spezifikation von Styiesheets fOr die Sprachausgabe mit grol)em Druck vorangetrieben . Und so kbnnte das Stylesheet fur die Sprachausgabe Oberschriften ausdrOcken:
• hI , h2 , h3 , h4 ( voice-family : male ; richness : 80 ~ cue-before : url( "beep .au ") • p .heidi • p .peter • p .goat
azimuth : center-left azimuth : right volume : x-soft }
Vor einer Oberschrift spielt der Sprachsynthesizer einen Klang (beep .au) und spricht die Oberschrift dann mit einer sehr vollen mannlichen Stimme .
volume speak pause-before pause-after pause cue-before cue-after cue playingduring azimuth
elevation speech-rate voice-family pitch pitch-range stress richness speakpunctation speak-numeral
155
Kapitel 4
Werte number percentage silent
Aile Stylesheet-Eigenschaften
volume (552
Erblich: Ja
x-soft
volume legt die Lauts tarke der Ausgabe fest.
soft I medium
number ist eine beliebige Zahl zwischen
loud I x-loud
a und 100, wobei a die mini-
male tautstarke und 100 dementsprechend die hbchste Lautstarke darstellt.
percentage wird relativ zu elnem inharenten Wert berechnet. silent bedeutet kein Gerausch. Nicht zu verwechseln mit dem Wert 0 fOr number.
x- so f t
=
0 soft
=
25 medium
=
50 loud
=
75
x-loud = 100 Die Vorelnste llung tst med ium.
Werte none I normal spell-out
speak Erblich: Ja
(552
pause-before legt elne Pause fest, die vor dem Vorlesen elnes Eleanaloge Eigenschaft zu display dar. none unterdruckt die Sprachausgabe fur das Element und verbraucht dabei keine Zeit. normal tst die Voreinstellung und bewlrkt eine normale, sprachabhangige Aussprache eines Elements . spell-out buchstabiert den Text.
Werte time I percentage
pause -before Erblich: Nein
(552
pause-before legt eine Pause fest, die vor dem Vorlesen eines Elements eingelegt wird.
ti me gibt den Zeitraum fur eine Pause in absoluten Zeiteinheiten wie Sekunden und Millisekunden an.
p e r cen t age benutz t die Umkehrung des Wertes fur speech-rate. Wenn speech-rate m it 120 Wortern pro Minute festgelegt tst. betragt pause-before : 100% 500 ms .
156
4.11 Aural - Eigenschaften fur die Sprachausgabe
pause-after
Werte (552
Erblich : Nein
pause-after legt eine Pause fest, nachdem der Sprecher einen In-
time I percentage
halt vorgelesen hat.
time gibt den Zeitraum fur eine Pause in absoluten Zeiteinheiten wie Sekunden und Millisekunden an.
percentage benutzt die Umkehrung des Wertes fO r speech -rate . Wenn speech-rate mit 120 Wbrtern pro Minute festgelegt tst. betragt pause-after : 20% 100 ms .
pause
Werte (552
Erblich : Nein
pause stellt die Kurzform fur die belden Eigenschaften pause-befo-
[ time p e r c en t age]
{1 ,2}
re und pause-after dar. Wenn zwel Werte angegeben sind, bestlmmt der erste Wert p a us e b e fo re und der zwelte Wert pause -af te r . Wenn nur eln Wert angegeben rst. wlrd er auf belde Eigenschaften angewendet. Erlaubt sind absolute Zeiteinhelten in Sekunden und Miliisekunden oder alternativ Prozentangaben der Sprechgeschwindigkeit, wodurch das Stylesheet robuster gegen Anderungen der Sprechgeschwindkelt wlrd ,
Beispiele • hI {pause : 20ms
/ * / *
pause-before : 20ms ; 20ms
pause-afte~ :
*/ */
30ms ; */ • h2 {pause : 30ms 40ms / * pause -after : 40ms */ • h3 {pause-after : lams} / * pause -before : ? ; pause- * / / * after : lams */ / * pause-befo~e :
157
Kapitel 4
Werte ur I
( "urladdress ")
none
Aile Stylesheet-Eigenschaften
cue-b efore Erblich: Nein
C552
cue -before legt einen Klang fest, der vor der Sprachausgabe eines Elements gespielt wird, um das Element vom vorangegangenen Element zu trennen .
ur L
("urladress") ist die Adresse elner Klangquelle. Wenn sich
die Uri zu etwas anderem auflbst als zu einer Audiodatei - z.B. ein Bild darstellt -, wird die Quelle ignoriert und die Eigenschaft wlrd behandelt, als ware der Wert none (Vorelnstellung) deklariert worden.
Werte u r L ( " urladdress ")
none
cue-after Erblich: Nein
C552
cue-after legt einen Klang fest, der nach der Sprachausgabe elnes Elements gespielt wird, um das Element vom nachsten Element zu trennen . ur I
(" urladress") ist die Adresse einer Klangquelle. Wenn sich
die Uri zu etwas anderem auflbst als zu einer Audiodatei - z.B. ein Bild darstellt - , wird die Quelle ignoriert und die Eigenschaft wird behandelt,
ats ware der Wert none (Voreinstellung) deklariert worden.
Beispiel • a (cue-before : ur l( "glocke .aiff ") ; cue -after : ur I ( "dong .wav ") } • hI (cue-before : ur l( "pop .au ") ; cue-after : url( "pop .au ") }
Werte
cue
cue-before &1
Erblich: Nein
cue-after
cue 1st elne generlsche Eigenschaft, die den Klang vor und nach ernem Stil festlegt und dam lt elne Kurzform der Eigenschaften cue-before und cue-after darstell t.
C552
Wenn zwei Werte angegeben sind, bestimm t der erste Wert c ue- be-
fore und der zwelte Wert cue-a fter. Wenn nur em Wert angegeben tst. wird er auf beide Eigenschaften angewendet.
158
4.11 Aural - Eigenschaften fur die Sprachausgabe
Beispiel • hI (cue-before : url("pop .au "); cue-after : rl( "pop . a u " ) • h l (cue : url( "pop .au ")}
play-during Erblich: Nein
Werte C552
play-during legt einen Klang fest, der wahrend des Lesens eines Elements gespielt wird.
ur l
(" urladdress·) I
mix? I repeat? auto I none I
urI ("urladdress") ist die Adresse elner Klangquelle. mix glbt an, dass der Sound vom Vorfahrenelement Obernommen und weiter eingesplelt wlrd, wahrend der Klang, der In ur l angegeben wurde, mit dem Sound des Vorfahren gemlscht wlrd. repeat bedeutet, dass der Sound wtederholt wtrd, falls er zu kurz rst. um die volle Dauer des Elements aufzufO llen. Ansonst en wird der Sound einmal gespielt und endet dann. Wenn der Sound zu lang fur die Dauer des Elements tst, wird er »abgeschnitten«, sobald das Element fertig ausgesprochen wurde. mix und repeat sind optional. auto 1st die Voreinstellung und glbt an, dass der Sound des Vorfahrenelements weiterspielt und nicht neu gestartet wird (was der Fall ware, wenn die Eigenschaft erblich ware).
none bedeutet Stille. Der Sound des Vorfahrenelements (falls es etnes gibt ) ist still, solange das augenblickliche Element dauert, und fahrt fort. sobald das augenbllckliche Element fertig ausgesprochen tst .
Beispiel • blockquote .sad ( play-during : ur I ( "vi o li ns . aif f " ) • blockquote q play-during : url( "harp .wav ") mix} • span .quiet ( play-during : none }
azimuth Erblich: Ja
Werte C552
azimuth legt fest. aus welcher horizontalen Richtung die Stimme kommt. Raumlicher Klang ist ein wichtiges stilistisches Hilfsmittel bei der Prasentation von Sprache.
angle beschreibt den Winkel, aus dem ein Element erklingt. Er wtrd
angle I
[
[ left-side far-left I left I center -left center I
in einem Bereich von -360° bis 360° angegeben. 0° bedeutet, dass
159
Kapitel 4
center-right right I far-right I right-side) &1 behind) I leftwards rightwards
Aile Stylesheet-Eigenschaften
der Klang direkt von der Mitte einer trnaglnaren Buhne ausstrahlt, 90 0 bedeutet, das der Klang von rechts kommt, 1800 ist der Klang von hinten, 270 0 (oder -90 0 ) der Klang von links . Negative Werte sind ebenfalls erlaubt, so ist die Angabe -90 0 gleichbedeutend mit 270 0 • left-side = 270 0 (-90°), kombiniert m it behind = 270° far-left = 300° (- 60°) , komb iniert mit behind = 240 ° left = 320° (-40 °), kornblnlert mit behind = 220° center-left = 340° (-20°), komb iniert mit behind = 200° c enter (Voreinstellung)= 0° (-360°), komb iniert m it behi nd = 180 ° center- right = 20 ° (-340°), komb iniert mit behind = 160° right = 40° (-3 20°), kom biniert mit behind = 1400 f ar -ri ght = 60 ° (-300°), kombin iert mit behind = 120 ° right-side = 90° (-270°), kornblniert mit behind = 90° leftwards bewegt den Klang nach links, relativ zum augenbllcklichen Winkel. rightwards bewegt den Klang nach rechts, relatlv zurn augenblicklichen Winkel.
Werte angle I below I level I above I higher I lower
elevation Erblich : Ja
(552
e levation legt fest, aus welcher vertikalen Richtung die Stimme kommt.
angle beschreibt den Winkel, aus dem ein Element erklingt. Er wtrd in einem Bereich von -90 0 bis 90 0 angegeben . 0 0 bedeutet, dass der Klang vom vorderen Horizont ausstrahlt, auf einer Ebene mit dem Zuborer, 90 0 bedeutet, dass der Klang direkt von oben kommt, -90 0 ist der Klang direkt von unten . below = -90° level = 0 ° (Voreinstellung) above = 90 ° higher fOgt dem Winkel 10° hinzu. lower zleht dem Winkel 10° abo Werte auserhalb des Bereichs von -90 0 bis 90 0 werden .abgeschnttten" .
160
4.11 Aural - Eigenschaften fur die Sprachausgabe
Beispiel • • • •
hI { elevation : above } tr .a elevation : 60deg tr .b elevation : 30deg tr .c elevation : level
speech-rate Erblich: Ja
Werte (552
speech-rate legt fest, in welcher Geschwindigkeit ein Element gesprochen wird.
number gibt die Sprechrate in W6rtern pro Minute an. Es handelt slch hier um eine Angabe, die stark von der jewe iligen Sprache abhangt, aber dennoch von den meisten Sprachsynthesizern unterstUtzt wlrd.
number x-slow slow I medium fast I x-fast faster slower
x-slow entspr lcht 80 W6rtern pro Minute. slow entsprlcht 120 W6rtern pro Minute . me dium lst die Voreinste llung und entsp rlcht ungefahr 180 bts 200 W6rtern pro Minute. fast entsp rlcht 300 W6rtern pro Minute . x -fast entsp rlcht 500 W6rtern pro Minute. faster fOgt der augenbllckllchen Sprechrate 40 W6rte rn pro Minute hlnzu. slower senkt die augenbllckllche Sprechrate um 40 W6rter pro Minute.
voice-fam ily Erblich: Ja
Werte (552
voice- fami ly ist elne Liste von Stimmfamilien, die bestimmte Stimmen enthalten - ahnlkh wie Schriftfamilien.
[ specific-voice generic-voice i . ] * [ specific-voice generic-voice ]
specific-voice bezeichnet spezlelle Stimmen. Belsplele sind comedian, t r i.no i ds . carlos, lani. Stlmmen werden ebenso behandelt wie Schriften . Sle k6nnen in elner Auswahlliste mit Alternativen angegeben werden . Wenn der Name einer Stimme aus mehreren durch Leerzeichen getrennten W6rtern besteht, wird empfohlen, den Namen in eintache Hochkommas zu setzen.
generic-voice glbt die Stlmmfamillen an. M6gliche Werte sind male, female und child (en tsprlcht elner generischen Schrlftfamille wle sans-serif und monospace).
161
Kapitel 4
Aile Stylesheet-Eigenschaften
Beispiel • body { voice-fam 'ly : carlos , robert , male ; }
Werte
pitch
fr equency
Erblich: Ja
(55 2
x- l ow I low I medium high I x- h i gh
p it c h spezifiziert die sprechende s tim me . Die stim m lage de r me nsc hlichen stimme Iiegt typische rweise bei 120 Hz fur rnannlkhe und 210 Hz fur weibliche stimmen. sprachen werden mit unterschiedlichen Betonungen und stimmlagen gesprochen , die eine zusatzlkhe Bedeutung einbringen kbnnen . frequency gibt die mlttlere 5prachfrequenz In Hertz (Hz) an .
x-low, low, medium (Vore lnstellung), high. x-high sind Werte,
die nicht in absoluten Hz-Werten angeg eben werden kbnn en, da ste auf der jeweiligen s timmfamilie beruhen .
Werte number
pitch-range (552
Erblich : Ja
pi t ch- range legt die Variationen der vorl esenden 5tim m e fes t. 5011 der Vorleser eher monoton oder mit einer variantenreichen Betonung sprechen? number ist ein Wert zwischen
a und 100 . a 5011 eine monoton e stim-
me und 50 (Voreinstellung) eine normale Betonung erzeugen. Hbhere Werte sind fOr animie rte Stimmen gedach t.
Werte
stress
number
Erblich : Ja
(552
stress legt die Betonu ng eines Elem ents durch die Sprechersti mme fest. Englisch z.B. ist eine betont e Sprache. in der die verschiede nen Sat zte ile unterschiedlich betont werden . Deutsch ist ei ne relativ monotone sprache. number ist ein Wert zwischen
a und
100. Die Bedeutu ng hanqt von
der jeweil igen Sprache abo Ein Level von 50 tst der Standard . Bei
162
4.11 Aural - Eigenschaften fur die Sprachausgabe
rnannlrchen Englisch sprechenden Stimmen mit einem mittleren
p itch von 122 Hz klingen Betonung und Intonation anders als bei einer italienischen Stimme .
richness
Werte
Erblich : Ja
(552
number
richness legt die Starke der Stimme fest - 5011 die Stimme eher voll oder dunn klingen? Eine reiche Stimme wird in einem groten Raum voll klingen , wahrend eine weiche Stimme den Raum nicht FUllen kann. number ist ein Wert zwischen
a und
100 . Die Bedeutung hangt von
der jeweiligen Sprache abo Ein Level von 50 ist der Standard . Bei mannlkhen Englisch sprechenden Stimmen mit einem mittleren pitch
von 122 Hz klingen Betonung und Intonation anders als bei einer italienischen Stimme .
speak-punctuation Erblich : Ja
Werte (552
speak -punctuation legt fest, ob 5atzzeichen vorgelesen werden.
code none
code bedeutet, dass die Interpunktion wie Semikola, Klammern und Doppelpunkte wortlkh gesprochen wird. none ist die Voreinstellung und bewirkt, dass die Interpunktion nicht gesprochen, sondern durch entsprechende Pausen ausgedrOcktwird.
speak-numeral Erblich : Ja
Werte (552
spea k-numeral legt fest, wie Zahlen vorgelesen werden.
digits continuous
digits bewirkt, dass Zahlen als individuelle Zeichen gelesen werden. Die Zahl 237 wird als "Zwei, Drei, Sieben" vorgelesen. continuous ist die Voreinstellung und spricht die volle Zahl aus. Die Zahl 237 wird als Zweihundertsiebenunddreitig vorgelesen.
163
Fuge einen
Stil
Kapitel 4
an den Mond
Aile Stylesheet-Eigenschaften
4.12 Paged Media - Stile fUr den Druck Wenn Stylesheets jetzt noch uber die Mechanismen verfiigen wiirden, die einen Seitendruck regeln, ware ein Browser ein Satzprogramm ...
Wahrend es sich bei der Ausgabe auf dem Monitor und auch bel der Sprachausgabe um eme »fortlaufende« Ausgabe handelt, muss der Druck eln HTML-Dokument in eine oder mehrere Seiten unterteilen . Fur die Aufnahme von Eigenschaften fur die Seitengestaltung der Druckausgabe hat CSSZ das Modell fur die visuelle Formatierung um eine neue Box erganzt : Die Seitenbox erweitert das Boxmodell , damit Autoren Papiergr6fSen, Rander, Ausrichtung des Papiers, Bedingungen fur einen Seitenumbruch usw. angeben k6nnen . Das Modell beinhaltet die Seitenausgabe, wie wir sie von den Desktop-Druckern kennen : Dokumente werden Seite fur Seite auf jeweils
Blatt n
I I
[Seit enbox
Blatt /
I
I
Transfer~
I
margin
Blatt
----f Transfe;:--"
t "l;
I
Zum Verstandnis des seitenmodells in CSS2 sollte nicht der typische Desktop-Drucker zum Vergleich herangezogen werden . Der Desktop-Drucker druckt in der Regei eine seite auf das passende Papier. 1m Offsetdruck hingegen kann eine seite auf ein !lDINA4+(( Papier - einen Bogen, der einige Zentime ter grof)er als DIN A4 ist - , meistens jedoch auf noch grof)ere Bogen gedruckt werden . Das ermoglicht !lAnschnitte(( - das Drucken von Elementen, die bis an den Papierrand gehen .
ein einzelnes Blatt gedruckt. Dies stellt aber nur eine M6glichkeit unter vielen dar. Hinzu kommen der doppelseitige Druck, der linke und rechte Seiten unterschiedlich formatiert, und der Druck mehrerer Seiten auf ein Blatt oder einen »Bogen«. Zusatzlkh werden »Signaturen« ausgegeben , bei denen es sich z.B. um Beschnittzeichen und eine Sei-
164
4.12 Paged Media - Stile fur den Druck
tenbeschreibung handeln kann, anhand derer beim Falten und Beschneiden des Papiers die richtige Reihenfolge festgeste llt wird. Ein Dokument kann das Papier fOr den Druck aus mehreren Peplerkassetten bezlehen und ein Dokument kann in eine Datei ausgegeben
Die @page-Regel @page ( s i ze : 21cm 29,7cm ; ma r q i n : 2cm; )
definiert eine SeitenboxgrMe von
werden . Der Inhalt kann uber die Seitenbox hinausgehen, wenn z.B.
21 ,0 x 29, 7 em und erzeugt einen
Bilder oder andere Elemente der Seite angeschnitten werden . Der An-
Abstand (margin ) von 2 cm zwischen
schnitt von Bildern, die uber den Seltenrand hinausgehen sollen , wird
den Randern der Seltenbox und dem
dureh einen negativen Abstand (margin) von der Seitenbox umgesetzt.
Seitenbereich.
Die jeweilige Realisierung ist dem User Agent, bel dem es sich jetzt
Die Eigenschaften border und padding kOnnen nich t auf die Seite einer Druckausgabe angewendet werden .
um den Druckertreiber handelt, und einem Seitenschneider uberlassen.
Regeln fUr den Druck Autoren geben Mate, Orientierung und die Rander der Seitenbox in der @page-Regel an. Eine @page-Regel besteht aus dem Schlusselwort @page, einem optionalen Seitenselektor, gefolgt ohne Leerraum von einer optionalen Seitenpseudoklasse und einem Block von Deklarationen (dem Seitenkontext) . Die Seitenregel @page enthalt die Abmessungen, die Orientierung (Hochformat oder Breitformat) und die Rander der Seite, z.B. @page quer :left { size : 29 ,7cm 21cm ; margin : 2cm } . Der Seitenselektor gibt an, auf welche Seiten die Deklarat ionen anzuwenden sind. Ein Seitenselektor kann z.B. die erste Seite , aile linken Seiten oder eine Seite mit einem spez tflzterten Namen ansprechen . Die Abm essungen der Seitenbox werden durch die size-Eigensch aft bestlmmt. Die Abmessungen des Seitenberelchs sind die Abmessungen der Seltenbox ohne margin. Inhalte lrn @page-Modell sind in Blbcken oder Boxen untergebracht. Boxen Iiegen horizontal auf der Seite. Dabei folgt die Oberkante elner Box hinter der Unterkante der vorgehenden Box. Anders als die zugrunde liegend e Seite kbnnen die Boxen die Eigenschaften margin, border und padding aufwelsen, die bet der Druckausgabe auch respektlert werden . Die Boxen werden vertikal auf unterschiedliche Weise ausgerichtet: anhand der Ober- und Unterkanten oder anhand der Grundlinie (baseline) des Textes in den Boxen . Der Text innerhalb einer Box liegt in einem rechteckigen Bereich, der Inllnebo x. Die Breite einer Inllnebox wird durch den umfassenden Block und die Hbhe durch die Zeilenhbhe bestimmt. Dabei kann eine Zeile hbher werden als die Box, in der sre Iiegt (wenn z.B. die Boxen 50 ausgerichtet wurden , dass die Grundlinien registerhaltig werden ). Die Pseudoklassen :first, :Ieft und :right wurden fOr die Seitenausgabe beim doppelseitigen Druck defin iert.
165
Kapitel 4
Werte
Aile Stylesheet-Eigenschaften
size
length t i . 2} auto I landscape I portrait I
IE5+ (PC) Ml N6 05+ C552
size gibt die Gral)e und Ausrichtung (Hoch/Querformat) der Seiten box an. Die Gral)e der Seite kann absolut oder relativ angegeben werden . Bei einer relativen Angabe 5011 der Druck auf die Seitengral)e angepasst werden .
length erzeugt elne absolute 5eitenbox . Wenn nur ein Wert angegeben ist, setzt er sowohl die Breite als auch die ttohe der Box. Mit zwei Werten werden Breite und ttohe der Box spezifiziert.
Da die 5eitenbox der umfassende Biock tst, sind Prozentangaben tut die 5eitenbox nicht erlaubt .
auto ist die Voreinstellung und setzt die 5eitenbox auf die Gral)e und Ausrichtung der 5eite. landscape Oberschreibt die Ausrichtung des Papiers. Die horizontaIe Kante ist langer als die vertikale Kante . portrait Oberschreibt die Ausrichtung des Papiers. Die vertikale Kante ist langer als die horizontale Kante .
Beispiel • @page
Werte [ crop none
size : auto ; margi n : 10% ; }
marks &
Zurzeit von keinem Browser untersWtzt
Erblich: Ja
I cross 1 I
C552
Beim professionellen Druck werden Beschnittzeichen auserhalb der 5eitenbox gedruckt. Die Beschnittzeichen (crop marks) werden fOr die Ausrichtung des Papiers benutzt. Gral)e, 5til und Position der Beschnittmarken werden dem User Agent Oberlassen. 1m Zeitschriften- und Buchdruck werden 5eiten auf grol)e Bogen gedruckt, die anschllesend auf die tatsachltche 5eitengral)e beschnitten werden . Anhand von Pass- und Beschnittmarken werden die 5chneidegerate ausgerichtet. crop druckt 5chnittmarken an den 5tellen, an denen die 5eite zuge-
,..... .. lrDtdo.I1Wff 1.. ~ ........ ~-..w-T""'1NWw4oWl
~_-:-"::'=~': ,.w""'4IcT"'.1Il
............. ...,....-.....
u.II ................ ..,AM
,
schnitten werden 5011. Schnittmarken konnen an den Ecken des Bildes
_
----------------.-.._._----------.-..-._---_ .. ---------_._-----_ ._----------
_...._----..----...--------------._- - -------------.-
166
gedruckt werden . cross druckt Passmarken (z. B. Passkreuze und 5iemenssterne). Diese Marken dienen in erster Linie zum Ausrichten der verschiedenen
•
Farbseparationen .
- - - 5chnittmarken
4.12 Paged Media - Stile fUr den Druck
Fuge einen
page-break-before
IE5+ (PC) Ml N605+
Werte
page-break-after
IE5+ (PC) Ml N605+
au 0 I always avoid I left I right
C552
Erblich: Ja
page-break bestimmt, ob em Seitenumbruch vor (be f o r e) oder nach (a f er ) einem Element durchgefOhrt werden 5011.
Stil
an den Mond
auto ts t die Vorelnstellung und erzwlngt kelnen Seltenumbruch . always erzwlngt stets einen Seltenumbruch vor/nach dem Element. avoid verrnetdet Seltenum brOche vor/nach dem Element. left veran lasst eln oder zwei SeltenumbrOche, so dass das Element stets vor/auf der Iinken Selte ausgegeben wlrd .
right veranl asst eln oder zwel SeltenumbrOche, so dass das Element stets vor/auf der rechten Selte ausgegeben wlrd .
page -break -inside
Zurzelt von kelnem Browser untersWtzt
Erblich : Ja
C552
page- break- ins ide bestimmt, ob inn erhalb ein es Elem ents ein
Werte auto I avoid
Seitenumbruch stattf inde n kann.
auto 1st die Vorelnstellung und erzwlngt kelnen Seltenumbruch . avoid verrnetdet SeltenumbrOche vor/nach dem Element.
page
Zurzelt von kelnem Browser untersWtzt
Werte
C552
auto I
Erblich: Ja
page gibt eine bestimmte Seite an. Wenn ein Blockelem ent mi t InlineInhalten eine Eigenschaft page aufwelst, die sich vom vorangega nge -
identifier
nen Block mi t Inlineinhal ten un tersche idet, werden ein oder zwel Selten in de r Druckausgabe eingefOgt. Die Boxen nach dem Seitenum bruch werden auf eine r Seite des spezifizierten Typs ausgegeben .
auto ist die Voreinste llung und druckt Seiten entsprechend den Angaben in der @page-Regel . identifier markiert eine bestimmte Seite , die in einem abweichen-
den Format ausgegeben werden 501 1.
Beispiel div :@page narrow {s'ze : 9cm 18cm; • @page rotated {size : landscape ; } • div {page : narrow ; }
In diesem Beispiel des W3C werden zwei Tabel/en auf 5e iten im Querformat ausgegeben. Wenn es moglich is t, sol/en sie auf einer 5e ite gedruckt werden, auf keinen Fal/ aber auf einer 5e tte im Hochformat (portrait), obwohl das Dokument im Hochformat angelegt wurde.
167
Fuge einen
Stil
an den Mond
Kapitel4
Aile Stylesheet-Eigenschaften
• table {page : rotated ; } ... und im Dokum ent: -cd.iv»
o o o o Werte integer
-Tags soilen in verschiedenen Layoutbereichen unterschiedlich formatiert werden, ein Link in der Navigationsleiste soil farbig hinterlegt werden, eln Link im Text nicht. Die Elemente
fur
die
Navigation
sollen
auf der
linken
5eite des
Browserfensters angeordnet werden. C55 Ibsen diese Probleme durch verschiedene Arten von 5elektoren, die nach bestimmten Regeln miteinander kombiniert werden, um auf individuelle Elemente, die tief in der 5chachtelstruktur des Dokuments Iiegen, zuzugreifen und ste in Form zu bringen . Zu den intuitiven 5elektoren gehbren der HTML-Elementselektor, der den Namen des HTMl -Tags benutzt (p {font- family : Arial} oder h l {background : gray} ), und der Klassenselektor, dessen Name durch das class-Attri-
but an ausgewahlte Tags weitergegeben wlrd ( . einzug {text -indent : O.5em} und 1m HTMl -Code -cp c l as see i nzuqc- ). Daruber hinaus gibt es den Universalselektor, der aile Elemente anspricht, den Kontextselektor, der auf Elemente innerhalb von bestimmten anderen Elementen zugreift, den id-5elektor, der ein HTMLElement mit der entsprechenden Identifikation durch ein id-Attribut auswahlt.
170
5.1 Verschiedene Arten von 5elektoren
Bezeichnung
Beispiel
Erklarung Aile Elemen te sind von den deklarlerten Eigen schaften
Unlversalse lektor
betroffen . HTML-E lemen tselektor
p
Aile
-Tags 1m Dokument sind betroffen.
Abste lgender Selektor
p em
Aile Vorkom men (Instances) elnes
-cems-Iags. die In elnern
... -Tag elngesch lossen sind . Auch als Kontextselektor bezelchnet. Klndselektor de r erste Absatz In elnem - Tags, In denen das Attr lbut title den Wert "Important" zugewlesen bekam . ... <span class= "extra ">Kapitel 1 schildert die frö ;hliche Bauernhochzeit , in die unser Held unversehens gerä ;t . , -Tags, eine Tabelle oder ein Blld . Zudem hat HTML 4.0 zwel Tags gebracht, die spez lell fOr den Elnsatz m it Stylesheets gedacht sind : des < div>- und des <span> -Tag -Tags, wahrend ein fetter Text in einer Tabellenzelle die gleiche Farbe aufweisen 5011 wie der normale Text in Zellen. Ein Kontextselektor besteht aus einer Foige von etnzelnen Selektoren, die durch Leerzeichen voneinander getrennt sind . Dem letzten Selektor in der Foige gilt die Deklaration: HeIEen Sie uns , die Liste aktuell zu halten . Schicken Sie uns eine E-Mail< /b> oder wenden Sie sich tele Eonisch an unser Bürgertelefon< /b> . -Tags rot darzustellen. Also wlrd im Browser Text in Tabellenzellen zwar fett, aber nicht rot darge- vorkom mt, der in elner TabellenzelIe in ei- Von Zeilen und Zeichen : In CSSl gibt es zwei ?seudoelemente : , das Tag fur einen Absatz, ist der Container fur Absatze und die Tabelle der Container fur tabellarlsche Daten. Das -cboTag und das -cho-Tag andererseits sind keine Container. Alles was ste brauchen, steht schon in den spitzen Klammern , und 50 benbtlgen ste auch kein Ende-Tag. Dies ist ein Text in einem Absat z-c /p» -Tag gesetzt wird, eine vordefinierte 5chrift fur Text, der in <pre > oder
(Kontextselektor)
aber nur, wenn ste In etnern
p > em
Adjacent sibling selecto rs p:first-chlld
Aile p-Elemente, die eln em -Element enthalten . Aile c ps -Tags, die das erste Kind elnes Vorfahren sind (z.B. wenn die erste Zelle elner Tabelle).
Pseudollnkselektor
a:llnk
Eln Hyperllnk, bevor er besucht wurde .
a.vlslted
Eln Hyperllnk, der berelts besucht wurde.
p:actlve
Eln Hyperllnk, wahrend die Maustaste gedrOckt wlrd.
p:hover
Eln Hyperllnk, wahrend der Mauszelger ooer dem Hyperllnk hovert (schwebt).
p:focus
Eln Element. das Tastatur- oder andere Elngaben akzeptlert - d.h. 1m Fokus rst .
Attrlbutselektor
p:lang( de)
Eln -cpc--Iag, dessen lang-Attrlbut auf de gesetzt ts t (Sprache =Deutsch ). Aile Vorkommen des -cpc--Tags, In denen das ein_attrib-Att rlbut gesetzt wurde, egaI wle de r Wert von title lautet.
p[ tltIe= "lmportant"]
Aile Vorkommen des
p[ tltle-="Interestlng"]
Aile Vorkommen des -cps-Tags, In denen das Attrtbut title einen Wert aus etner durch Leerzelchen vonelnander getrennten L1ste von Werten aufwetst, wobel dleser Wert genau dem Wert "Interesting" entsprlcht (den Wert, ohne die umsch lle&enden Klammern) .
Klassenselek tor
.m elne_klasse
Erm6g llch t versch ledene Klasslfikatlonen von Tags
ID-Selektor
p#Bezelchnung
Jedes Vorkommen von -cp», in dem
mi t unte rschledllchen Eigenschaften. id=Bezeichnung gesetzt wurde.
171
Kapitel 5
5.2
Das Fischen nach Elementen - Selektoren
Universalselektor und HTMLElementselektoren
Allen Methoden voran steht der Stern ».« , der Universalselektor. Er legt CSS-SelelolflH'cn MUlltr
Farben, Formate oder Schriften fOr aile Elemente in einem Dokument
Erl/MJltrung
9utlehnung
8.'rlf" Jedn ElcrnC'"'
Ur-... rtcl llClC'~tor
Betrlff, Jedt. p-Element
HTMl-EltnM"tlC'''~tor
Pb
BlttNltt Jedu Abl'.'9ude,. S. I.k,o,. b-Elcmenl , dOl Innt,.halb IIl nti p-Elementl lte9t
poem
Bllt,.iltt ell!. p-Elt-l'IIlInle , t:.lndl e lt:Ic'or
fest.
o o
<sty l e t y pe= " t e xt/ c s s " >
* {fon t : l 6p x "An d a l e Mono " ; color : darkslategray
die eln erl"l.flement
o
e"lhlllh." Oer Univcrt:lIllleleMlor
....lIenMethOodcn V'Oron Iteh' del'" $ 'CI""n . ... , der lJnI...trlol1lltlek,or Er ltgt FClrbtn. FllIl"onlll'e oder Schnfftn fill' 011.Eleme"'e I" Clncm Dolcumcnlfetl
o
-- >
s t y l e>
HTML-Elementselektoren Die elnfachsten und am haufigsten verwendeten Selektoren sind HTML-Selektoren, die eine neue Darstellung eines HTML-Tags definieren o Ein HTML-Elementselektor Oberlagert die vorgegebenen Eigenschaften eines HTML-Elements (wie z.B. Schrift und Farbe) und deftniert es neu. Wahrend die Blockelemente p, hi und h2 ohne weitere Angaben den Voreinstellungen folgen (Text wird in der Schriftart Times oder Times New Roman dargestellt), Oberschreibt der HTML-Elementselektor die Voreinstellung :
CSS -Selek loren &Ioo.t"""O
B :"'''''''0 l)w.... ~ ..... tOt
tt jede:; P-£lement
a.tnHt ..edt, b-Element. ce.. IMefhab eees
p-E
font : llpx /l36% Geneva
SeIel tor
m«'It:;~t
8e-tnfft ale p.Elemente. dle",~ E1Ipment
.,r;thOlt. n
Der IIT;\ II. -Elell1ent selekt or OM-elnfaehsten und am h6unguen ....rwef'ld.te n Selekto ren SInd HTML-SeJekto ren , die erne neue Darstellung emes HTHl · Tags de flnieren ,
172
td { vertical -a lign : top ;
Hl "'l-EIemen;.~tor Abst~
font : l2px /l50% Verda na , sans -serif ; color : #333333}
a. tr;ff t J~'5 Elforroent
Bet
Db
• p
• th {
text -align : left ; vert ical-align : top ; }
• pre b
{ color : #003399}
• hl
color : #666666} font -family : Geneva , sans -serif ; l e t t e r - s p a c i n g : O.2em}
• a
text-decoration : none}
5 .2 Universalselektor und HTML-Elementselektoren
Die neu definierten Stile erfordern im HTML-Dokument keine weiteren Eingriffe durch den Schreiber. Aile Texte, die in -cp» -.
Vorgehensweisen fUr HTML-Selektoren Das body-Element ist der umspannende Block des HTML-Dokuments . Viele grundlegende und erbliche (lnharente) Eigenschaften konnen »ganz oben« fur das body-Element deklariert werden . Sle sorgen fur Konsistenz und verringern die Schreibarbelt. In erster Linie sind es Stile fur die Schrift- und Absatzgestaltung, die sich sinnvoll unter dem Selektor body unterbringen lassen .
• body
background : ivory ; font -family : Verdana , Arial , sans-serif ; l i ne - he i ght : 150%; color : #333333 ; background : ivory ; l i s t - s t y l e : squate
Die Deklaration der Schrift gilt fur aile Elemente im Dokument: Texte in Absatzen , in Tabellen und in Listen werden jetzt in Verdana oder den In Macromedia Dreamweaver wird ein HTML-5elektor angelegt, wenn im Dialogfenster Neuer C555til/"HTML-Tag neu definieren« aktiviert wird . Aus der Liste unter "Tag« kann der Benutzer das HTMLTagauswahlen .
aufgelisteten Ausweichschriften dargestellt. Das Stylesheet legt die Schriftgro&e nlcht fest, damit Text in Absatzen und Oberschriften weiterhin ihre voreingestellte Gro&e behalten.
------:-:---==-----TVp;
0
Benutztrdefinitr1tn SIi1 trS ltllen (KloiSSe)
AbbfeCMn
• HTML- Tag neu deftn leren
o CSS-Seltktor verwen den Dehnleren in :
(NeUe" Styleshttt -O~.el ) Nur dlUu Ookument
Hilt.
173
Kapitel 5
Catch as
5.3 Klassenselektoren sind ein starkes Konzept: Kein HTMLElement kann ihnen entgehen. FUr die Trennung logisch unterschiedlicher Gruppen von Inhalten sind sie (fast) unverzichtbar.
Das Fischen nach Elementen - Selektoren
Klassenselektoren
Die rnetsten HTML-Dokumente fur das Web benutzen ein Layout , in dem die Navigat ion vom Inhalt der Seite optisch getren nt wird - fast im mer auf der Basis von Layoutt abellen, ab und zu auch bereits durch CSS-Position ierung. Um die Navigation visuell vom Inhalt zu trennen , verwenden die Bereiche unterschiedliche Farben und Schriften. Die Klassifizierung ermb glic ht Variationen tur ein Elemen t - eine Klasse von Formaten fur die Navigat ion, eine Klasse von Formaten fur Inhalte. Innerhalb der Deklaration fur eine Klasse durten beliebige Eigensch aften stehen, der Klassenname kann frel gewahlt werden.
Klassifiziertes Element Deklaration •
. nav-links
line-height : 128% ;
•
. hauptinhalt
line-heigh : 140% ;
font - amily : Georgia
In Macromedia Dream weaver wird ein Klassenselektor angelegt, wenn im Dialog fens ter Neuer CCS-Stil »Benutsetaetmietter, Stil erstellen (Klasse)« aktiviert wird. 1m Fenster »tistne« wird der Name der Klasse eingetragen. Sollte dabei der Whrende Punkt, den Dreamweaver bereits vorgibt, Oberschrieben werden, setzt ihn Dream weaver wieder automatisch beim Anlegen des Stils ein .
font-family : Verdana
Klassennamen Klassen beginnen zWingend mi t einem ».« (Punkt), gefolgt von eine m Namen, der typischerwelse die Funktlon der Klasse beschreibt. In der Praxis ist es angebracht, Klassen auch nach ihrer Funktion und nicht nach ihrem Erscheinungsbild zu benennen . Klassenselektoren erstellen einen neuen Stil, der durc h das classAttribut auf das Tag einwlrkt. Sle sind durch ein
. . .• >
liebige n Absatz formatie ren:
o o
u r CSS-Stil N~me
"
«I t:» im Code der Selte zu erkennen . Die Klasse kann dann einen be-
.unnoim ed 1
Typ: • knutzerdeflmerten Sill trutlle" (Klane) O HT ~l -Tag neu de"n lere"
Elne korrektere Notation des Klassenselektors setzt den
CSS-$elektor verwenden Dtflnltren In
0 (
Namen des HTML-Elements direkt vor den Klassenna-
eue Styfuhut ·O,llt O
• Nut dlues Dokument
HUfe
men und trennt den Namen des HTML-Elements und den Klassennamen durch den Punkt. Das erleichtert
174
5.3 Klassenselektoren
Der Text wird durch . haupt i nha l t formatiert. Der Teaser (einleitender Absatz) wird durch das Stylesheet . teaser realisiert. FOrdie EinzOge der Absatze ist das Stylesheet
teren
Eugt"itMarlitt
· einzug vetentwottncr:
Schulmei st crs Mar'ie
Der Kasten wird durch das Stylesheet . kasten gebildet, das mit einem «div> Tag verwendet wird . . ext ra ist etr. Klassenselektor, der mit Hi/fe eines «sosn» -Tags Texte innerhalb von Absatzen hervorhebt.
Ka pi t e l 1 schild4rtdioi
frtjhliche Bauemhochzo?1t,ID di~ unser Held unverwh~ns gerat .
In K a p l te l :2 M"W$istS'ich oIuf dem Hof desreich en
Schulzen,da.6 nicht "UoM; so ist, wllJ '" sebeint.
Diel.lsche Verd.lchligung scblagt in Ka p Lt e l 3 ihre KreiNundbringt Abn-eigungt n
undvcrheben zumVorschein. In Ke p I t e l 4 solleineReiu an die Stadt Kluhoiit und Abs..nd bringen.
Vo r der gnJncn Tanne ging es toll lind zu, Dami t ist je doch nicht et wa
lu ~ ti g
jene schlen ke, s teite Ioch ter des Nordens qerneint, die im Sorrurrer ihr dunke lgrHnes, rauhhaarige s Haup t im
Sonncnlich t ba de t und zu r Winte rze it, feenhaft gescillnOckt, cine einzige
Ga
ge he iligte n Pla tz beha up te t .
DIE:'Se- Tenne also war es nlcht, wohl aber dIe
stat «ne Schenke In dern thunnOlschen
Dor le Rlngelshausen. In c eren Sch~d ell1 cer ber T nenb aum prangt e, der bereltwlllIg wandt"rndt Handwerf,.;sburscht"n. vornervne
s tec er und mude Karrner unter semern
scnatten benerberq te und cer nur denen
seme spitzen
Nadeln :tlg tE::.
wetcne d t
Kreodestncheauf des W~ tes schwarzer Tafel "'cht gebuhr endermaeen
~abbalis~sch e n
loscnten.
Es gong also Ion und
Ius ~g
zu und gab so
vergnug te Geslch ter. ets ob, Wit t in alter. f1dtler Bauer m eote, das ganze Leben fur
'--
dIe Leutchen tin Tanz sei, zu wt lcht m die lle_b_e_nEngellrn Hrn mel eufsprelten. Was den
das Lesen des Stylesheets und besagt auf den ersten Blick, fur welche Elemente des Dokuments der Klassenselektor gedacht ist:
font : 12px/128% Verdana ; font : bo ld 16px /130% ; text -indent : 14px ; }
• p .hauptinhalt • p . teaser • p . einzug
Die Notation im HTML-Element andert sich nicht. 1m HTML-Tag wird weiterhin das class-Attribut mit dem Namen der Klasse verwendet.
Klassenselektoren und Container Klassen konnen nicht nur einem individuellen Tag, sondern durch ein
. kasten {
. ext r a
background : silver ; width : 160px ; height : 220px ; f ont : 20px/160% Georgia ; l e t t e r - s pa c i ng : 3px ; font -we ight : bold ; }
175
Kapitel 5
Das Fischen nach Elementen - Selektoren
und im HTML-Code:
o
o o o
Eugenie Marlitt
Elementselektoren dar und auf der anderen 5eite erweitern ste die vorgegebenen HTML-Elementselektoren, Mit Klassenselektoren gibt C55 dem Entwickler ein machtiges Werkzeug in die Hand, Wer wili, kann seine eigene Dokumentenstruktur aufbauen und HTML-Elemente wie
satzuch gehen Punkte im Ranking in den 5uchmaschinen verloren .
HTMl- und Klassenselektoren kombinieren Der Einsatz von Klassenselektoren und HTML-5elektoren, die einander erganzen, liefert elegante Klassifizierungen logisch zusammengehbriger Gruppen von HTML-Elementen , Die 5tildeklaration der Klasse notiert die Unterscheidungsmerkmale zwischen Layoutbereichen , z.S, Hintergrundfarbe und 5chriftart. Aile anderen Merkmale werden uber HTML-5elektoren fur diejeweiligen Elemente angegeben :
• p p .lead • p .extra • p . einzug
176
{font-family : Verdana , sans-serif ; color : #333333 ; } { font : bold 14px/130% ; } {letter-spacing : 3px ; } {text - indent : 12px ; }
5.4. ID-Selektoren
5.4
ID-5elektoren
ID-Selektoren anneln den Klassenselektoren und unterscheiden sich von diesen auf den ersten Blick nur durch das fOh rende #-Zeichen des ID-Selektors (Im Gegensatz zum fOhrenden Punkt der Klassenselektoren) . Aber wahrend Klassen beliebig oft im Dokum ent vorkom men durfen, sind ID-Selektoren fur genau ein individuelles Element im Doku-
FUr Animationen und Elemente, die durch Skripte beeinflusst werden sollen, braucht das Stylesheet eine eindeutige Identifikation.
ment gedacht. ID-Selektoren wurden neben ihrer Bedeutung fur das Layout mit Stylesheets speztell fur JavaScript und DHTML eingefOhrt. Dort greifen die Skripte uber die ID direkt auf ein Element zu. Ein ID-Selektor beginnt mit dem Zeichen »#«, gefolgt vom Namen des Selektors . Der Name darf nur aus alphanumerischen Zeichen, elnem Bindestrich (-) und einem Punkt ( .) bestehen und nur ein Mal verwendet werden, damit das Elemen t eindeutig im Dokumen t identifiztert werden kann.
• #abc123 {color : red ; background : black ; }
o
Genau dieses eine Element kann durch das id-Attribut des HTML-Tags als abc123 angesprochen werden . ID-Selektoren werden also wle Klassenselek toren durch die direkte Bennung der Bezeichnung verwendet, nur dass hier anstelle des class-Att ributs das id-Attri but im Tag benutzt wird. Ihre Einmaligkeit pradestlnler t ID-Selektoren fur die Positionierung von Layoutelementen, in erster Linie fur div-Container, in denen die logisch zusarnrnengehorenden Inhalte untergebracht werden:
• • • •
#obenO #ebenel #ebene2 #inhalt
width : 100%; } margin-left : 143px ; padding-left : 9px ; position :relative ; width :400px ; } margin-right :gem ; border-right :lpx solid rosybrown ; padding-right :9px ; }
177
Kapitel 5
Das Fischen nach Elementen - Selektoren
lina v - ob e n
wi d t h : 100%; border : lpx H9l 8D53 solid} float : right ; widr.h : l4em; pos i ion :rela tive ; border : lpx #999999 solid} IInav -links {pos it ion :Eixed ;
#t ipp
1\
:
til
~
:>
1\
C
'M .-l I
.....
> C1l c
~
C
II
.,-i
'0
.,-i
II
'0
'0
'M
'M
>
>
. ,-i
'0
#nav-rechts
~
..c: u
...
III I
:>
C1l C II
1m j eweiligen Dokument macht es zwar keinen Unter-
'0
.,-i
'M
'0
V
1\ til
:
.,-i
C1l
..c:
II
1\
'0 0. V 0.
'M
~
V
wi d t h : 14 3px ; top : 9px ; l eft :9 px ; posi ti on :absolute ; wi dt h :gem ; t op : O; righ t :O;
schied, ob die HTML-Elemente uber einen Klassense-
:>
. ,-i
lektor oder einen ID-Selektor angesprochen werden,
'0 V
aber ID-Selekt oren verhindern eine weitere , versehentlich e Nutzung. Sie machen das Stylesheet sicherer und leichter lesbar.
o
-7
1
Cascading Stylesheets kOm en nahezu jedes HTML-Element pos ltlonieren - sel es ein Textabsatz in
-;;..-:,
Belde Tags nehmen eine logisch zusammengeh Orende Gruppe von mehreren HTML-Elementen auf - z.B, den typlschen Inhalt elner Navlgatl onslelste mit Hyper llnks, elnem Looo und besonderen Hlnwe isen . • Ohne Styl esheets zelgen
. - ." o r:s:J
- .--,
==--..::-
178
o
5.5 Absteigende 5elektoren - Kontextselektoren
5.5
Absteigende Selektoren - Kontextselektoren
Kontextselektoren wirken nur unter bestimmten Bedingungen . rtehmen wir an, Sie wollen aile fett gekennzeichneten Passagen in roter Schrift darstellen - aber nur in Absetzen, also in
p b {
color : #990000 ;
o
o
Konzert im Schloss :< /b>
Der Stil weist den Browser an, fetten Text nur innerhalb
Noch ausgeklOgelter wird das Konzept der bed ingten Selektoren, wenn der Vor-Vorfahre stimmen muss: • div * p betrifft nur p-Eleme nte, die als Enkel oder Ur-Enkel in einem div-Eleme nt Iieg en (beachten Sie den Leerraum auf beiden Seiten des Sterns "". er ist zWing end erforderlich). Bislang bring en aber nur wenige Browser das Kuns tstUck fertig, den Grogvater etnes Elements zu erm itteln (zz. nur Internet Explorer 5+ Mac).
elnes
zllJJds zum HouplfeQSte!
stellt, die Worte »E-Mail« und »Burqerteleton« aber sehr
Helfen Sle IllS, die uste aktue ll zu netten , Senden Sle elne '- l11ail oder wenden Sle slch lelefonlsch lln lXlser BOr ge r le lefo n
wohl. Die Verschachtelung kann noch tiefer wirken:
12.
Konzerl im Schloss : Doneumetropolen 19 30 lJIy 1m Schloss
Volksh och sd l ule
14.
Erstkommunion
Kalholisdles Pfllrrllml
20.
Kirchenkonzert Fesl ilches Konzerl lln lliss llch des 125JIlhr Igen VerelnsJ
MGV Eintr"chl
• td P code , hl em {color : red ; }
21.
Erstkommunion
Klltholische Pfllrraml
Das Element wird in obigem Beispiel wie zuvor
27.
Aufslenen des Maib"ums auf clem Kirchplll lz mil muslkll ilscher Unl erNllUOQ
st . Josef Ge.eUsch"fl
• td P code {c o Lor i red ; } Das Element wird rot dargestellt , wenn es in einem Absatz
steht.
rot dargestellt und das Element <em> wird ebenfalls rot dargestellt, aber nur wenn es in einem hI -Element steht.
179
Kapitel 5
Das Fischen nach Elementen - Selektoren
Vollautomatik: Kontextselektoren und Klassifizierung Kontextselektoren sind besonders elegant, wenn es darum geht, komplexe Stylesheets fur eine automatische Nutzung durch Dritte vorzubereiten . Wenn sie sich anstelle von Klassenselektoren einsetzen lassen, erfordern sie weniger manuelle Eingriffe durch den Benutzer, der die Webseite anlegt. Das allerdings k6nnen Kontextselektoren besonders gut, wenn sie mit Klassen- oder ID-Selektoren eingesetzt werden . Die umfassenden HTML-Elemente, in denen Inhalte logisch gruppiert werden -, seien es nun Tabellen, span- oder div-Containter - , werden uber Klassen- oder ID-Selektoren klassifiziert. Anschliet>end de kla-
HLayerl p
{color : #3 3 3 3 3 3 ; fo nt : I 6p x 11 5 0 % Georgia , serif ; } {color : snow ; background : gray ; font : I8px /180% Verdana , sans-serif ;
• #LayerI h l #Layer2 p
{color : #6 6 6 6 6 6 ;
• #Layer2 h l
{font : I8px1180% Georgia . serif ; border : l p x solid silver ;
font : I6px1150% Verdana , sans-serif ;
}
{ font : llpx/130% "Anda l e I/:o no " ; color : #333333 ; vertical -align : top ; { color : green ; } • #Layer2 td i {color : tomato ; } • #Layer2 td #Layer2 p i
rieren Konte xtselektoren die Stile fOr die HTML-Elemente innerhalb der umfassenden HTML-Elemente. Diese Technik erztelt ein hohes Mat> an Automatismus - Textabsatze im Navigationscontainer werden automatisch anders formatiert als
Textabsatze in elner linken Spalte fur News und die Unternavigation . Hyperlinks in der Navigationsleiste werden durch !:~I~C~i) ~j.~(l·~_ -;.l!. ;IIS "'';'1
Kentextselekteren lind. belonden ek;lnl, wean es datum Ceht., komplae StyJuheet. fUr tine lutomati,che NutzunC durchDritteTorzu~reiten. Wennsie Instelle von Klauuuleittoru eincuettt werden. erfordem lie:weni:,ermanuelle EincrilTe dureh den Beuutzer.
Die um(usrnden UTML--Ekmente, in denenlnhalte Io:isch cruppiertwerden seien t' nun TlbelkD,span . oder eli\'· Cont. iot'f - , werden tiberKb'lC'n - oder ID-Selektoren klll.i(lZierlADlchliefkond dekJarierrD Konlextsekktoren die Stile fur die IITMI,Elemenle innerh.lb der umf.uC'ndC'n HTMI,ElemC'ntC'.
Pseudolinkselektoren gestaltet, wahrend Hyper-
Die Vcrfahr en der Aulom.tik
links in Artikeln und News ihr gewohntes norma-
Djese Techn'" erzrelt em hohes M4B oM\ AutCllTl"tl$rTlUS - Textabsbtze 1m I'l.3vloationscontltlnet werden aotom.rIIlIsdl ~ '~tlert
ers renecsetze
rt
les Aussehen behalten, ohne dass der Webdesigner durch class- und id-Attribute in den
eee-
I,",en Spalle fU' News end d e
einzelnen HTML-Elementen nachhelfen muss.
Ulte~v I~t lon .
-..,cr1p
ve. .
-..,.I!r lp
Ga.-
"""crl III Ulkd
h1nla1~
.e.,er ~b. 1 bID llu:IIert~ ~ :llS ...,. ~
AnlSIIeMcao lbdl ' t. . .o·
-,
[email protected] In der NltVIQlttlonsle lste werdlrl outomat lsch
o.rch Pseudo lnselektoren
gestaltet. wMYend Hyperl l.....s In Altll..eln lX'Id News lty gewohntes norma es Aus~
beha lten Insbesondere recetten 1m Tabellenlayout oder in div..contltlnem kOfTJTlt d eses ver'8tY..... zugute Der Irt\alt e rnef Taoelte In
einer Tebelle wlrd e-oes (ormatloert als c1ie LayOuttabelle selber
r•
•-.t;
18 0
Die HTML-E/emente, die innerha/b der Container benutzt werden, erha/ten individuelle Stile a/s direkte Abk6mmlinge des jeweiligen Containters. Moderne Browser haben keine Prob/eme , sich durch die Ahnengalerie zu hange/n und einen Text in -Tags innerhalb eines p-E/ements, das sich in einem div-E/ement befindet, exakt zu unterscheiden.
5.6 Pseudoklassen
5.6
Pseudoklassen
Pseudoklassen klassifizieren ein HTML-E/ement und beziehen dabei die Merkmale fur die Unterschei dungen nicht aus einem class-Attribut im Tag wie bei den zuvor beschriebenen Klassenselektoren , sondern aus der Interaktion mit dem Benutzer oder der HTML-5 truktur seiber. In C55 1 gibt es nur einen Elementtyp, der auf diese Weise klassifiziert werden kann, narnlk h das a-Element, der »ttyperlmk« . Durch die Erzeu-
Nichts geht ohne Rollover und ohne Rollover geht gar nichts .., die kleinen Effekte sagen dem Besucher einer Seite: Ich weiS, dass du da bist und ich interagiere sofort, wenn du nur willst
gung fiktiver Typen des a-Elements kann jeder Klasse eln eigener 5 til zugewiesen werden. Die fiktiven Typen sind : a: link
Beschreibt einen Hyperlink, der noch nicht vom Besucher besucht worden ist. Die gelinkte 5e ite liegt noch nkht im lokalen Cache des Browsers.
Webdesigner wiederum Iieben Effekte, fUr die sie nicht 24 GIFBilder in 12 verschiedenen Farben anlegen mUssen.
a:visited Beschreibt einen Hyperlink, der besucht wurde und im lokalen Speicher des Browsers Iiegt. a: active
Beschreibt einen Hyperlink, der angeklickt wurde, aber noch nicht ausgel6st wurde - der Zustand zwischen dem Klicken bis zum Loslassen der Maustaste, wahrend die Maustaste noch gedrOckt ist. Diese Klasse wlrd von allen Browsern ab Version 4 und h6her erkannt, alterdings nicht von NN 4 .xx.
Wahrend die ersten drei Pseudoklassen schon in C55 1 deftnle rt waren, kam :hover erst in C552 a/s Pseudoklasse dazu: a: hover
Beschreibt einen Hyperlink, wahrend der Mauszeiger uber dem Hyperlink liegt (to hover: schweben) . Diese Klasse wird von allen Browsern ab Version 4 und hoher erkannt, allerdings nicht von NN 4 .xx.
Pseudoklassen werden durch einen Doppelpunkt gefolgt von dem riamen der Pseudoklasse notiert. 5ie k6nnen weiterhin auch mit normalen Klassen komb iniert werden . Dank der Pseudoklassen kann das 5tylesheet die verschiedenen Zustande eines Hyperlinks untersch iedIIch gestalten, ohne dass Ereignlshandler wte mouseover oder mousedown irn Tagvermerk t werden .
Tipp: Um fOr Tests einen »Nuillink« anzulegen, der nirgendwohin fDhrt, aber aile Verhalten eines echten Links aufweist, linken 5 ie zu: jsvescnot;
181
Kapitel 5
Das Fischen nach Elementen - 5elektoren
Preiswerte Rollover·Effekte fUr die Navigation Mit Hilfe der Pseudoklassen kbnnen wlr nun endlich den schl ichten, voreingestellten Hyperlink rafflnlerter definieren und ersparen uns das Anlegen unzahllqer GIF-Bilder:
• • • • •
tex t -decora t i on : none ; } a color : i vo ry ; background : s lategray ; } a : link a :visited { co lor : slategray ; background : mintcream; } col o r : snow ; backg round : tomato ; } a :act ive c ol o r : tomato ; background : ivory ; } a : hover Ein generischer 5til fur a sorgt dafur, dass 5chrift und andere Merk-
male der Hyperlinks nicht in jedem Pseudoklassen-5elektor individuell deklariert werden mOssen. Das spart wieder einmal 5chreibarbeit und garantiert die Konsistenz. Effekte sind nicht auf Farbanderungen beschrankt. 5chrift und 5chriftgrbge kbnnen geandert werden , ein Rahmen kann kommen und verschwinden , der Hyperlink kann sich ausdehnen und wteder zusammenziehen :
• • • •
a : link { font-weight : norma l ; font -weight : bold ; oder a :hoover font-size : 103% ; } oder a :hoover font-style : cursive ; } a : hoover
Neue Klassen und neue Zustande in CSS2 C552 hat nrcht nur die neue Pseudoklasse : hover m ltgebracht, sonAfs war's ein GfF' " 1 00% HTML ohne JavaScript, aber mit Sti/.
konnte ein Element, das bereits besucht worden war - sich also im Zustand : v i s i t ed befand - nkht gle lchzeltlg 1m Zustand c
' fl ft B
PseudolriJ..l.nI«l ~ ....dr~ eM E"-'u diIf Rolkw • d« dl.,nUen GIF..Ar. . ...... wJr." ..,sonst GIF-84der nobQ OOt_nert1.Ad)lJOe M~ Utt.salPl. ~ ~
20
:acti ve oder : hover seln. Also gab es fur den Besucher, der auf einen bereits besuchten Hyperlink klickte , keine weitere visuelle Bestatigung seines Mausklicks . In C552 signalisiert ein Hyperlink, der bereits besucht worden tst, dass die Maus gerade auf diesen Hyperlink geklickt ist oder dass die Maus erneut Ober ihm
<'bo4J
bfC:0h l ... . rtf'f'f'r to t . .. . OCIOOOO"'>
schwebt:
( Ill hu! . ...l1te1 .htal '">a.mu I1UMnC / &>
• a :visited :active • a :vis ited :hover
182
background : red ; co lor : white ; ) background : snow ; color : gray ; }
5 .6 Pseudoklassen
Die Cascading-Regeln entschelden, welche Eigenschaften In welchem Zustand angewendet werden.
1m Brennpunkt: Das markierte Element :focus Wahrend die Pseudoklassen von a : l ink bis a : visi ted nur auf das Ankertag angewendet werden konnen, erfasst die Pseudoklasse : focus auch andere Elemente. Eln Elem ent gerat »ln den Fokus«, wenn
1mFokus Auch dols Ejngabeteld im FormtJlar wird betei'gt und stellt tcst . dan der Besucher mitrnxht: Ihr Kommentat:
der Besucher ein Element ankllckt oder slch mit der Tabulatortaste in eln Element (z.B. etn Eingabefeld in einem Formular) navigiert hat,
und blelbt aktlv, bis der Besucher ein anderes Element anklickt oder das Dokumentenfenster schliett. Zu den nahe Iiegendsten Anwendungen der Pseudoklasse : focus
Abschicken?
1~""o.,. 1 Ocr Eftekt tunktioniert aueh dam, wen" JaviiSCript
lusgcschaltet ist. Pseudoelemente IN ein preilwcrtcr Ersatz tar JavaScript und GF·Bilder.
gehbrt die Interaktion in Formularen, wo dem Besucher eine Anderung stgnaltstert, dass er ein Eingabefeld erreicht hat:
1mFokus Auch das Eingabeteld im Formular wird beteifigt
• input • input :focus
{background -color : gai nsbor o ;
Lnd Itellt test, dan
cer Besucher rri'tmacht:
{background-co lor : white ;
Zu guter Letzt: Das erste Kind :first-child
Abschicken?
: first-ch ild erbffnet elne welte re Klasslflzlerung von HTML-Elementen : Es andert das erste Vorkommen des ersten Elements in ei-
Der Ettekt tunktiontert auch d.1M. WCM JavaSCript ausgeschaltet ist . Pscudoelcmente 1m ein
nem umfassenden Block, z.B. den ersten Absatz (das erste
preiswe rtcr Ersatz
rar JavaSai't
und GF· Bilder.
nem
{ font : 16p x1l50% Verdana ;
• p : first-child
text-indent : 22px ; } {text -indent : Opx ; f on t : bold 18px/150% Verdana ;
• h l : first -line
{font : bold I8px /150% Georgia ; color : #333333 ; } {font : bold 20p x /15 0% Verdana ;
• tr • tr :first -child
color : #777777 ; } {background : ivory} {font-weight : bold ;
hI
• td • td :first -child
background : beige ; } {vertica l -align : top} { f on t - wei gh t : bo ld ; bac kground : beige ; }
Die Hintergrundfarbe eines Eingabefe/des sodem. wenn der Benutzer das Fe/d tut die Eingabe anklickt: etn Mechanismus, der die /nteraktion mit dem Besucher deut//ch macht.
BAA
C = iSc:haUiO kOhl Habsch att en
Impa~ I S~
o,Jt
oee'lg'let
:OUt oee q'let ~
,Sonn ig ;nld"lt
IgM ,g>ot
183
Kapitel 5
5.7 Pseudoelemente sind fiktive Elemente, die es in HTML nicht gibt. Wahrend Stylesheets ansonsten ein Tag neu definieren (HTML-Selektoren) oder ihm eine Klasse oder eine Identifikation zuweisen (Klassen- oder IDSelektoren), werden hier Sti le fur ein HTML-Element definiert, fur das kein Tag existiert.
Das Fischen nach Elementen - Selektoren
Pseudoelemente
1m Gegensatz zur Pseudo klasse f i r s t : c h i l d sprechen Pseudoele mente Teile elnes HTML-E lem ents an - also nicht das ganze Element. In C551 glbt es zwet Pseudoe lemente: first-line und first - l e t -
ter. 5 1e konnen auf Blockelem ente (HTML-Elemente, die mi t etnern Zeilenumbruch enden wle p, h 1) angewendet werden und setze n neue typografische Felnheiten um . Pseudoe lemente werden du rch elne n Doppe lpunkt, gefolgt vom Namen des Pseudoelements, notiert und konnen mit normalen Klasse n kombiniert werden (p.lnitial:first-Iine) . C5 5 1 beschrelbt die beiden folgenden Pseudoelemente :
• : first-letter - erster Buchstabe In elnem Element • : first -line - erste Zelle In elnem Element
Klassische Textauszeichnungen : first-letter andert das ers te Zeichen eines Elements - das beliebteste Beispiel ist sicherlich die hangende Inltiale, die den edlen Anschein antiquarischer Werke erweckt.
: first-line verand ert die Darstellung der ersten Zeile. Ein 5chnellschuss-Teaser fur eilig e Redakteure ...
• p
{font-family : Verdana , sans-serif ; color : 11333333 ; }
• p :first-Ietter { font : 40px/100% Georgia ; color : tomato ; float : left ; margin-top : Opx ; margin-right : 6px ; • h1
{ font -rs i ze : 22px ; line-height : 150% ;
color : #666666 ; } • h1 : first-line {font-size : 14px ; color: 11333333 ; }
184
5.7 Pseudoelemente
o
und Tricks
Ü ;berschriften mit Autoheader und mehrfirst-line
und first-Ietter
. Sie können auf Blockelemente (HTML -Elemente , die mit einem Zeilenumbruch enden wie p . hI ) angewendet werden und set zen neue typografische Fei nheiten um.
Tipps un d Tri cks
. berschriften mit Autoheader und mehr on Zei len und Zeichen : In CSSI gibt es zwel Pseudoelemente : first-line und fir t-letter. Sie konnen auf Blockelemente (HTML-Elemente, die mi t einem Zeilenumbruch enden wie p, hl ) angewend et werden und set zen neue typografische Feinheiten um . V
#.
I-
bdt
FOfWiUd Re lo~d
Home
Boo k.~rtc.s
Print New Save f ind
Tipps und Tricla
llpps und Tricks
Oberschriften mit Autoheader und mehr cssi
lemente: first-line und V Pseudoe first-lettQr. sie konnen auf on Zeilen und Zeic hen: In
Internet Explorer 5.1 , Mozilla 1 und Opera 5 - kleine Unterschiede in der Darstellung machen den Charakter der Browser aus . Es sieht so aus, als waren die Browserkriege im Waffenstillstand.
gibt es zwei
Blockelemente (HT ML-Elemente, die mit einem Zeilenumbruch enden wie p, hr) angewendet werden und setzen neue typografische Feinheiten um.
Uberschrlften mit Autoheader und mehr V
on Zeilen und Zeichen : In CSSI gibt es zwei Pseudoelemente : first-line und first-letter . Sle konnen auf Blockelemen te (HTML-Elemente, die mit einem Zeilenumbruch enden wie p, hl ) angewendet werden und setzen neue typografische Feinhelten um.
185
Kapitel 5
Das Fischen nach Elementen - Selektoren
h l : first-line setzt die ers te Zeile der Uberschrlft In elner kleineren Schrift und p : first-letter den ersten Buchstaben des ers ten Absatzes als hanqende Initiale . FOr das »ttangen« sorgt float : left.
Mehr Pseudoelemente Speziell fOr den Druck gedacht sind : • : l ef t
linke Seite der Ausgabe
• : ri gh t
rechte Seite der Ausgabe
• : fi r s t
erste Seite der Ausgabe
CSS2 liefert zwei weitere Pseudoelemente: • : a f er - nach Elementinhalt • : before - vor Elementinhalt Das Pseudoelement : after beschre ibt den Raum nach dem Inhalt des definierten Elements. Damit kann eln abschlietender Text mit Hilfe de r content -Elgenschaft automatisch elngefOgt werden . • / * I m C55-Bereich : * / • h I : a f t er
{ con t en t :
':'
• p :after
{ con t en t :
' - Ende des Textes '
}
• I *Der Bereich nach dem Inhalt jedes p- und hI- Elements . ..
*/
: be fore beschreibt den Raum vor dem Inhalt des definlerte n Elements. Dam it kann eln Text mit Hilfe der content-Eigenschaft automatisch vor dem Element eingefOgt werden .
• I *Im C55-Bereich :
*/
• h I : be fore { content :
' Thema:
• p :before
'Text :
{content :
' '
} }
• / *Der Bereich vor dem Inhalt jedes Elements p und hl */
186
5.8 Attributsefektoren (neu in C552)
5 .8
Attributselektoren (neu in CSS2)
50 simpel Attributselektoren auch erscheinen rnoqen - in (551 finden wir nichts Ahnliches. Bislang unterstotzen die llgrof)en« Browser den Attributselektor nicht " ., der folgende Absatz ist also eher von akademischem Interesse . Ein Attributselektor enthalt einen HTML-Elementselektor oder einen
2war unterstutzen die Browser Attributselektoren noch nicht, aber sie offenbaren uns ein rnachtlges Werkzeug: Sie finden die Stecknadel im Heuhaufen.
universellen 5elektor und ein Attribut in viereckigen Klammern . Wenn nur Oberschriften mit einem href-Attribut angesprochen werden sollen, notieren wir
• hi
[href]
{co lor : gre e n ;}
Der 5til farbt aile Oberschriften gnm ein, wenn sie einen Link enthalten, ob dieser nun bereits besucht wurde oder nicht. Mit einem Attributselektor lassen sich aile Bilder, die Teil eines Hyperlinks sind und einen Rahmen aufweisen, andern:
• a [href] img[border]
Mozilla ist auf dem besten Wege, auch die Stile zu unterstOtzen, die heute noch als exotisch gelten. In diesem Sinne zeigt Mozilla zwar nicht die Oberschrift, aber Links in Oberschriften in Grun an. Der Attributselektor fOr Bilder, die einen Hyperlink darstellen und einen Rahmen aufweisen, funktioniert tadellos .
{border-co lor : blue ;}
Attributselektoren (n eu in
Attributselektoren (n eu in ~
Ein Attributse lektor entbe lt elnen HTM.-Elementse lektor oder einen un lversellen Selektor lXld eln Attribut in vierecklgen Klammem. Wenn nur UbersclY'i ften mit elnem href-Attribut anQesprochen werden sollen, not ieren wir • h t [hr ef] {co lor : green ;}
~IIIIIIII"'"
Mit elnem Attributselektor lassen slch aile Bllder, die Tell elnes Hyperllnks sind und einen Rahmen aufwelsen, Ilndem: • a[IYef] Img[border) {border-color : blue;}
187
Kapitel 5
Das Fischen nach Elementen - Selektoren
FOr Diagnosezwecke kbnnte sich der Webdesigner aile Elemente auszeichnen lassen, die ein Klassenattribut mit einem beliebigen Wert beinhalten : • *[ c l a s s ] {c o l o r : r e d ; background : yellow ; border : I p x solid orange ; } Seine eigentliche Macht entwickelt der Attributselektor, wenn er sich auf Attribute mit elnem bestimmten Wert bezleht , • element [a ttribute = "val e O] Erst wenn der Wert im Selektor wbrtlich dem Wert einer Eigenschaft entspricht, tritt die Stilregel in Kraft. Dabei ware eln Wert" 2 " etwas anderes als der Wert " 2px " - in diesem Sinne lst das »wortllch« in der Regel zu verstehen . Mit einem vorgegebenen Wert lassen sich aile Links einer Site, die auf erne bestimmte Seite fOhren , besonders hervorheben : • a [href= "http : / /meine . seite . de/ " } {font-weight : bold ;} Auf einfache Weise verbergen wir aile Bilder mit einem leeren alt-Attribut im auralen Stylesheet: • img [a l t = " " 1 {vis ibility : hidden ;} • p [cla s s ="wa rn i ng " ] {color : red ; background : white ;} • h l [id= "page-title " 1 {font -s ize : 250% ; border-bottom : I px solid g r a y ; } Attributselektoren stellen eine weitere »durchgreifende« Technik bei der Auswahl von Elementen in einem Dokument dar. Bislang sind sie aber nur in wenigen Browsern und dort auch nur in Ansatzen imple mentiert.
188
in estilt Kapitel 6 Bis zum letzten Tag: Beispiele
Ein Stylesheet 5011 neben der Gestaltung der Seite die Pflege der Selte und das Elnstellen neuer Inhalte In das tayoutgerust verelnfachen . Je seltener der »Redakteur« der Selte durch manuel Ie Eingrlffe In den HTML-Code belasttqt wird. desto besser: Klassenselektoren , die eln class-AUrlbut irn HTML-Element benotlgen, werden also vorzugsweise auf die Layoutstruktur besch rankt, so dass belm Satz des Inhalts die Elemente durch eln elnfaches HTML-Tag Ihre Form erhalten .
U. Häßler, Cascading Stylesheets © Springer-Verlag Berlin Heidelberg 2003
Kapitel 6
6.1 ~ Das Beispiel finden 5ie auf der CD zum Buch unter dem Navigationspunkt »Workshop'l.
Bis zum letzten Tag: Beispiele
Beispiel 1: Stile fur Schriftgestaltung
Das Layout auf der Basis von Tabellen wird auch in den Zeiten der modernen Browser und von CSS2 elne bevorzugte Technik bleiben. Durch stylesheets erlangen Tabellenlayouts eine hbhere Flexibilitat und Effizlenz in der Pflege und dem Ausbau . Einfach und strikt ist die Formatierung einer Site durch Stile fur die schrift- und Textgestaltung. Das Layout der Site wird konventionell durch zwei flexible Layouttabellen erstellt, die sich an die Gral:.e des Browserfensters anpassen . Die obere Tabelle beinhaltet einen Text auf der linken seite und die Hyperlinks fur die Navigation auf der rechten seite . Die untere Tabelle enthalt Bildausschnitte auf der linken und Texte und kleine Artikel mit Bildern auf der rechten seite . Wie es fur solche Layouttabellen typisch tst. wird die Tabelle durch »bllnde GIFs(( gefestigt, damit spalten nicht kollabieren .
Dcetscnnt: h 1
..
["'~tl:6..-[Mn. 2
...
1_ o--..u_ I_.,...._ ....wGtoh ~"'_
'.-4,
~-...
I
_
~
--
Uberschrift h2
Flief,text p
Uberschrift h3
...::
_ .-
-fP"----HI- Navigat lons-
Hyper/lnks r-"'~"dM'fbnoe-'"
DoH' T.... _
hi .....
... ....
. . . . . , _ t ~
.......... . - . ..
..
DwIt.u_I.~Mt'W'l_QNIk
Oben : 50 stellt sich das Dokument im Browser dar. Links: »Onr«: alles(( - 50 stellt sich das Dokument ohne 5tylesheets in Macromedia Dreamweaver dar.
190
Uberschrift h4
hH~dU'
~=-=.:...~ l~~~T _..,......... __
I
»Ieeser«
Flief,text
6.1 Beispiel 1: Stile fiir Schriftgestaltung
Oberschriften hI bis h4 Hier passiert nichts Aufregendes - zu beachten sind hochstens die au£>eren Rander gegen die um gebende Tabelle margin : l Op x nach oben in h2 und I Opx nach links in h4 (die vierte Stelle in der Deklara-
non von margin : top, right. botto m, left). • hl
{ c o l or : # 4A4A4A ; font : bold 18p x/1 40% Verdana, sans -ser i f ; letter-spac ing : l px ;
• h2 { color : #333333 ; font : bold 15px / 140% Verdana , sans-serif ; margin : I Opx Opx Opx ; • h3
}
co lor : #333333 ; font : bold 13px /140% Verdana , sans-serif ;
• h4
color : #333333 ; font : bold 14px/ 140% Verdana , sans-serif ; margin : Opx Opx Opx 10px ;
Der Sti/ h3 weist keine Eigenschaft fOrden linken inneren Rand auf, sondern hebt sich vom rechten Rand mit margin-right: 10px ab, da die Oberschriften h3 soete: rechts ausgerichtet werden sol/en.
Ausrichtung in den Tabellenzellen Der Stil fur td-Elemente sorgt dafOr, dass aile Inhalte von Tabellenzellen am oberen Rand ausgerichtet werden (per Voreinstellung sind Inhalte in Tabellen vertikal zentriert) . {vertical-align : top ; }
• td
Der Klassenselektor . rechts_unten sorgt fU r die Ausric ht ung von Texten in der Tabellenzelle unten rechts . •
. recht s_unten { te xt - a l ign : right ; vertica l-align : bottom ;
DafOr muss die Tabellenzelle unten rechts das class-Attribut enthalten :
o
class= "rechts_unten " >
Iextabsatze FOraile p-Elemente der Site sind die oberen und unteren Abstande gegen benachbarte Eleme nte durch margin : Opx Opx (Opx nach oben und unten, Opx nach rechts und links) deklariert. Das verhindert den Extradurchschuss, der per Voreinstellung Absatze in HTML voneinander trennt. • p
{font : 12px /150% Verdana , sans-serif ; color : #333333 ; margin : Opx Opx ; }
191
Kapitel 6
Elne Ube rschrift der Eb ene 4 Der Teaser ist elne herausgestellte zusallll1lenfassung des Artikels . Eln Text uber mehrere Zellen. wobei der Te stets am unteren Rand der Tabellenzelle ausoenchtet 1St. Die Brelte der Zelle passt sich an der GroBe des Browserlensters an .
t5er f
Texte in der Tabellenzelle unten rechts halten einen Abstand von lOp x gegen den linken Tabellenrand ein. •
los
tii r und to r
lm pre ssu m
. rechts_unten p { rna rq.i n-Te f
Opx;
)
Vcr Texten in der Tabellenzelle unten rechts kann eine Zusammenfassung des Inhalts erfolgen - auch »Teaser« oder »Lead« genannt. Der Teaser 5011 fett dargestellt werden. •
zeit
Bis zum letzten Tag: Beispiele
. teaser { font-weight : bo d ; )
Navigation und Hyperlinks Die Navigation erfolgt durch Textlinks in den Tabellenzellen oben rechts . DafOr wird elne Klasse nav elngerlchte t. • . nav { text -al ign : righ ; )
Die Uberschriften und die Hyperlinks werden rechtsbundig gesetzt.
In gleicher Weise wle die Tabellenzelle unten rechts werden aile Zellen fOr die Navigation durch ein class-Attribut vorbereitet.
o
class="nav' >
Die Hyperlinks sollen vorzugsweise in Arial und ohne Unterstreichung dargestellt werden . FOr die Rollover-Effekte werden Pseudoklassen verwendet. •
. nav a
color : #003366 ; text-decoration : none ; font : llpx Arial , sans-serif ; • . nav a :visited{ color : #870025 ; ) • . nav a : hover color : #003333 ; )
Bilder Bllder halten Abstand gegen den linken Rand der Tabellenzelle: • img { margin-top : Opx Opx Opx 10px ;
}
Die Layouttabelle Die elnzige Eigenschaft, die fur die beiden Tabellen notiert wird, ist width :
100%. Damit passt sich die Tabelle stets an die Gr6f>e des
Browserfensters an. • table ( width : 100% ;
)
Damlt die Tabelle elnen Abstand vom Rand des Browserfensters elnhalt, wlrd margin : 20px 20px fur das body-Element deklariert. Zudem sorgt das Stylesheet fur die Hintergrundfarbe. • body { margin : 20px 20px ; background-color : moccasin ; }
192
6.2 Beispiel 2: Eigenschaften »ausschalten«
6.2
Beispiel 2 : Eigenschaften »ausschalten«
Das folgende Beispiel ist ein klassisches Tabellenlayout in drei Spalten mit elner Kopfzeile fur das Logo. In der linken Spalte 1st die Navlgationsleiste, in der mittleren Spalte der Inhalt und in der rechten Spalte Raum fur Zusatzinformationen geplant. Da in der Regel nur der Inhalt der Seiten aktualisiert wird und das
Immer wieder wird es vorkommen, dass Eigenschaften tUr bestimmte Elemente wieder aut die Voreinstellungen gesetzt werden mUssen.
Logo sowie die Navigation entweder durch Templates in Macromedia Dreamweaver bzw. Vorlagen in Adobe GoLive oder als dynamische Inhalte von Skripten erzeugt werden, 5011 dieser mittlere Bereich moglichst ohne Eingriffe und Klassendeklarationen formatiert werden.
I (t
f=>~
[=-----
. 1C
I!IB (7)
II. Q
ier eine berschrift
Und vneoet bildet eine Tabel/e das GrundgerOst des Layouts. Die auf)ere Tabel/e besteht aus fOnf Spalten . Blinde GIFs trennen die Spalten links und rechts von der mittleren Spalte fOr die Inhalte . Die Produktbeschreibungen in der Mitte bestehen aus Tabel/en mit jeweils zwei Spa/ten .
r ier noch News
19 3
Kapitel 6
Bis zum letzten Tag: Beispiele
Randlos Mit marg in : Opx verschw lnde t das schmale . Schb nrahmchen. - eln kleiner Abstand der Inhalte vom Rahmen des Browserfensters, das in jedem Browser etwas anders ausfallt und gegen das im reinen HTML nur Framesets helfen : Der body-Sti/ setzt innere und augere Rander und Rahmen der Browser auger Kraft.
• body { mar g i n : Opx; paddi ng : Opx ;
Das volle Fenster Die Prozentangaben beziehen sich auf das umfassende Element der Tabelle- auf das body-Element des HTML-Dokuments. border-bottom dekoriert die umfassende Tabelle mit einem grauen Rand.
Die ausere Tabelle wird so hoch und breit aufgespannt, dass sie das gesamte Browserfenster ausfOllt:
• table { wi dth : 100%; padding - bot tom : 8px ; border-bottom : 10px solid s i lver ; }
Layouts furjede Spalte Die Breite der linken und der rechten Spalte ist mitjeweils 180 Pixeln nouett, die mittlere Spalte hingegen soli mit einer Breitenangabe von 100% stets die gesamte verfUgbare Breite einnehmen, so dass sie mit dem Browserfenster wachst und schrumpft.
Drel Klassen fur Zellen sorgen fOr ein differenziertes Erscheinungsbild In den drei Spalten .
• • • •
t d {ve rt ica l -a l ign : top } td .erste { wi d t h : 180px ; background : #F7F7DE; } t d . zwe i t e { wi d t h : 100%; background : #FFF7EF; } td .dr itt e { wi d t h : 180px ; background : beige ; }
Layouttabellen nehmen viele Arten von Inhalten auf: Oberschriften , Absatze und insbesondere immer wieder weitere Tabellen. Dieser Umstand will vorausgeplant werden .
FNw GrbKb uDd NaKbcmm .Ulltabm -IU
dlll'SpnJalullrnd«TOIbna
_DIn" Ubm..duu'1Jef1
Se' Ia:lmmftl fnK-h liM wmkn belww nurIn 45ft" 51,.,. aJ:l'~ ~aQTn:l:ud
-a pur l.mD1m
Auf das blinde GIFverzlchtet auch dieses Layout nlcht. Es sorgt dafQr, dass der Freiraum zwischen den Tabellenspalten em Minimum beibehalt, auch wenn der Besucher das Browserfenster stark verkleinert.
194
Hfer elne Oberschrlll
Stifle Selten
T.:d
Torrone
~
I I
HlfIrAkntd1ft.«n Tn:t 1l.nd na pur LmD 1m Tm
Marzipan
...."
6.2 Beispiel 2: Eigenschaften »ausschalten«
Raum zwischen den Spalten Der Raum zwischen den drel Berelchen fO r die Navigation, fO r den Inhalt In der Mltt e und eine weltere Navigation oder aktuelle Neulgkelten auf der rechten Seite wlrd durch elne Tabellenspalte getre nnt. Fur die trennenden Spalten tst etne Breite angegeben:
• td . fre i { width: l 8px ;
Uberschriften links und rechts Die Oberschrlften der ersten Ebene h I sollen In der Iinken und rechten Spalte gleich aussehen:
• td .erste hl { ma r gi n : 20px 10px 8px ; font : bold l2px/l40% .~ial, sans-serif ; color : #666666 ; } • td .dritte hI { margin : 6px 10px 8px ; font : bold 12px/ 140% .~ial , sans-serif ; color : 11666666 ; }
Vom Inline- zum Blockelement Jeder Hyperlink wtrd In elner neuen Zelle dargeste llt - ohne
-Tag
Der a-Stil notiert die Eigenschaft
und ohne die Elnklamme rung In -cp»-Tags. Jeder Hyperlink nimmt
display : block. Der Wert block
durch width : auto die maximaIe Brelte eln und halt glelchzeitlg durch padding : 6px l Opx Abstand gegen semen Vorganger bzw. Nachfolger sowle die umgebenden Tabellenrander.
(d i s pl ay : block ; width : auto ; padding : 6px lOpx ; border-bottom : lpx solid silver ; text-decoration : none ; font : 12px Arial , sans-serif ; a : first-child {bor de r - t op : lpx solid silver ; a :link {ba c kg r ound - c o l o r : wheat ; color : seagreen ; ) a :active {ba cXg r ound - co l or : khaki ; color : darkslategray ; } a :visited {ba c kg r ound - c o l o r : goldenrod ; color : brown ; ) a :hover {ba c kg r ound - c o l or : tomato ; color : white ;
• a
• • • • •
transform iert ein Inlineele ment (z.B. img oder a) in ein Blockelement, das zu einem Zeilenumbruch tunn. Die Pseudoklassen verleihen Links zusatzlich einen farbigen Hintergrund und farbige Schrift, die sich je nach Zus tand des Links andert.
Der erste Link der Navlgationsleiste wird zusatzlich mit einem Rahmen oben gegen die Umgebung abgesetzt. Die Pseudoklasse a : hover steht als letzte In der uste , damit der Stil dasStylesheet a : visited Dberschreibt und der Rollover-Effekt auch bel bereits besuchten Hyperlinks eintnt t.
Uberschriften in der Mitte In der mittleren Spalte darf die Oberschrift etwas grb&er ausfallen. Genauso wle die Oberschriften h2 fOr die Produktbeschreibungen In der
195
Kapitel 6
In der Kurznotation setzen zwei Angaben aile vier Abstande: Der erste Wert gibt den Abstand nach oben und nach unten an, der zweite Werte den Abstand nach rechts und nach links .
Bis zum letzten Tag: Beispiele
inneren Tabelle wird Wieder ein Abstand gegen den Rand der Tabellenzelle eingehalten .
• td .zweite hI
margin : 4px I Opx ; Eont : bold 14px/ 140% Verdana . Arial , Helvetica . sans-seri: ; color : =333333; • td .zwe ite h2 { margin : 4px IOpx ; Eont : bold 12px /140% Verdana . Arial . Helvetica . sans -serif ; color : =333333 ;
Raum fUr Text Damit Inhalte nicht direkt am Rand der Zelle sltzen . notiert der p-Stil elnen auseren Rand (margin) von 10 Pixeln nach rechts und links . Der ausere Rand nach oben und unten hingegen eliminiert mit dem Wert »0« den Extradurchschuss zwischen zwei Absatzen .
• p {
ma rg in : Opx 10 px ; f ont : I Opx/13 0% Ve r dana , Helve t i ca , sans-ser i f ; col or : #33333 3 ; }
UmflieSen: Bilder mer ts t margin -IeEt : Opx no tiert,
denn die umgebende Box fOrdas BUd tst nicht die Tabeilenzeile, sondern der Absatz p, der ja bereits einen au&eren Rand gegen die Tabellenwand aufweist.
· img setz t Bllder auf die linke Seite des Textes und sorg t gle ichzeltlg fur den Abstand des Blldes gegen den urnruesenden Text.
• i mg
fl oat : l e Et ; ma rgi n : Opx 15px 5px Opx; }
Wenn das Chaos einzieht Wenn jetzt in der mittleren und der dritten Spalte Hyperlinks im Text stehen, glbt es
em klelnes
Desaster: Durch display : block wlrd je-
der Link irn Text zu etnern Zeilenumbruch fOhren. nochste Zeit. die besonderen Eigenschaften des a-Selektors fur die zwette und drttte Spalte der Layouttabelle zurOckzunehmen .
d isplay : i nl i ne nimmt die Eigenschaft disp lay : b lock zurOck und macht aus dem aElement Wieder ein normales Inlineelement, das nicht zu emem Zeilenumbruch fOhrt. Die Hintergrundfarbe wird mit background color : t r a ns pare n t ausgeschaltet, Hyperlinks werden wieoet unterstrichen. Hier Obernimmt ein Kontextselektor diese Aufgabe .
196
td .drit te a : link , td .zweite a : link . • td .dr it te a :hover , td .zweite a :hover . • td .dr itte a :act ive , td .zweite a :ac tive , • td .dritte a :visited , td . zweite a :visited background -color : transparent ; color : navy ; text-decorat ion : underli ne ; disp lay : inline ; padd i ng : Opx; margi n : Opx ; border : none ;
6.2 Beispiel 2: Eigenschaften »ausschalten«
NatOrlich ware es eleganter gewesen, nur fOr die erste Spalte Pseudoklassen anzulegen. Das hatte das ROcksetzen der Links fur die zweite und dritte Spalte erspart.
{ d i splay : block ; width : auto ; padding : 6px lOpx ; border-bottom :lpx solid silver ; text-decoration : none ; font : 12px Aria , sans-seri: ; a :first-child { border-top : Ipx solid silver a :link {background-color : wheat ; color : seagreen ; } a :active {background-color : khaki ; color : darkslategray ; } a :visited {background-color : goldenrod ; co lor : brown ; } a :hover {background-color : tomato ; color : whi t e : }
• td .erste a
• td .erste • td .erste td .erste • td .erste • td .erste
Wenn unterhalb der Navigation weitere Texte und normale Hyperlinks postnonrert werden sollen, mOssen die interessanten Linkstile aber
dennoch zurOckgesetzt werden.
·
tnT
,If t "
ID l
OSII
logo
... . .... """'....
SOOe sene n
'
St~lIol.a.
Oell-''''
". '_""f1 teollo6
d4
'i
"'.. ch
'" . .. . tt T• • • _ • .
"'
• ... P • • •
"""'" ...... if! ~. " "'" • ..,.....-. ...
M,doI......, _
....
,........... 4..
M .'O!D
~1oIWI.Ib'M_1
_4 • • 160 ..0.
.- .....lIlo«o.. I .
......... .
...
,u~.".I .
~
10'-01'1_
~f.'
,...:.d'Iol
I
h~ """;..l~'" "lM,.u T _.
....""'d-., .. ~ t ..
,et-cl l
........... ,.,t.. iJIG... "' .M.t
W.-wl
.~
_
_
.. .... . .-
...,.
.............w.. ..
.... T.d"r>d
_,lU"".
" • , .. ..".....'" U...... I~.....
....--_ .. _0.'
:~
, ... ~
1, '0111'• •,...-4
Nicht nur die Pseudo/lnks sind vorschnell eingesetzt worden, sondern auch der Stil fOr»schwebende" Bilder. Dieser Stil wirkt nun auch auf die bJinden GIFs, die fur den Abstand zwischen den Tabellenzellen sorgen.
." . '"
".~
::;t;",..-;~::.
_'II fl•• q.".~ ...
4..
d"9""'''''''''''''''''''''-·
6.",,_.d\~"G-.t~Mlo•
, ...... 1'. .
197
Kapitel 6
Bis zum letzten
Tag: Beispiele
lnllne oder nicht Inline? Wenn Inhalte dynamisch aus Datenbanken generiert werden, weist dieses Vorgehen ebenfal/s Vortel/e auf: Das Skript ttetett die innere Tabel/e ohne jegliches Wissen Ober Formate , Stile und Orogen . Also wird entweder ein Klassenselektor fOr die OIF-Bilder angelegt oder die Negierung des img-Stils wird als InJinestil injedem Bild angegeben.
Das Problem, das durch die Deklaratlon von f oat : left fur schwebende Bllder aufgetreten tst. kann durch einen Klassenselektor behoben werden . Es kann aber auch sinnvoll sein. einen eigenen stil fur die blinden GIF-Bllder einzusetzen . Auf dlese Weise muss der Redakteur spater den Bildern keine sonderbehandlung zukommen lassen sle wurden immer automatisch auf der linken seite neben dem Text liegen.
o
class="frei">
cimg arc» "bilder I b lind . gif " wi dt he "18 " height: "400"
sty le: "margin : Opx Opx "> t d >
Rafinessen: Tabellen in Tabellen Damit sich die inneren Tabellen besser voneinander abheben, werden sle durch eine farbige Zeile voneinander getrennt. Gleichzeitig wird der Rahmen unten ausgeschaltet, der gerade fur die umfassende Tabelle deflnlert wurde . Auserdem 5011 der erste Textabsatz jeder inneren Tabelle fett ausgegeben werden .
• tab l e tabl e{ width : 100%; hei ght : a u to ; margin-bottom : 15px ; border-bottom : Opx ; border-top : 4px solid khaki } • t able table tr :first -child p { font -weight : bold ; color : 11 7777 77 ; font-size : llpx }
l05l1
logo S08e Sellen 'el"_
& ••• (11,. und
"" ... h.,..._ .". It,ioe • • 1'1"'''' . ~p.'l-a"t ...." d., r "'• . '"teh _4 ... ,...'" bor.WIl. I'll"" U, II1II., ~.I • • n _f'I9 •• otor""
Ub,",.uhu •••" ,.he"" eI•• ~I • • • "" . . .,.
' ..rn.e
.... ..........
.._- " ...
toeenlp...
T _. . ..
--_._.... ....... - ,
, u'l.a*l_h...
!==;i~;~:i ~Z~" ----..."' .... ."".. .. ........ 0lI1'o4
1......'"-
. .~ Ii' A
chII.. ,.oOcht.ft
T_ _ IM.cMl. 6. , _ Hn_ ...
wctI...-T. .
r••".,C..b.cll. un~ N.lttw,...I." ...... U
~I.
.-
w...... llrl r ......
. .....e.,cl'om.o . . . . .. Wft4
lI1_rilh...
..wfe.".MIl'
""""" ...... 101>4
_ ...... , .. Kt<>e ~. , q."eJotM ' 1' Z\lllM _.I . ..... .... .- .~..
• __
"" .~"".cNoIado .
II..... -
I'll
un••,.....
'.'IoIf."•.
ho-II ~ •• ~p.,I'I .. lit.t•• 111111' 1I. "" .. .,n ' r1u h unll ••nl.n It•• un. _ In 11.1' ~ .. I.on .. no.bot.n.
T. "..,.e
....._.
.........,..... ,...""
....lot."'"....
T _.tI .,
~;~
2:.."=:=L •""'.b tI_ f.
.. ......... unII
..........'''It
T
.H
tJ.ft
,._I. :"""_•..
NOl'f\iCM ..
...4lcN. ... I ~' _ ......... .... ~ I'_T••
198
~
_ ..
~- "
"",tll• • ct'M'O'lo.6.
UNI
~.
..
,..""-"~
_.Iwote.
,lud\1oote.olftod ........ ... , ...d1• ......, Qw .. tI.. ~
"""_0141 .~
, ~. do ,
.._- '" ,... _..
6.3 Beispiel 3: Ein einfaches C55-Layout
6 .3
I mmmIJl
Beispiel 3: Ein einfaches (55-Layout
Der Clou eines seitenlayouts mit stylesheets liegt darin, die HTMLstruktur linear zu halten. So k6nnen alternative Medlen wie die sprachausgabe und die Braillezelle, aber auch altere Browser einfacher mit diesen seiten umgehen . Hier erlaubt slch elne selte ein extremes Vorgehen: Entweder eln moderner Browser unterstOtzt die notwendigen Eigenschaften fur die aufwendlge Gestaltung oder der Browser bekommt ein stylesheet, mit dem der Besucher die seiten nett, aber linearisiert und ohne den Aufsehen erregenden Effekt sieht. Ein schlichter Textbrowser ohne Verstandnls fur stylesheets oder ein alternatives Ausgabemedium bekommen ebenfalls eine klare, aufgeraumte seite zu sehen .
HintergrUndiges Der Effekt der selt e beruht auf der Eigensch aft backgroundattachment : f ixed und der Option, elnen Hlntergrund zu positionleren. So bleibt das Bild im Hintergrund stehen , wenn das Dokument im Fenster gescrollt wird. Hierbel wlrd insbesondere ausgenutzt, dass der Ursprung des Koordinatensystems bei der Platzierung das Browserfenster ist und nlcht das Element seiber oder das HTML-Dokument. Der kleine Trick der seite besteht darin, dass zwei Bilder den Hintergrund bilden und dabei perfekt Obereinander liegen .
nen geringeren Kontrastumfang auf und geh6rt zu den belden div-Containern, In denen die Navigation und die Inhalte untergebracht sind. Posltlonierte Hintergrundbilder sind also nicht auf die Abmessungen der Elemente beschrankt, fur die sie defiDl~u"l l~
Ponte Ve cd d o
haltnls zum Browserfenster k6nnen sle Ober die Grenzen des definierenden Blocks hinausgehen - sie sind allerdings nur innerhalb der Grenzen des Elements slchtbar.
http : / /www .meyerw.eb.com/eric / II
Das Hintergrundbild fur das body-Element zeigt seinen vollen Kontrastumfang, das andere Hlntergrundbild weist el-
niert werden. Durch ihre Fixierung auf eine Position im Ver-
Wenn der Besucher die Selte saout, bleibt das Hintergundbild fest im Browserfenster. Der Effekt ist aufwendiger a/s er auf den ersten Blick erschelnt: Auch der Text und die Navigation stehen vor einem HintergrundbiJd. Das erste Mal gesehen auf den Seiten von Eric A. Meyer:
RurwJo
Sit wurde etwa 1350 erbaut uad ist die f ind l e Briicke In Florenl, die im 2. Weh:lt.riesnie hl umon wurd e. Sit rtibrt iiber den Amo lum Pllano Pi l auf dem reehtee FJuliurer. Diese. Gc:biiude, belonnen 1 58 uad In der Fol&enit n ark erweite rt, war von 1550 bit 1859 Re. ldenl der to.uo l.chen Gro!berzo&e. E.ttll l li'ilt tine wettere bnii bmte Oemiklepltrii. i n l1:~eto n d e re mit wersee YOO Andre a del Sarto , R.ffle~ Peru.&!no, Tili in uDd Tinloretto. Hinter dem Pllast erstreekt . lc:h dee VOat Boboli-Gltitn. ln dem wihrt nd dr. aUJi hrlirhr. M• •lkf..tin b 1m Mal xen eerte i m Freien ItIttfinden.
199
Kapitel 6
Das Hintergrundbild fOr das bodyElement Iiegt bei den Koordinaten 10 Pixel110 Pixel gemessen von der link en oberen Ecke des Browserfensters . Die div-Container fOr die Navigation und die Inhalte (fliess) benutzen jeweils das gleiche Hintergrundbild. Dieses ist genauso grof) wie das Hlntergrundbild des body -Elements, aber durch eine Tonwertkorrektur kontrastarmer. Es istjeweils nur innerhalb der Container sichtbar und erweckt den Anschein, es wOrde durch eu: Milchglas oder einen semitransparenten Hintergrund verdeckt.
Bis zum letzten Tag: Beispiele
• body {background : #FFFFFO ur I ("loewe-mt . jpg " ) no-repeat fixed lOpx lOpx }
Container fUr Inhalte Der groge Block fur Inhalte wird absolut positioniert. Der Stil dennlert das kontrastarmere Hintergrundbild an der gleichen Position wie das Hintergrundbild fOr das body-Element, so dass die Bilder perfekt ubereinander liegen :
• div .fliess
background : url ( "bilderlloewe .jpg "l no-repeat fi xed lOp x lOpx ; border : lpx solid gray ; po sition :absolute ; l eft :200 ; t op :40px ; width :60% }
Container fUr die Elemente der Navigation Das div-Element ist fest (fixed) posltlonlert. Das Absatzformat p definiert die Schriftfamilie und Schriftgrbge, die auch fur Hyperlinks benutzt wird.
Ole Eigenschaft display : block vetsetzt jeaen Hyperllnk der Navigation In eine neue Zel/e.
Die Uffizien Ponte Ve cchio Die Palazzi Rundgang : Stadtplan
200
• div .navigation margin : Opx Opx; background : #FFFFFO ur I ( "loewe . jpg " ) no-repeat fixed lOpx lOpx ; text-align : center ; position : fixed ; top : 320px ; left : lOpx ; width : 160px ; } • div .navigation a( display : block ; margin : Oem O.5em ; border-top : Ipx so lid #778899 ; font : bold 12px/200% Verdana : text-decoration : none : } • div .navigation a :first-child { border -top : none : } Der Interessante Stll rst display : block fur a und img-Elemente, die von Haus aus Inllneelem ente sind, also nlcht zu elnern Zellenum-
6.3 Beispiel 3: Ein einfaches C55-Layout
[] ~===~ ~~~E~~~~~~~===51!1~B Die Seite kann in Dreamweaver aufgebaut werden, auch wenn Dreamweaver nicht aile Funktionen korrekt darstellt. Auch als DreamSIl! etWd 1350 t1"b.tut unci1M ~ eumge 8rUck.et weaver-Vorlag e ist die Seite problemlos gee ignet. In ~.n 2 . Weltkries nicht ~ort wurde . Da Dreamweaver keine Kontextselektoren .bot donArno:urn Pa!a= PItn au! clem • 0.... Gebaude. besamen 1458 anlegen kann, werden sie manue ll erstellt. Die Fl_ ...... und in de1'F It.Irk enteztert. Vir von 1550 bd Stile k6nnen allerdings nach dem handischen 1859 Reodon:dot' hen Cro~. Eo Anlegen im St ilinspektor erweitert werden.
...-:::oif.....
j
e.m.JdesaIone.
~nu :
rwfa~l.
WerltenVt:Ol Andrea del Sarto,
•TizW\und Tintc:n n o. Hu\tor dem
Palaol on
...,....
.•....
- ~_
Komate un Freen mttfUlden. ";t
Auf
"10 . "" .11./ 1"
ttl
I IJ) O t;;. O
b ruch fO hren . Durch die Transfo rm ation von a und img In Blockelemente entsteht nach jedem Hyperllnk 1m Navigationscontainer ern Zellenumbruch . Die Links im Navigationscontainer werden durch einen Rahmen oberhalb de r Ele mente vo nelnander getre nnt. a : first -ch ild nlmmt den ersten Hyperllnk von dieser Dekoration aus . Der Effekt m it zwei fest posltionierten Hintergrundb ildern funktloniert in alteren Browsern natOrlich nicht. Da diese Browser die @import-Regel ignorieren, wird das Stylesheet m it diesen St ilen im style-
satzgestaltung angelegt und in elnem -Element verknOpft. Dazu muss die im portlerte Stylesheetdatei im Dokument nach der
Da die Textze ilen m it den Hyperlinks nur durch die Deklaration d isp l ay : block um brochen werden, werden sie von Textbrowsern oder »Pra«-CSS-Browsern in
verknOpften Datei aufgefOhrt werden . Wer die Stylesheets mit Dream-
einer Zeile als Navigationsleiste oben
weave r anlegt mu ss das
tm Browserfenster gerendert.
Element der Seite im portiert. FOr »rn tt telalte rltche« Browser wlrd e tn zweites Sty lesheet mit »unqefahrlk hen« Sti len fur die Schrift- und Ab-
ren, da Dreamweaver das Tag nach dem style-Element anlegt: <> < 1 ink r'e l e " s tylesheet II
o o o
href= "simple . css " type» " text /css " > cs ty Le type = "text I css " > < ! - - @import "ma g i e . c s s " : -- > < 1s t Y Lee-
Aufpassen, dass bel der Def inition der Stile in »slrnp le .css« ketne Stile angelegt werden , die du rch »rnagte .css« nicht Oberschrieben werden . Anso nsten mOssen diese Stile wie in Beispiel 6 .2 exp lizlt Oberschrieben werde n!
[] . _I' , •
..!
~
.:'... _~
.......' ••,.ZZI
~
. .~ .!!,
e
• I!IB
,~I
01. UffI,I.nP.nte YlKula Die Pa tull Ru'KI,anv: St.dtp len
Die Palazzi DorP.w.oM«!ici·~ri._Micbolo::oI"Cooimodo·M«!ici"tl.d'''5J.hrbUhd«u «Wtlt,lteht Plft,t:b« cMrKuC'bot Sill Lor-.nzoua~ sro&n PL.u. Cbo"i
cIoo _~ .Dor P.w. boborborJ< bou..
Str.&.a.."t«IIl.~Rdt\lDl~nwacWftiib
.-
... _"
YOCIo GioctouDd~MedtC"D..~t.. . S&lI.uCroeewird.Kb.w:cW-P.anth«xl
. ~.
.
.
201
Kapitel 6
6.4
Bis zum letzten Tag: Beispiele
Beispiel 4 : Einfach nur Stylesheets I
Das folgende Beispiel ist (55 »pur« - es beruht einzig und allein auf den positionierenden Eigenschaft von (55 . Das Layout ist ein typisches »Dret-Spalten-Layout« und passt sich der Grage des Browserfensters an, selbst ein Bildschirm mit einer Auflasung von 640 x 480 Pixel kann aile drei 5palten im Fenster halten . Dabei ist der Inhalt der 5eite in Browsern, die 5tylesheets nicht unterstOtzen, sinnvoll zu erfassen und voll funkttonsfarug. Das Layout legt sechs Blocke fur die 5eite an: • Eine Navigationsleiste oben mit Textlinks, dem Logo und einem 5uchformular • Eine Logoleiste fur ein Logo oder fOr Bannerwerbung • Eine Navigationsleiste auf der linken 5eite, mit einem Logo und Textlinks • Eine Navigationsleiste auf der rechten 5eite mit Links zu anderen Sites oder kleinen Werbeblacken • Ein Block mit dem Inhalt, mit einer Beschreibung der angebotenen 5eminare und Online-Tutorials • Ein farbiger Block innerhalb des Inhaltsblocks, in dem die Tipps des Tages veroffentltcht werden
obere Navigationslelste Logoleiste Inhalte Die B/6cke des Layouts im Uberblick : Das Layout solt sich der Gr6E'>e des Monitors anpassen, ohne die dritte Spatte aus dem Viewport zu verlieren. Insbesondere mQssen die Layoutelemente elnen Textzoom in den verschiedenen Browsern verkraften . Fur Netscape 4 gibt es wieder ein einfaches Sty/esheet, mit dem Besuchern die /nha/te linear aufgelistet werden .
202
Tlpp des rages
6.4 Beispiel 4: Einfach nur Stylesheets I
Das Layout 5011 mit elnern Stylesheet fur Internet Explorer, Netscape und Opera, jeweils ab Version 5, sowohl fOr den PC als auch den Mac auskommen - die klelnen TOcken der Browser werden kaschlert. Ais weltere Anforderung stehen die dynamlsche Erwelterung und Anderung der Selten auf der Anforderungsliste - ste sollen ohne Anderung der Layoutmechanismen funktlonleren . Aile Layoutelemente 501len mit den Inhalten wachsen, ohne dass Anderungen an der Struktur der Seite durchgefOhrt werden mOssen. Das Layout beginnt mit drei Spalten, die jeweils einen Abstand von 9 Plxeln voneinander aufweisen und glelchzeitig einen Abstand von 9
Tipp: Die Beschreibung der Codeelemente benutzt Namen fOr die Farben der Elemente - hier und in den anderen Kapiteln des Buches werden Farbnamen aus rein didaktischen GrOnden benutzt. Wer Wert darauf legt, dass aile Farben in allen Browsern korrekt dargestellt werden, sollte stattdessen Iieber die sechsstelligen Hexadezimalcodes angeben.
Pixeln zum Rand des Browserfensters halten . Die mittlere Spalte fur die Inhalte wird den meisten Platz beanspruchen - also gibt diese Spalte die Hbhe fur aile drei Spalten vor und zleht die anderen Spalten mit.
Schritt 1: Der Hintergrund Der Abstand zum Rand des Browserfensters wird durch ein Stylesheet fur das body-Element gesteuert:
• body {margin : 9px 9px Opx 9px ; padding : Opx Opx ; background : white } margin besch relbt den ause ren Abstand . padding : Opx wlrd expllzlt deklarlert. da die Werte fur padding In Opera nlcht auf 0 gestellt sind. Die Hintergrundfarbe wird gesetzt, da Netscape 6 auf dem Mac das klassische Grau der digitalen Steinzeit vorgibt.
Schritt 2: Der umfassende Block fUr aile Den umfassenden Block bildet eln div-Container mit der Bezeichnung
ebeneO. Die Hinterg rundfarbe ist die emzlge Eigenschaft. die hler angegeben wlrd:. #ebeneO {background : khaki }
Schritt 3: Box in a Box Eln div-Contalner mi t der Bezelchnung ebenel wlrd In den dlv-Contalner ebeneO verschachtelt. ebenel hat
< I-body (
"'""Jt~~ r,
tpll 0 tpll l
Cck9rOUDd lvhtt.e )
etnen auseren Abstand von 143 Pixeln zum linken
•• beneO ( bt!cx¥ound tkhaki )
Rand (das schafft Platz fOr die linke Navigatlonsleiste)
'.bene1 (
und elnen Inneren Abstand von 9 Pixeln fOr den Frei-
-->
raum zwischen der linken und der mittleren Spalte . • #ebenel { margin-left : l43px ;
padding-left : 9px ; background : white }
JM~t~~r~~~:~'
Cck9roUfl,chvhite )
lrt ylp M . d>
<~
ld.-.beneO-> <
d t v> body> .
Jetzt ist bereits sichtbar, dass der Inhalt der zweiten Spalte die Hbhe von Spalte 1 und Spalte 2 bestimmt.
203
Kapitel 6
o
eee
D'tl ~ttn
Bis zum letzten Tag: Beispiele
• Schnu4
C)
Schritt 4 Eln dlv-Contalner mi t der Bezelchnung ebe ne2 wlrd In den dlv-Contalner ebene l ver-
<.t.yl. typ .. • .. t .. xt./c•• ·:>
bo4y I . .rqln : !JplC 9p x 0 Slpx; padd lntJ :D l bacltqroun4 l whae ; ) hbt'ntO I baclcqroun4 t naU ; ) fe b. n!!! I -..rq1n-le ft : 14:151:11: :
schachtelt.
•
pacldlft'ill-h ft :9px ; bac!tqrowul l ..111 t. : )
~ebene2
{ background : khaki}
'eb'l'n.: I baeleqrOUnd lkh.ltl; )
Die Hintergrundfarbe ist die einzige Eigen-
lIt y l e >
schaft fur ebene2 . An dleser Stelle werden zwei Spalten und der Abstand ZWischen den belden Spalten dargestellt. 1m Browserfenster sind die BI6cke erst dann sichtbar, wenn ein Fulltext fur einen Test eingegeben wird.
Schritt 5 Mit der glelchen Technlk wlrd ebene3 In ebene2 verschachte lt, um die dritte Spalte einzusetzen .
#ebene3 {margin-right : 143px ; padding-right : 9px ; background : #FFF • #ma in background : #CCC Eln welterer dlv-Contalner mit der Bezelchnung main wlrd ebenfalls In
ebene2 verschachtelt. Die Verschachtelung der dlv-Contalner dtent u.a. dazu. die verschledenen Interpretatlonen von padding, margin und border zu negleren. Insbesondere der Renderlngfehler 1m Boxmodell der Windows IES- und IES .S-Versionen wurde ansonsten das Layout brechen .
ee e
Schritt 6: Die obere Navigationsleiste
( MArq Ul,:' p. '511( a 'px ; p-.ddlnq :Op x Opx : backqroun4 : vh1 te : J h bltn.G t bae kq r o und : Jthalr: l ; ) ho be n. ! « 1II&cqln-l d t : 14Jpx; packllnq- l e't t :9px ; backqrov.nd : "h1 t~ :
)
h b ~ n ~ : I baeko'rOu.nd:khakl:)
I ... rglll.·r lqh~ : 14Jpl( : padding-right : I pl(: baC'kQ'rou.nd : Ybl ~. : ) . . . 111. I bukgrouDod. : yblU ) ' navl ~ l . t . ( bAC'qrcund:clIirkkhak1 ) 'log o1ltl.u f baekqround:lUwlkl I hbltb~:S
< 1 . ~ y l lt "
Bin d l v> dlv ) d IV)
204
.pl.l~
dl. R\1II Uc.
In ebenel wlrd vor ebene2 eln dlv-Contalner mit der Bezelchnung navleiste - die obere Navlgatlons leis te - verschachtelt und In na v l e i s t e eln welterer dlv-Contalner mit der Bezelchnung logolei ste, der Raum fOr das Logo der Selte oder elne Bannerwerbung oletet.
• #navleiste { background :darkkhaki • #logoleiste { background :# khaki } An dieser Stelle zeigt das Layout drei Spalten sowle die obere Navigationslelste mit dem Raum fur ein Banner. Jeder Block wird 50 grog, wie der Inhalt, den er aufnimmt.
6.4 Beispiel 4: Einfach nur Stylesheets I
Phase l ist abgeschlossen. Bis zu dieser
< !DOCTYPE HTML PUBLIC " - / / W3C/ / DTD HTML 4 .01//EN " Stelle erklart das Beispiel, wle ein ''ht t p : / / wv..'W . w3 . or g / TR/ h t mI 4 / s t r i c t . d t d '' > Layout generell m it drel Spalten aufgezogen wlrd und dafOr sorgt, dass stets aile atet Spalten die gle tche H6he
205
Kapitel 6
o ha p:1I 127.0.0. 1/_.yOut/ cssdts ian/ schritt7.rnml
666 ' nev l1 nb
... ...,
Bis zum letzten Tag: Beispiele
Schritt 7
o
I
{
POIl.1C1Oft:Ab IlOluu ;
b.agr.:OW1d: kbMl ;
. 1dth : 14Jpx;
Ein div-Container mit der Bezeichnung
tippbox wtrd In mai n versc hachtelt. Seine wic htlgste Eigenschaft ist float :
'
h f t :tpx :)
right , die den Containe r bei jeder Fens' • .un I bal;l!;:ljJE:ound: vtut.co; ) , t.1ppb_
C
Uon: rlgbt; _ 14 th : 17Spx:
b&eklp.0Uft4: v h C'e r...:
pa.lt1oa: [deun:)
fDavndlta I position: ,ah!lolut.t ;
tergrof>e ohne weltere Posltionsangabe an
baek9'I:CUl4: khAII::l;
der rechten Grenze des umfassenden
_ ldItb : l Upx : c.op: 0:
eIGht:
a
I
Containers main halt. Die H6he des Containers passt sich automatisch an die Grof>e des Inhalts an:
• #t ipp
float : r ight ; width : 175px ; background :
#FFF3AC}
Schritt 8 Ein dlv-Container m it de r Bezeichnung navlinks , de r absolut posttioniert ist (seine Koordinaten beziehen sich auf das Dokument), wird in
ebeneO verschach te lt. Da der dlv-Contalner absolut positionlert wird, kann er vor oder hinter ebenel gesetzt werden : • #navlinks { position :absolute ; width :143px ; top :9px ; left :9px }
Schritt 9 Der dlv-Contalner m it der Bezelchnung navrechts hat keln 50 retchtes Spiel wie navlinks . Er 5011 unter der oberen Navlgatlonslelste auf der glelchen H6he wie die mlttlere Spalte lIegen. Er muss In ebene2 verschachtelt werden - und zwar vor oder nach ebene3 . Damlt navrechts auf der gle ichen H6he wre main lIegt, wlrd ebene2 relatlv pos tttonlert, Dann kann navrechts absolut pos itlonlert werden .
• #ebene2 • #navrechts
206
background : khaki ; position :relative ;} position : absolute ; width : 143px ; top : 0 ; right : O;}
6.4 Beispiel 4: Einfach nur Stylesheets I
Probleme mit dem Internet Explorer An dieser Stelle gibt es Probleme mit dem Internet Explorer fur Windows. Die Tippbox verschwindet, obwohl der Inhalt des main-Blocks die Box sauber urnruest, t ippbox muss fOr die korrekt e Darstellung im Internet Explorer auf dem PC relanv positioniert werden. Durch die relative Posltion ierung wird der z-lndex fO r t ippbox hoher als der zindex der main-Box, des Blocks fOr den Hauptinhalt. Die tippbox-Box kommt nach oben und ist wieder sichtbar. Wegen eines welteren Problems mit Windows Internet Explorer braucht ebene2 elne Breltenangabe (ebene2 ist die Referenz fur die rechte Navlgatlonsleiste navrechts, die so welt wle mbgllch nach rechts positioniert ist) . Internet Interpretlert das Schlusselwort auto fur die Eigenschaft widt h nicht . versteht aber inher i t (was keln Standard 1st) . Wlrd ebeneO auf elne Breite von 100% gesetzt und die Brelte von ebene2 auf inherit. erbt Internet Explorer den Wert von ebeneO . Aile anderen Browser erben den Wert auto von ebene1 (Windows Internet Explorer schelnt stets die letzte explizlt gesetzte Eigenschaft eines Vorfahren zu erben) .
Internet Explorer und die Tabellenbreite Wurde die Breite von ebene2 mit 100 % angegeben. kame es spater zu Renderlngproblemen. IES .S+ setzt Tabellen, deren Breite auf 100% gesetzt wird, auf 100% des Browserfensters. • #ebeneO • #ebene2
• #tippbox
background : khaki ; width : 100% ; } background : khaki ; position : relative ; width : inheri t ; float : ri ght ; width : 175px ; bac kground : wheat ; posit ion : r elative ;
Schritt 10: Aufraurnen Es wird Zeit, autzuraumen und Elemente zu ersetzen, die zu Problemen fUhren konnen. Der dlv-Contalner ebene3 wlrd nlcht mehr gebraucht und kann entfernt werden . Seine Deklaratlonen gehen auf mai n uber. • #main { margin -right : 143px ; padding-right : 9px ; background : white ; }
207
Kapitel 6
1m necriste« Schritt werden die Schriften fCir die Navigationselemente der Seite ang eleg t. Beim Anlegen von Oberschriften und sobald im Text der rechten Navigationsleiste AusdrCicke in langen Zeichenketten eingesetzt werden, kommt schnell ans Tages/icht, dass der Besucher durch Andern der Schriftgroge in sei nem Browser in der Lag e ts t, das Layout zu brechen : Der Text fliegt Ciber die vorges ehenen Grenzen hinaus .
Bis zum letzten Tag: Beispiele
666
,
Otts tst ck Ir'lkt
""_tJC)fl$lto$tt .
oer avwCont.tner wetSt
.
ce Q:etdle
"!itCH
~t' R..-.d
-BeZUQSsystem .., 1St
Does1St de<
j
W14 tb : 1Upx = Uip lflg,
XT
rl'du%tertn SymboUt'i ittn Jlnpuun._ Btowu rfarbe
XI
.. Ztichen u,tz
DoI:untn~
.-.11_1 (
b plorf:r ~ lt'l ll t Symbol~ i' ~tn
U OOl191n e i
also d.oS t
pOllUoa.:e.oluu' ,
f9".
St~IUI a.titt'
von
abSOlJt poSJ,tlOI"kf1.
I
hVOfllltnie is lt'
!a-1U IU (
Brelte ltUf Woe der
eee-e1. Er 1St
SvmbOUe-IIIt:
Adrtu"nlelilt'
lMMon bHndrtn
SeminarB Photosho p
lt ft :fpa: )
Doze nt :
Aktulohsiertft
,-,
~
• X XI
lOOl! 200l! IS OlI .,120" l OOl!
w zu enem w , n dem . ...tttr
90ll
J.lYII· Nachn chten
XE
GruncIo9
CJ _ - ~
•
B,Id.,I~"
Source
..
I
Gro&tr
eereen
. . zu_ Hfl
7S. 60ll SOlI X.
I
dtr
Fur ~r met'Y 8enJ~ zaNt oe CS, Klt lntr X · ,ODZtnten. mt ProQr.vrmen wie ~ Pnotoshop zu Oazu QehOf"en f01QV aftn n Fotostudtos eeeosc Wit ""tarbelt~ Tex Qnk von Prlt'Sststenen und
Ve~tn .
Sem inlJr Digitlile FOlogra fie OOZtf'lt Olpl.· lrlQ. OIetm¥ WUle-r
Der UInItle-g yom fotooraftsctw:n FIm aut clenChip SIt'
venprechtn
K"lt
l .....
~~~ dleser
Tu Ulnks N 5etten
rTIIt Referenn
Eine _1
n.
noe _Zekhenkette
IdYldtre PrOcluknon. vere;nfad'ltn dle
~cs: ::'~:F~:Z~:,~e::t~~ Q\U~Ut
• •-f.
Schritt 11: Relative GroSen einsetzen Eine Losung des Problems , das durch den Textzoom der moderne n Browser hervorgerufen wird, besteht in der Angabe von relativen Grogen anstelle der absoluten Mage fur Elemente wie die Navigationsleisten rechts und links. Diese beiden Boxen sind 143 Pixel breit - das entspr icht etwa 9 em.
• #main
• #navrech ts
margin-right : gem; padding-right : 9px ; background : white ;} position : absolute ; width : gem; top : Oem ; right : Oem}
Der Besucher hat - Je nach Browser, mit dem er die Seiten betrachtet verschiedene Moglichkeiten, die Schriftgrogen zu andern. Das hier vorgestel lte Verfahren lost einige der Probleme, die dabei auftreten konnen, aber nicht aile. Die Spannbreite der Techniken in den Browsern ist zu grog, um allen Eventualitaten vorzubeugen. Auch die Tippbox wird mit einer variabien Breite versehen, nicht aber die linke Navigationsleiste . Overflow-Probleme in der linken Navigationsleiste fOhren nicht zu BrOchen im Layout.
208
6.4 Beispiel 4: Einfach nur Stylesheets I
< lOOCTYPE HTML PUBLIC " - I IW3CI IDTD HTML 4 . 01 1 IEN" ''http : / /www .w3 .org / TR/htm14 /s trict .dtd'' >
Hnavrechts
#main h l
#navrechts
#navleiste
Hnavleiste a img
L-
position : relative } {position : absolute ; width : 143px ; top : 9px ; leEt : 9px } {position : absolute ; width : gem; top : Oem ; right : Oem} {ma r g i n : Oem ; padding-leEt :0 .3em ; padding-right : Semi background : rosybrown } h3 {margin : Opx; padding : 3px ; background : rosybr-own } Eorm {float : right ; width : IO .Sem ; text -align : right ; margin : 0 ; line-height : O. 7em } input {Eont-size : O.Bem ;} {border : none }
209
Kapitel 6
Bis zum letzten Tag: Beispiele
Schritt 12 Die obere Navigationsleiste nimmt ein Suchformular auf. Seine wichtig ste Eigenscha ft ist float : right. Das Suchform ular wird als erstes Element In den div-Container navleiste eingebu nden . Die Breitenangabe ist zwingend erforderlich, da das Formular frel schwebe nd deklariert lst ( fl oa t : r i gh t ). 1m Sinne des vorangegangenen Absatzes Ober relative Gr6gen notiert das Stylesheet fur das Form ular in nav l eiste die Brelte relanv mit width : 10 . Sem. Damit wachst das Suchformular entsprechend der gewahlten Schriftgr6ge des jewelligen Browsers . text -align : right richtet das Formu lar am rechten Rand des umfassenden Blocks aus. • #navleiste form { float : right ; width : 10 .Sem; text-al ign : right ;
}
Die Eigenschaf t float : right kann dazu fOhren, dass Elemente des Logoblocks Oberlagert werden . Darum deklartert logoleiste die EIgenschaft clear : right und Elemente In logoleiste rich ten slch unte rhalb von schwebenden Elementen auf der rechten Seite aus. In Hinsicht auf die Probleme mit der Vererbung der Brelte im Internet Explorer 5/5 .5 unter Windows, die in 5chrltt 9 besprochen wurden, erhalt der div-Contalner navleiste die Deklaratlon width : 100%. • #logoleiste
background : khaki ; clear : right ; }
• #navleiste form
float : right ; width : 10 .Sem; text -ali gn : right ; margin : Oem ; line -height : 0 .7em;
1:1 _
eo
•
•
---
•
. ) _ _ " ......... _ ....... _
IT
_ ... IolI_
...
;
.........
u...- ..... htl C Ollor .......
001"""_ " .b6*..."
OoolHo. -llIII . ... ..... II'.
00&.
- - --""'- - ~age 210
• #navleiste input ( font-size : O.Bem ;
I
...... l no
~"'otM1leCl' hlNotI~" ~fIUV""
......... 1
. ' / .,
Engin eering 0
CSS2-Positionierung und Dreamweaver/GoLive : Die Site kann nicht mehr in Dreamwea ver oder GoLive gepflegt und erweitert werden . Grafische Webeditoren sind noch nicht in der Lage, die Seiten darzustellen . Dennoch macht es Sinn , sie in Dreamweaver/GoLive einzustellen : Die Funktion aet Templates- oder Musterseiten, mit der neue Seiten erzeugt und die Navigation einer bestehenden Site schnell uber samtliche Seiten einer Site erweitert und veienoert werden kann, funktioniert auch weiterhin und garantiert etne stabile Sites truk tur.
6.4 Beispiel 4: Einfach nur Stylesheets I
Stile fUr die Schriftgestaltung Bleibt nur noch, die Stile fur die Schriftgestaltung der Seite anzulegen . Zu beachten ist dabei, dass sarntllche Texte und Bilder innerhalb der verschiedenen div-Container bis an den Rand des Containers reichen und auf Abstand gebracht werden mOssen.
•
•
• •
#navl inks a { border : none ; margin -left : O.6 em; font-family : Verdana , Aria l . s ans -serif ; font-size : O. Sem; d i s p lay : b l ock; text -decoration : none ; #navlinks h3 {f ont - s i ze : 0 . gem; color : #28302 8 ; margi n : O.Be m O.lem 0 .4em 0 .4em ; #navli nks p { f ont : O.Bem Ar ia l , s an s-serif ; marg i n- r i gh t : l em; ma rg i n- lef t : l em; color : #O EOFO E; #navl i nk s a :link {co lor : #FFFFFF ; } #navlinks a : vi sited {col or : #FOEFCA ; #navlinks a : hover {color : da rks l a t egr ay ; }
di s play : bl oc k fOr Links in der
--- -....-
--
Image Engineering
~ftoop,b"rtf.
00IQ1taIe 'otoqrah e
LI, ..... """"S.u
c.Iot' M.",~
...tIod4>"O"
NdtI4~ tnll
ProotanM"Mn ..... ~ Phot.GtJ'1OO
N dWl ~ec:." . Duu Q4nor." Fotoorilen It't
I
et4nitJ ... MIt.ItbM., ron Pfn..-nehn
""'-----. F~
_-
I.-.;JlIlNtl 0" M:llHI
l ...
~"'tll
....
_oe",-,,"trrgbiIt
~ ..fth r1)r _..,. t
Fu'1'TWMI" ",.I'r~: . . dtotdl~
,_-.....-.....
w i. st. U. " sie "left
c.... 'NMr "'ll . . .
....-..
__
~ h N or..ec
....... loftHl'
-_.
F~I'CI'I~
I.II4DrutI«
&Ikl.-.d'l ....
s.. ·4f'lPftod'4rl..,.t~'".~ '
.",_~cM~ • .-rI"~~"",,",
~.
bow"tltf dIoI
~ Qu~
_141Ott fotogll'~
Film dtOUIe 11:. . . .'"' . Hd'C nut m FetMtudto. 1ft zit*..m.n MHI ·und P'nhU1loen . M. YeI"~\I'ld 1ft
sondem
d« PrHM 1Y,t." ... 4'n"
=~ "'Ofc)em den ~ m(d~,**,
6Hdda terbanken Fi.# utI.ur.o. &Met und Prwu ~ die '-Ute~ ~""~ ,..... IlId«MQII'll'lt ....... • ,t.tet'NllbI~
linken und rechten Navigationsleiste sind fur Textbrowser und Browser gedacht, die Stylesheets nicht interpretieren . Dank d isplay : block erscheinen die Links in diesen Browsern in einer horizontalen Zeile, wahrend in Browsern mit CSS-UnterstQtzungjeder Link eine Zeilenschaitung erzeugt.
-_-
-..-. ....... .....
NnaiIII ,~1ftIII
:~ -r
: ~ ';.;._.,:.
_..
w.m"' ..... '1ftQiJ'n
-
IIItn Sotltn MNn
woe..n. MW4:,*,s..~
1 SMt" ~'I'OnTobl ll
Nl.t:\nJdft ~ Pot~. MltOtn
.....
8Ild«f ....~ a . W Must.., Gen«.won ~Mf'..,g,....,urd PIrt1 tIfJ,....-c-~.... und mit Sd'tw..,.. hi Udd.c~.,... An;h'W
211
Kapitel 6
6 .5 Wieder einmal kommtdas technische Spa gat zum Tragen, das durch die Formatierung mit Stylesheets rnogflch wird : Die Inhalte der Site sind »llnear« in ihrer inhaltlichen Folge, um so fUr Textbrowser, altere Browser und alternative Ausgabetechniken funktlonsfahlg vorzuIiegen, die Gestaltung ftir die modernen Browser bringt die technisch machbare Funktiona Iitat .
Bis zum letzten Tag: Beispiele
Beispiel 5: Einfach nur 5tylesheets II
Das Schone an frames war die Navigationsleiste , die im klassischen frameset auf der linken Seite festgemauert im Browserfenster stand . Sie erfOlite die Anforderung, dass der Kontext »Bei wem bin ich, wohin kann ich sonst noch« stets erhalten blieb, auch wenn sich der Besucher durch lange Seiten scrollte . Cascading Stylesheets sind durchaus in der Lage, uns dieses feature zurOckzubringen und es auch noch einfacher in die Welt zu setzen als mit Frames. Die Navigationsleiste im vorangegangenen Beispiel wird durch das Stylesheet
• #nav l inks { position :abso lu ce ; width : 143px ; top :9px ; left : 9px ; } formatiert. Damit die Navigationsleiste im Browserfenster fest steht, auch wenn der Besucher durch die Seite scrollt, wird das Stylesheet um eine Deklaration erweitert:
• #nav l inks { pos ition : fixed ; Il po s i t i o n : abso lute ; width :143px ; t op : 9px ; left :9px ; } Damit wird das Browserfenster der Bezugspunkt des div-Containers, der Sichjetzt nicht mehr vom Fleck bewegt. Was macht die Eigenschaft posi t ion :absolute 1m Kommentar? Sie bleibt als »Netz mit doppeltem Boden« fur den Internet Explorer unter Windows. Wahrend aile Browser ab Version S die feste Positionierung beherrschen , wird ste im Internet Explorer unter Windows weder in den Versionen 5/5 .5 noch in der Version 6 unterstOtzt. Da der Internet Explorer in allen Versionen den Wert fixed Ignortert, tritt die deklarlerte Eigenschaft pos i t ion : abso lute In Kraft und der Internet Explorer verschiebt die Navigationsleiste, wenn die Seite gescrollt wird.
212
6.5 Beispiel 5: Einfach nur 5tylesheets II
I!IB
Ole Darstellung der CSS-Selte 1st linear und voll funktlonsfahig In allen Browsern, die Stylesh eets nicht unters tQtzen .
,, " \\ n', = ~'i1'
aging
I
._Art>.",~.,I'IJ" I(In"".''Ol''''"''Qo..tm'' '''''''lI"IlImt'''.l\O''''''llI'lf Ull' '~'f 5.",1"1(1 10 01
e!llIWlloo.Jl .. ,""Otlc'"""'~
""'alo"'..!'tJ.l.......loIlll.;i.ilo.:'llIIl<.......IllIIllItU.-"""-..
LIdbt .rbtCldOQ Q!q'. f'MMrtl'If wtMe''OQ "",a"rOnIN 10
[)cud In
Image Engineering
ilIfWAWI
v......... I\G~ Fot1 t.",I\O
R"_~",",,,,,,,,,,,,,,,
Kleine~
QuarkXPreu -
Sommf'nf'mlrw,.
cee..
Fur I(wlentlChlo,wne nod'o Pl.-uell't ~ ....'" Q\IMI.xPf.,,~,If'n nnJ . U . o.t" l.nt'OM'O ,emct..cl.Of'lO.aterst. setrct.1"I Qu.In~., .o.r MIdl ~.,onu,~!o.nd T,poor6llt.
WI«"flU"""" D!!dbllr1t«llgt F~
II"l!nlr rMfV
•.
"""dl1ttOQlQ
'enID
-It 6d . . . , .. . . . .
~ " 'M'«o. ~
IIldbtMb..wno me
PrOQl'.tn'IIMn ' " '
"doN PnotoshoP til dien
..w.ft)gI_~, Oa:u QlthOr." F'ot09'~"" 1"I FotoltI.IcicK ~ ... MCMbeC... wonPrt',u,tehn ~ v . ~ IlIoll.olt.b1uulll
ew.,..."...,.
,,,""oId'\«l
sctv'4hr. PrOQ.i..tlOotl, (\Ie~. ~ f oto l tudoo \I"IdI .....m~. WiI!tIo ' " IJIeoocf'\4 ~""Mftotoor.afl'IdM Fn : Q~".II'M,at Md'Cl'U'II't'lFotMb.Ilio.sond""'I"II~_U '!o.nd Pn.A'R.-",. Mil ~IV'Q'" """0 1"1oer Print ~." J&e ......~ El"IlUQ lI'd .,1 Ofd4m den ~"'O me: Mm n.UfIn Modoum SorI .,....
11144.'·"...·"·0 FIJI' unz"""~ ~ und PrTItI ~ ~ IKrte ~ Ul"d fur ebH'IlO ".... ..,., ~1,~"~ ,
doOUk*'.... l.n:I
meSO't-
Lb.lJll..:...UU T.lltv.,~eunosPfOGl'~
Non"C.'" 1,1t.lNbld'Mo Nut..nn2
6ftlI~.t""l1'9«oItenO'OINJt.,,~.JCJOnln""ldl
flM 11dd.-t~ ....
1M""," cMt'l s.a "on
In . "
..... undPnntsllftJz~
Nd'n , ..: .... .
Dol~.... ........, l"U'\
Z..u<:trftMl. _.lUl!ooe oMf
fl,• .
rut
w ~ ~.MO"'.r$~.~..,Mhs.t:proogr...,..,..w,.~P~~"'" .~oMrQwrUPrnt... ~IM
U6H und T.lIU
rnan«.~.~ItI'l
prvf.IIofiONI..,......"
toro.m
,s..
Oft !ltd St ... U"ld,~dem Sd'rftst1.d. 1M" SctM. d« ... r'MtC"...
MICh~1~Nnd'ch Oft~ .
OlB
COO, nQht 0 2OO2 r'MlH
~
...... Il.a.te
,~tloIIt ....
"'''lhl'lOWwrm' 'Y· L!I::IzJ:IaI.Ic
Mit 5tylesheets macht Netscape 4 .x Klelnholz aus dem
-=.== -
(55-Layout. Also emp flehlt es slch, das 5tylesheet vor Netscape 4 .x (und anderen alteren Browsern) zu verbergen. Die elnfachste Lbsung tst eln elnfaches 5 tylesheet fur Netscape und aile Browser, die 5tylesheets gar ntcht oder nur fehlerhaft Interpret leren. Zu den ersten . gro&en. Sites, die dlesem Trend folgen, gehbrt die europalsche Lycos-5lte http://iscriDt.dk/lycos/2/ .
---
,.,..
~ ~
213
Kapitel 6
Bis zum letzten Tag: Beispiele
Die Konstruktion mit dem C55-Kommentarzeichen »//« nutzt einen Fehler im Internet Explorer 5 und hoher : Internet Explorer 5+ ignoriert das Kommentarzeichen und Oberschrelbt mit position :absolute d ie zuvor gesetzte Eigenschaft posi t i on : fi xed. Benutzern , die im Microsoft-Flagschiff surfen , werden also die ganze 5eite scrollen , wahrend fur Netscape 6 und Opera 5 die Navigationsleiste 50 fest im Browserfenster steht als ware sie ein Frame.
Netscape 4.x gelinkt In Browsern, die keine 5tylesheets unterstOtzen , werden die Inhalte linear und voll funkttonsfahlg dargestellt. Die Problematik des C55-Layouts Iiegt in Netscape 4 .x, das nicht in der Lage ist, die Inhalte sinnvoll darzustellen . Das 5tylesheet mit den hier vorgestellten 5tilen wird darum nicht durch eln -Tagverknupft, sondern importiert. Netscape 4 .x ignoriert die @import-Regel im <style>-Tag. Damit erbffnet sich ein Weg, alten Browsern, die 5tylesheets zwar interpretieren, aber die Positionierung uber 5tylesheets nicht ausreichend unterstOtzen , mit einem eigenen 5tylesheet zu versorgen , ohne dass eine Browserabfrage durch ern Java5cript durchgefOhrt wird : Zuerst wird ein 5tylesheet durch eln
O O
o
@import ur l( . . / i v e n t . c s s ) ; -->
o O< / he a d >
214
6.6 Beispiel 6: Wie gedruckt - das Stylesheet fUr den Drucker
6.6
Beispiel 6 : Wie gedruckt - das 5tylesheet fUr den Drucker
Das Web ist ein multimediales Medium. Auch wenn das Internet bei den meisten Besuchern auf dem Monitor des Computers landet ..., wenn es richtig interessant und wichtig wlrd, drucken wir die Seiten auf unserem Desktop-Drucker. Alternative Stylesheets definieren alternative Stile, die anstelle der vordefinierten oder automatisch vorgezoge-
Die neue Browsergeneration druckt - aber nicht mehreinen unkontrollierbaren Screenshot, der Bilder durchschneidet und Texte zensiert.
nen Stylesheets eingesetzt werden. Ihre wichtigste Anwendung wird in der Formatierung des Dokuments fur verschiedene Medien liegen:
O
r_ - ~ _
r-
ne v,'s....... Showdown fOr da •
.=.-
Fakten, Fakten, Fakten: Abgeschnittene Oberschriften, OberflOssige Seitenelemente, verschluckter Text. Ausgabe : Fokus mit Mozilla 0 .9 .8, Spiegel mit Internet Explorer 5 .1 .
lIuHn-Duell
--- _. V~
......rt""""""IIIl"'''H.c.h
C':.:::::=::..-::-"E::-:'=- ,----------~---
2 15
Kapitel 6
Bis zum letzten Tag: Beispiele
Immer noch ist der gr6fSte Tell des Webdesigns rein visuell und die meisten Seiten lassen sich nicht besonders gut ausdrucken . Navigationsleisten machen den Druck schwer lesbar. Wie oft sehen wir schon die kleine Schaltflache »Lesbare Druckversion «? Dabei ist der Druck die zweitwichtigste Ausgabeform des Webs. Dabei k6nnen wir Besuchern unserer Seiten, die mit Internet Explorer 4 .5+, Opera 5+ und MoziliaiNetscape 6 surfen , durchaus elne vernOnftige Druckausgabe bieten . Der Medientyp fur den Druck wird in der @import-Anweisung angegeben :
@import url(seite .css) print , projection ; Die Stile in seite .css werden sowohl fur den Druck als auch die Projektion benutzt, beides seitenbasierte Ausgabeverfahren . Auch in gelinkten Stylesheets k6nnen mehrere Ausgabeziele angegeben werden:
Stylesheet fUr den Druck Um dem Interessenten ein besseres und bereinigtes Druckbild zu bieten, werden also zwei Stylesheets angelegt: eines fur die Bildschirmausgabe, elnes fur den Druck. / * Sti le fur den Monitor * / body {color : silver ; backgrou ~d : black ; } a : ink color : yellow ; background : #333333 ; text -deco~ation : none ; a :visited {color : white ; background : #333333 ; text-decoration : none ; a :active {color : black ; background : white ; text-decoration : none ; } hI , h2 , h3 {color : ¥CCCCCC ; background : black ; padding -bottom : Ipx ; border-bottom : Ipx solid gray ; }
216
/ * Stile fur den Druck * / body {color : black ; background : white ; } a :link , a :visited {background : white ; color : black ; text-decoration : underline ; font-weight : bold ; ni . h2 , h3 { background : white ; color : black ; padding-bottom : Ipx ; border-bottom : Ipx solid gray ; . ke i nd r uc k {display :none ; }
6.6 Beispiel 6: Wie gedruckt - das Styleshee t fUr den Drucker
Pseudolinks werden in der Druckausgabe wieder unterstrichen und ohne Hintergru nd gedruckt. Die klass ifizierte Deklaratlon . keindruck unterdruckt das Banner im Druck . Beide Stylesheets werden im headElement des Dokuments eingefUgt:
o o
clink rel= "stylesheet " type "text/css " hrer= "screen .css " media= "screen"> clink rel= "stylesheet " type "text/css " href= "druck .css " media= "print ">
Was auf dem Papier keinen Sinn macht ... 1m HTML-Dokument werden aile Elemente wie Banner und Menuleisten, die nicht ausgedruckt werden sollen, mit einem
o
cdiv class= "keindruck ">Banner , MenOleisten und anderes , was im Druck ni c h t gezeigt werden sol1c /div>
Die Umkehrung ist naturlkh auch denkbar: Drucken , aber nicht auf dem Monitor anzeigen .. . aber nicht ohne weiteres machbar. Denn altere Browser, die das Attribut nicht kennen, werden die Elemente unweigerlich anzeigen.
Stile fUr den Druck Die nahe liegendste Methode, spezlelle Stile fOr den Druck einzufOgen, ist das link-Element:
o
clink rel= "stylesheet " type= "text/css ' h r e f e " . . . " media= "print " />
Stylesheets fOr den Druck stellen in einigen Browsern eine Gefahr fOr die Ausgabe auf dem Monitor dar, wenn das media-Attribut nicht korrekt erkannt wird und Stile fur den Druck falschlkherwetse auf die Monitorausgabe angewendet werden . Man stelle sich nur einmal vor, das Werbebanner verschwindet bel der Monitorausgabe . Um die Ausgabe auf dem Monitor nicht durch falsch erkannte Stilregeln in Gefahr zu bringen, kann die @import-Regel im style-Element eingesetzt werden . Sie wird von alteren und fehlerhaften Browsern wie Netscape 4 .x ignoriert. Um Stylesheets fur den Druck vor modernen Browsern zu schutzen , kbnnen sle Innerhalb etner Importlerten Style she etdatei durch @media
pr i nt abgeschottet werden .
217
Kapitel 6
Eine Kompatib ilitatsliste tur die UnterstOtzung von Styl esheets fur den Druck gibt es bei
h e ep : II \\'YW . c ode s t yl e . orglcss Imedi alpri n t - Brows erSum~a
ry .shtml , Die Kompatibilitatsliste behandelt nur die Gefahren, die durch Stylesheets fUr den Druck auf die Monitorausgabe zukom men, nicht aber, ob Stile fUr das j eweilige Medium korrekt angewendet werden .
Bis zum letzten Tag: Beispiele
Stile fUr @media print Stile fur den Druck lassen sich global im style-Element des Dokuments vereinbaren:
o <sty l e > • @med ia screen • { p {font -family : Ve r da na , sans-ser if ; font : l 4px /l5 0%; co lor : darKgray } } • @med 'a p r in { p { font : l 4px /1 30 % Georg ia ; color :black ; margin : Opx Opx; ext-align : j us t i fy ; } hr { page-break-after : always ; } hr :before { content : "Ende Kapite l " counter{kapitel) " ". counter-increment : kapitel ; }} • @media screen ,print • { hl {co l or : darkgray ; font : 15px /20 0% Helvetica ; marg in-bottom : 3em; }} • @page { size : 14cm 14cm; marks : crops ; orphans : 4 ; widows : 4 ; } • @page:first { margin : Gem 4cm lcm lcm • @page:left { margin : lcm lcm lcm 4cm } • @page:right { margin : lcm 4cm lcm lcm o
Sie kbnnen aber auch innerhalb einer Stylesheetdatei notiert werden. Unter den moderne n Browsern erkennen Internet Explorer ab Version 5, Mozilla 1. Netscape 6 und Opera die @media-Regel korrekt und zetgen das Dokument in differenzierten Stilen , Nur Internet Explorer 5+ auf dem Mac erkennt die @page-Regel nlcht, sondern kann erst dann spezielle Stile fur den Druck anwenden, wenn die Stylesheets Ober
218
6.6 Beispiel 6: Wie gedruckt - das Stylesheet fUr den Drucker
aklt • • • • ,.
- 1_ . f • • t ••t
I
....
"0_'••••
• • ,UI I "';
l_ _ •_ _. --. I I (i.iiJ ~
A
...-
---. . .,. ---..,0_
_
'¥__ .............. _....
DlQUIeFotol,1rn
-
~ttl""""'No
",.....'-"~n'tNI:... ~
r.oe~~,.
~ ~ .-
U'r«-C. ~saz
'1I'llJo~ ~
.............~ I
--
l
Ivmt Arti1..c1 und Wortshopi
!'>ge2
I San von Dokumcntm. scim C5 nun Zeiud>riften.~ 00.::.. A)"" . .... ~
C--.tlf... ~"tl r . d l t _ . G......
Te . ~nppmgrammc~nd fUr den
~_
Pqel
1..."A
w.. C<>pyrichl C 2002 m
O fTene Sm1lnare Bildatthi ...'C Cdor ManagementDiJilalc Foco,:rZiePhotoshop ~os l'lop E.~ pc ns ......)00 1 und Sau Webde$i, n OnUnr--WorUhops BildluJbeihUll 8 ilddateflbM en Digitale Fo4~l(" Druclm Wcbdrsi,:n RaJlmeonDurchlUhnm, Fi rTnC'n ~ mi nate AGO!
Nurnmphnrimmsrr
Semlnare
._......,
==,.-_. ...
ODd
Workshops
Ted'",
l~II.1l
1--=
w..
~
BiJd_Uuy mil Adobo rholoshop
:---..:::.':j
Rr il'lW'11trmmr BcruI'sJNPPC"l1 dtdt die digillJe Bikjbeatbeitun, mil Programmen w )t Adobe f'hotos.hoplU den BPisferti,kciten. Oazu,eh6rm FoIoJ:mfrn in foto5rudio& C'beMo wie MiW'bdlCt\"On Pres.$t:SIt'Jlcn uncj Versic:hetungen.
.....
o.. " ," ~
".......
Color Menaganml Demitder Druckhil t. was del' Bikbchinn\'C:f'IPkht. m&,s.m nichtnor aile 0nI1C blibrint Wl:nIm. f1fizimlC' Arbritsabllufc C'l1ordcm c1ntides Vcntindni. da Techniken.
DIgItate EpJognfJc
_It
Sic ~ tine sd'Incllne Produklion. \'C1einfldlendie AblJiut'c im Focstldi o und lid... heutc die Jldd>
I
http-J/I27 .0.0.I I.._
Das gle lche Dokument, zwel Ausgaben: Unterschled/lche Schrlften, em anderer Satzsplegel, bes tlmmte Elemente werden fOr die Druckausgabe unte rotuo«. Stand der Technlk: Ju/l 2002.
AIrunzIldiee Bdde1uno! !'rin.. ocII1Irt die Ictzle SlUnde und IUrebcmo viele Bildet bcl!MI cine S)'t1Cmllisc:hc NulZun, des ~ F\Jknliall . Mil den BildafassunpJ'Cflkn der neusccn Ocnen:tionlaucn Iich Hilder unciPrinu cffirieal diJi isieml und mil Sdtwvc fUr Bilddatcnl:enkcn in an Archiv
,
oeuen.
I""out + San
hlrp:lll27 .O'O'I /-uhoeuIml.....lIprinllclndmK:luh<ml
21:27:56 21107;02
219
Kapitel 6
Bis zum letzten Tag: Beispiele
Kleine Unterschiede Hintergrundfarben und -bllder st6ren auf Druckseiten fast immer. Also werden sie ausgesc haltet:
• body {background : none ; } Schrifte n fur den Druck sollt en in Punktgr6f,en angegeben werden:
• =main p
font : 9pt /130% Georgia , Times , Seri: ; color : black ; margin : lOp IOpt ;
Texte werden schwarz gedruckt. Eine Ausnahme bilden Hyperlinks : Damit auf dem Papier besser nachvollzogen werden kann, dass sich hinter einem Begriff ein Link verbirgt, wird er blau und unterstrichen gedruckt.
• #main hI , h2 , h3 , h4 , h5 , h6 { color : black ; } • a { color : blue ; text-decoration : underline ; } Die Navigationsleisten und das Suchfeld werden bei der Druckausgabe unterdrOckt:
• #nav-rechts { display : none ; • #tippbox { display : none ; } • #nav-oben { display : none ; } Seitenumbr Oche innerhalb von Absatzen wOrde der Stil
• . a bs a t z { page-break-inside : avo i.d : } verbergen, aber zurzeit wird diese Eigenschaft leider von keinem Mainstream-Browser unte rstOtzt.
220
Gib dem Tag 'nen Stil Kapitel 7
HTML is a Box in a Box
HTML ist die wahrscheinlich kleinste Programmiersprache der Welt. Nicht einmal eln HP-Taschenrechner der ersten Generation hatte einen 50 kleinen Befehlssatz. Gerade in Hinsicht auf die Formatierung der Inhalte durch Stylesheets lohnt es skh, die Konstrukte von HTML genauer unter die Lupe zu nehmen, denn sie sind die Trager der visuellen Gestaltung .
U. Häßler, Cascading Stylesheets © Springer-Verlag Berlin Heidelberg 2003
Kapitel 7
7.1 Catch the Spirit ... HTML und Stylesheets sind ein Paar. Wenn die Struktur von HTML stimmt, herrschen optimale Bedingungen fUr Cascading Stylesheets. Ein paar der folgenden Betrachtungen rnogen esoterisch anmuten, aber sie sind grundlegend fur das Verstandnls der komplexeren Eigenschaften von Stylesheets.
HTML is a Box in a Box
Die wahrscheinlich kleinste Programmiersprache der Welt
Das »Markup« im Namen HyperText Markup Language verrat die Natur von HTML: HTML besteht aus Markierungen, die »Tags« genannt werden . So wle im traditionellen satz der Redakteur dem Setzer durch Marken am Rande des Papiers Oberschriften, Teaser und Absatze markie rte, markiert HTML Inhalte fur den »User Agent« - den Browser - als Oberschriften , Leads und Absatze.
Tags, Attribute, Eigenschaften und Elemente Eln Tag ist eine Anweisung in HTML, die in spitzen Klammern notlert wird. Eine Reihe von Tags schllefst Inhalte ein und endet dann mit einem »Ende-Tag«: fur eine Tabelle, -ch1> fur eine Oberschrift. Andere Tags brauchen kein Ende-Tag (z .B. «hr » . die Linie, oder
, der Zeilenumbruch) . Attribute sind Eigenschaften eines Tags, die in den spitzen Klam-
mern des Tags notiert werden und die Darstellung des Inhalts verandern kbnnen , wie z.B. das noshade-Attribut der Linie (xhr noshade» , oder Aktionen steuern wie die Attribute von Formularelementen oder das target-Attribut des Hyperlinks. Einige Attribute wiederum kbnnen verschiedene Werte annehmen . Der beruhrnteste Vertreter ist sicherlich . Wenig bekannt lst. dass Attribute in HTML-Tags auch Erelgnlsse wle etnen Mauskllck abfangen kbnnen : onmouseover»
"this . bgColor=red " onmouseout = "t h i s . bgcolor=green ". Container enthalten Inhalte, die im Viewport - also in der Regel im
Browserfenster - dargestellt werden. So ist z.B. das
222
7.1 Die wahrscheinlich kleinste Programmiersprache der Welt
AaBbCcDdEeFghhi
Auch Textzeilen sind Boxen . FOrjede Textzeile wird eine Inlinebox erzeugt, die sich Ober die volle Breite des Elements erstreckt, in dem die Textzeile snzt. Ihre H6he entspricht der ZeilenhOhe, die in HTML vom Designer nicht beeinflusst werden kann, sondern nur mit der Eigenschaft 1ine-height aus dem Stylesheet. Jeae folgende Zeile schliegt exakt an die vorang egang ene Box an.
...
"""'"-"""""",...-......,<'If>~--
HTML-Element ist die Bezeichnung fur eln HTML-Tag mitsamt seinen in spitzen Klammern eingeschlossenen Attributen und Werten :
o
ode r
o
Hier steht der Inhalt der Tabellenzelle
<7p>
Vorbelegt Aile Attribute aller HTML-Tags sind vorbelegt - spatestens der Browser muss schlie&lich elne Entscheidung treffen , wie ein Inhalt dargestellt wird. So gibt es eine 5tandardschrift fur Text , der in einem
gesetzt tst. und auch die Farbe fur Text ist vordefiniert. Es gibt eine 5tandardeinstellung fur die Zeilenhbhe und den Abstand zwischen zwei Absatzen . Vordefiniert sind 5ch riftart und -grosen fur Oberschriften . HTML-Attribute stehen nicht frei im Raum.
Die wahrscheinlich kleinste Programmiersprache der Welt HTML ist eine kleine 5kriptsprache : Es gibt nur wenige Anweisungen sprich »Iags«. Es gibt auch nur sehr wenige Attribute. Ein HTML-Dokument besteht aus linear aneinander gereihten Tags, mit denen der Designer die Inhalte elner 5e ite von oben nach unten aufbaut. So werden sie auch vom Browser »gerendert«: In der Reihenfolge, in der die Inhalte in den Tags nach dem -Tag im Dokument gelistet erscheinen . Der Browser arbeitet eine Anweisung nach der anderen ab und stellt die Inhalte im Fenster dar. Weiterhin ist HTML striktes 5chachteldenken . HTML-Elemente bilden
Das also ist HTML? Die Vorstellung von Programmierern, wie Text durch eine Telefonleitung gejagt und auf werweigwasfOreinenBildschirm auszugeben ist? Was fOr den einen etne Einschrankung bedeutet, ist fOr den anderen die ganz Welt. Das World Wide Web auf unseren Computermonitoren ist nicht das Internet: Palmtops , Handys und Fernseher, Braillezeilen, Sprachausgabe und nicht zuletzt Drucker warten auf adaquate Inhalte und all das soli unter einen Hut gebracht werden .
5chachteln oder viereckige Blbcke , die - ohne den Einsatz von 5tylesheets - hintereinander aufgereiht werden . Jede 5chachtel ist 50 breit wie der Block, in dem sre sitzt.
223
Kapitel 7
HTML is a Box in a Box
Blockelemente und Inlineelemente Das ausgepragte Zeilendenken kennen wir auch in Word: Textverarbeitungsprogramme gehOren zu den altesten Anwendungen auf dem Computer und die heutigen Textverarbeitungsprogramme haben ihre Wurzeln noch in den ersten zeilenorientierten Texteditoren , in denen Programme geschrieben wumet:
Der grote umspannende Block ist '" , das Tag, das ein HTML-Dokument identifiziert 1m -Block liegen weitere Boxen: elne -cbodvs-Box, in der mehrere -cpo-Boxen. -Boxen oder