<?xml version="1.0" encoding="ISO-8859-1"?>


<?xml-stylesheet type="text/xsl" href="../xsl/kapitel-html.xsl"?>

<kurs nummer="1">
<titel>Webseiten Quick'n easy</titel>
<ref back="kap4.xml" next="kap6.xml" home="index.xml" main=""/>


<kapitel nummer="5">
  <titel>Mehr CSS - Farbe, Layout</titel>

  <absatz>
    <bild src="screenshot2.1.jpg" alt="" align="left"
    width="80" height=""/>
    <text>
      Moderne Webseiten wollen Farben, am liebsten jede Woche eine
      andere. Dazu kommt eine sich immer weiter durchsetzende Idee,
      Funktion und Darstellung voneinander zu trennen. HTML beschreibt
      also die Funktion einiger Passagen des Dokumentes und CSS das
      Layout.
    </text>
    <text>
      Im Folgenden werden wir eine Reihe nützlicher Hilfsmittel aus dem
      Bereich des CSS einführen. Mit ihnen kann man viele gängige
      Layoutwünsche problemlos erfüllen.
    </text>
    <text>
      Um unserer Grundidee: 'Funktion - im Fall von HTML eher Struktur -
      und Layout zu trennen' auch wirklich möglichst nahe zu kommen,
      werden wir in diesem Kapitel sehen, wie man Stylesheets
      auslagert und ein Stylesheet für mehrere HTML-Seiten verwenden
      kann. Und das ganze ohne jedes Mal alle Styleangaben abzutippen
      oder bei Änderungen jede Webseite einzeln anfassen zu müssen.
      Damit kann man dann mit wenigen Handgriffen jeder Seite ein
      ähnliches Aussehen verleihen und somit optisch eine
      gewisse Zusammenghörigkeit der Webseiten anzeigen.
    </text>
  </absatz>

  <unterkapitel nummer="1">
    <titel>Der Trick mit den 16 Milionen Farben</titel>

    <absatz>
    <bild src="farbtafel.gif" alt="" align="left" width="200" height=""/>
    <text>
      Bisher haben wir fast ausschließlich mit den 17 offiziellen 
      Namen als Farben gearbeitet: red, green, blue, black...
    </text>
    <text>
      Damit kommen wir natürlich nicht sehr weit. Deswegen gibt es
      einen anderen Weg Farben anzugeben. Diesen haben wir an ganz
      wenigen Stellen bisher auch schon genutzt.
    </text>
    <text>
      Das Geheimnis heisst: wir geben pro Farbe 3 Farbanteile an:
      Rot, Grün und Blau. Ein paar Beispiele sieht man auf unserer
      Farbtafel, hier wurde die andere Schreibweise schon mit
      aufgelistet.
    </text>
    <text>
      Dann erweitern wir unsere Möglichkeiten, indem wir eine
      hexadezimale Schreibweise verwenden. Dabei zählt man von 0 bis 9
      und macht mit a bis f weiter. Das sieht dann etwa so aus:
    </text>
    <code>
    <codesrc>
 0   10   20   ...   90   a0   b0   ...   f0
 1   11   21   ...   91   a1   b1   ...   f1
 2   12   22   ...   92   a2   b2   ...   f2
 .    .    .    .     .    .    .    .     .
 .    .    .    .     .    .    .    .     .
 .    .    .    .     .    .    .    .     .
 9   19   21   ...   99   a9   b9   ...   f9
 a   1a   2a   ...   9a   aa   ba   ...   fa
 b   1b   2b   ...   9b   ab   bb   ...   fb
 .    .    .    .     .    .    .    .     .
 .    .    .    .     .    .    .    .     .
 .    .    .    .     .    .    .    .     .
 f   1f   2f   ...   9f   af   bf   ...   ff
    </codesrc>
    </code>
    </absatz>

    <absatz>
      <text>
        Und wie macht man jetzt daraus Farben? 
      </text>
      <text>
        Man packt immer 3 dieser Zahlen zusammen. Eine für rot, eine für
	grün und eine für blau. Dabei gelten Regeln wie beim Licht
	(schliesslich arbeitet unser Computerbildschirm mit Licht): 
      </text>
      <text>
	00 heisst so viel wie: von dieser Farbe wollen wir gar nichts sehen.
      </text>
      <text>
        ff bedeutet: gib mir alles, was drin ist.
      </text>
      <text>
        #000000 - so sieht das ganze als komplette Farbe aus - ist ein
	scharz. Den # (gesprochen: hash oder Doppelkreuz) verwenden wir
	um unserem Webbrowser zu sagen, dass wir eine Farbangabe in
	hexadezimaler Schreibweise angeben, 00 - Null Anteile rotes
	Licht, 00 - Null Anteile grünes Licht und 00 - Null Anteile
	blaues Licht. das macht soviel wie garkein Licht, also schwarz.
      </text>
      <text>
        das Gegenstück hierzu ist weiss: #ffffff.
      </text>
      <text>
        Alles weitere betrachten wir uns jetzt anhand einiger Beispiele:
      </text>
    </absatz>

    <beispiel>
       <titel>Anwendung der hexadezimalen Angabe</titel>
       <absatz>
       <text>
         Wir verwenden eine einfache Webseite mit ein wenig CSS. In
	 diesem CSS geben wir unsere Farbwerte in hexadezimaler
	 Schreibweise an. Als Beispiel setzen wie unsere Überschrift
	 &lt;h2> in der Farbe Rot: #ff0000
       </text>
       <text>
         Volle Anteile rotes Licht (ff), kein blaues (00)  und kein
	 grünes (00) Licht.
       </text>

       <code>
         <bild src="screenshot5.1.jpg" alt="" align="right" width="300"/>
	 <file src="5.1.html" text="BeispielCode" />
       <codesrc>
&lt;html>
  &lt;head>
    &lt;title>Farbtest&lt;/title>
    &lt;style>
      
      h2 { color: #ff0000; }
      
    &lt;/style>
  &lt;/head>

  &lt;body>
    &lt;h2>Hier eine Überschrift&lt;/h2>
    und ganz normaler Text.
  &lt;/body>
&lt;/html>
       </codesrc>
       </code>
       </absatz>

       <absatz>
         <text>
	   Man schreibt die Farbe also an genau die gleiche Stelle wie
	   bisher.
         </text>
       </absatz>
      
    </beispiel>

    <beispiel>
       <titel>Auffinden der richtigen Farbzahlen</titel>
       <absatz>
         <text>
	   Und wie bekommt man jetzt diese Zahlen für Farben?
         </text>
         <text>
	   Mit etwas Übung geht das einfach mit abschätzen und
	   ausprobieren.
         </text>
       </absatz>

       <absatz>
          <bild src="gimplogo.jpg" alt="" align="left" width="80"
	  height="60"/>
         <text>
	   Zu Anfang, oder auch um eine bestimmte Farbe exakt zu
	   treffen, hilft einem sehr oft ein Bildbearbeitungsprogramm.
         </text>
         <text>
	   Wir wählen zum Vorführen das freie
	   Bildbearbeitungsprogramm Gimp (http://www.gimp.org/).
         </text>
         <text>
         </text>
       </absatz>

       <absatz>
         <bild src="screenshot5.2a.jpg" alt="" align="left" width="300"/>
         <text>
	   Hier wird einem bei der Auswahl der Farben immer auch die
	   hexadezimale Schreibweise mit angezeigt.
         </text>

         <text>
	   Weiterhin gibt es Tabellen mit den 256 Standardfarben, sowie
	   entsprechende Erweiterungen. Diese bestehen unterm Strich
	   gesehen aus Kombinationen von 00, 33, 66, 99, cc und FF.
         </text>
	 <text>
	   Ich persönlich bevorzuge die Variante
	   Bildbearbeitungsprogramm, da meist irgendwo eines offen
	   ist.
	 </text>
	 <text>
	   Noch ein Wort zur Groß- und Kleinschreibung: Es ist egal, ob
	   man nun #aabbcc oder #AABBCC oder #AaBbCc schreibt oder
	   sonst eine Variante, es kommt immer das gleiche hellblau
	   dabei heraus.
	 </text>
       </absatz>
    </beispiel>


  </unterkapitel>


  <unterkapitel nummer="2">
    <titel>Abstände kontrollieren (Box Modell)</titel>

    <absatz>
    <bild src="screenshot5.3.jpg" alt="" align="left" width="300" height=""/>
    <text>
      CSS betrachtet praktisch alle, mit Tags bezeichnete Textteile als
      Boxen. Für diese gibt es ein Box-Layout bestehend aus: Padding,
      einem Rand und Margin. Alle drei hübsch säuberlich trennbar nach
      oben (top), unten (bottom), links (left) und rechts (right).
    </text>
    <text>
      Wir beginnen mit padding und margin, weil die beiden sich in der
      Handhabung am ähnlichsten sind:
    </text>
    </absatz>

    <absatz>
    <text>
      Bei beiden kann man lediglich sagen wie groß der Abstand sein
      soll. Dafür hat man verschiedene Einheiten zur Verfügung:
    </text>
    <text>
      Vom klassichen HTML her ist die Verwendung px (Pixel) am
      Vertrautesten, aber auch pt und em sind nicht unüblich. Letztere
      haben die nette Eigenschaft abhängig von der sonstigen Größe
      ringsherum zu sein. 1em kann also mal 10 px sein oder auch 20, je
      nach dem.
    </text>
    <text>
      Wir haben jeweils zwei Möglichkeiten Padding und Margin anzugeben:
      entweder einzeln, oder als Gemeinschaft: padding, margin (als
      Gemeinschaft. 
      padding-left, padding-top, padding-right, padding-buttom und
      margin-left, margin-top, margin-right, margin-buttom, wenn man
      jede Seite einseln angeben möchte.
    </text>
    <text>
      Zur Verdeutlichung hier ein paar Beispiele:
    </text>
    </absatz>



    <beispiel>
      <titel>padding und margin</titel>
    <absatz>
    <text>
      Man sieht deutlich den Unterschied: Padding ist im Inneren zum
      (unsichtbaren) Border und somit von der Hintergrundfarbe mit
      erfaßt (rot),
      während margin sich im
      äußeren Bereich befindet und nicht von der Hintergrundfarbe
      betroffen ist (grün).
    </text>
    <code>
         <bild src="screenshot5.4.jpg" alt="" align="right" width="300"/>
	 <file src="5.2.html" text="BeispielCode" />
    <codesrc>
&lt;html>
  &lt;head>
    &lt;title>Padding und Margin&lt;/title>
    &lt;style>
      
      h2.padding 
      { 
          background-color: #ff0000; 
	  padding: 20px;
      }
      
      h2.margin
      { 
          background-color: #00ff00; 
	  margin: 20px;
      }
      
    &lt;/style>
  &lt;/head>

  &lt;body>
    &lt;h2 class="padding">Überschrift mit Padding&lt;/h2>
    &lt;h2 class="margin">Überschrift mit Margin&lt;/h2>
  &lt;/body>
&lt;/html>
    </codesrc>
    </code>
    </absatz>
    </beispiel>

    <beispiel>
      <titel>Das variable em</titel>
    <absatz>
    <text>
      es läßt sich nicht leugnen: der grüne Bereich hat eine größere
      Schrift und einen größeren Rand, obwohl, wenn man im CSS
      nachsieht, die Angabe für padding identisch bei 2.0 em steht. (Bei
      der Verwendung von em darf man mit Kommawerten arbeiten) 1.0em ist
      also etwas in der Art einer aktuellen Zeichengröße.
    </text>
    <code>
         <bild src="screenshot5.5.jpg" alt="" align="right" width="300"/>
	 <file src="5.3.html" text="BeispielCode" />
    <codesrc>
&lt;html>
  &lt;head>
    &lt;title>Variables em&lt;/title>
    &lt;style>
      
      h2.klein
      { 
          background-color: #ff0000; 
	  font-size: 10px;
	  padding: 2.0em;
      }
      
      h2.gross
      { 
          background-color: #00ff00; 
	  font-size: 20px;
	  padding: 2.0em;
      }
      
    &lt;/style>
  &lt;/head>

  &lt;body>
    &lt;h2 class="klein">Überschrift mit Padding&lt;/h2>
    &lt;h2 class="gross">Überschrift mit Margin&lt;/h2>
  &lt;/body>
&lt;/html>
    </codesrc>
    </code>
    </absatz>
    <absatz>
    <text>
      Zusammenfassend:
      Wenn man also px verwendet, ist die Angabe eindeutig, verwendt man
      em, richtet sie sich nach der gerade aktuellen Fontgröße. em darf
      man in Dezimalschreibweise verwenden. Dabei ist der Dezimaltrenner
      ein Punkt - kein Komma wie im Deutschen üblich. die Angabe px (Pixel)
      gibt es nur in ganzen Pixeln. Auch muß man die verwendete Einheit
      immer mit angeben.
    </text>
    </absatz>
    </beispiel>


    <beispiel ausgabe_in="handout">
      <titel>Padding und Margin in alle vier Richtungen</titel>
    <absatz>
    <text>
      Damit man die Begrenzung besser sieht, haben wir einen einfachen
      border angezeigt, so, wie er bereits in früheren Kapiteln
      verwendet wurde.
    </text>
    <text>
      Da die Box eines Absatzes immer bis zum rechten Rand geht - so wie 
      die meisten uns bisher bekannten Tags, haben wir auf die Variante
      rechter Rad verzichtet.
    </text>
    <code>
         <bild src="screenshot5.6.jpg" alt="" align="right" width="350"/>
	 <file src="5.4.html" text="BeispielCode" />
    <codesrc>
&lt;html>
  &lt;head>
    &lt;title>Padding in alle Richtungen&lt;/title>
    &lt;style>
      
      .links
      { 
          background-color: #ffaaaa; 
	  padding-left: 30px;
	  border: 1px solid black;
      }

      .oben
      { 
          background-color: #aaffaa; 
	  padding-top: 30px;
	  border: 1px solid black;
      }

      .unten
      { 
          background-color: #ffffaa; 
	  padding-bottom: 30px;
	  border: 1px solid black;
      }
      
    &lt;/style>
  &lt;/head>

  &lt;body>
    &lt;p class="oben">ein Absatz mit oben einem besonders breiten Rand.&lt;/p>
    &lt;p class="unten">ein Absatz mit unten einem besonders breiten Rand.&lt;/p>
    &lt;p class="links">ein Absatz mit links einem besonders breiten Rand.&lt;/p>
  &lt;/body>
&lt;/html>
    </codesrc>
    </code>
    </absatz>

    <absatz>
    <text>
      Und jetzt das Gleiche zur Demonstration mit margin, statt padding.
    </text>
    <text>
      Hier macht margin-right durchaus einen optischen Unterschied, den
      ich niemandem vorenthalten möchte.
    </text>
    <code>
         <bild src="screenshot5.7.jpg" alt="" align="right" width="300"/>
	 <file src="5.5.html" text="BeispielCode" />
    <codesrc>
&lt;html>
  &lt;head>
    &lt;title>Margin in alle Richtungen&lt;/title>
    &lt;style>
      
      .links
      { 
          background-color: #ffaaaa; 
	  margin-left: 30px;
	  border: 1px solid black;
      }

      .rechts
      { 
          background-color: #aaaaff; 
	  margin-right: 30px;
	  border: 1px solid black;
      }

      .oben
      { 
          background-color: #aaffaa; 
	  margin-top: 30px;
	  border: 1px solid black;
      }

      .unten
      { 
          background-color: #ffffaa; 
	  margin-bottom: 30px;
	  border: 1px solid black;
      }
      
    &lt;/style>
  &lt;/head>

  &lt;body>
    &lt;p class="oben">ein Absatz mit oben einem besonders breiten Rand.&lt;/p>
    &lt;p class="unten">ein Absatz mit unten einem besonders breiten Rand.&lt;/p>
    &lt;p class="links">ein Absatz mit links einem besonders breiten Rand.&lt;/p>
    &lt;p class="rechts">ein Absatz mit rechts einem besonders breiten Rand.&lt;/p>
  &lt;/body>
&lt;/html>
    </codesrc>
    </code>
    </absatz>

    </beispiel>

  </unterkapitel>

  <unterkapitel nummer="3">
    <titel>Der Rand - border</titel>

    <absatz>
    <text>
      Wir haben bereits an einigen Stellen border-Angaben im CSS
      verwendet. Meist in der Form: border: 1px solid black;
    </text>
    <text>
      Dies Bedeutet: 1px breit soll er sein, durchgezogen (solid) und in
      schwarz (black). Wir haben also drei Angaben in eine Zeile
      gepackt. Bei der Border-Angabe ist das ganz hilfreich.
    </text>
    <text>
      Die Breitenangabe funktioniert genauso wie beim Padding oder
      Margin. Man findet sie in Pixeln (px), Points (pt) und
      Größeneinheit relativ zur aktuellen Fontgröße: em, dann teilweise 
      mit Kommaschreibweise. Bitte kein Leerzeichen zwischen der Zahl
      und der Angabe px/pt/em machen!
    </text>
    <text>
      Statt solid sind noch folgende andere Varianten interessant:
      dotted, double, groove, inset. Es gibt eine Reihe weiterer
      Möglichkeiten, für den kleinen Einsteigerkurs hier sollten diese
      aber erst einmal reichen.
    </text>
    </absatz>
    
    <beispiel>
      <titel>Border</titel>
      <absatz>
      <text>
        Als Beispiel hier die verschiedenen genannten Ränder:
      </text>
    <code>
         <bild src="screenshot5.10.jpg" alt="" align="right" width="300"/>
	 <file src="5.8.html" text="BeispielCode" />
    <codesrc>
&lt;html>&lt;head>&lt;title>Border&lt;/title>

&lt;style>
   .punkte { border: 2px dotted #cc0000; }
   .doppelt { border: 5px double #00cc00; }
   .plastisch { border: 8px groove #0000cc; }
   .buttonstyle { border: 8px inset #00cccc; }
&lt;/style>

&lt;/head>&lt;body>

&lt;p class="punkte">Absatz mit Rand: dotted&lt;/p>
&lt;p class="doppelt">Absatz mit Rand: double&lt;/p>
&lt;p class="plastisch">Absatz mit Rand: groove&lt;/p>
&lt;p class="buttonstyle">Absatz mit Rand: inset&lt;/p>
&lt;/body> &lt;/html>
    </codesrc>
    </code>
    </absatz>

    </beispiel>
  </unterkapitel>

  <unterkapitel nummer="4">
    <titel>Text bändigen</titel>

    <absatz>
    <text>
      Was kann man mit nacktem Text schon noch groß machen wollen? Font und
      Größe bestimmen - und sonst? Vielleicht noch die Farbe.
    </text>
    <text>
      Wie wäre
      es mit rechtsbündigem Text? Oder in Tabellen am oberen oder
      unteren Rand der Zelle angelehntem Text?
    </text>
    <text>
      Wir gehen alle Punkte der Reihe nach durch: Font, Fontgröße, Farbe
      und dann das hinsortieren in unserer Box (auch Tabellenzellen sind
      nichts anderes als Boxen).
    </text>
    </absatz>

    <absatz>
    <bild src="screenshot5.12.jpg" alt="" align="left" width="300" height=""/>
    <text>
      Beginnen wir mit der Auswahl unseres Fonts. Hier gilt: Der Font
      muß auf dem jeweils anzeigenden Rechner installiert sein. Nicht
      jeder macht sich die Mühe alle irgendwo erhältlichen Fonds zu
      installieren - oder will das auch. Deswegen gibt es die
      Möglichkeites Ersatzfonts gleich mit anzugeben.
    </text>
    <text>
      Wir fangen ausnahmsweise hinten an. Es gibt sogenannte generische
      Fonts. Diese sind nicht ganz genau bestimmt, sondern nur eine
      grobe Richtung, in die der Wunschfont gehen soll. Welchen Font das
      Zielsystem am Ende tatsächlich verwendet kann unterschiedlich
      sein.
    </text>
    <text>
      CSS kennt 5 generische Fonts: serif, sans serif, monospace,
      coursive, fantasy.
    </text>
    <text>
      Serif - die Buchstaben haben eine dem Zeichen angepasste Breite:
      ein 'i' ist schmaler als ein 'm'. Die Buchstaben haben sogenannte
      Serifen, das sind kleine Schwünge und Häkchen, die die Lage des
      Buchstabens in den Zeilen verdeutlicht. Manchen Menschen sind
      diese Serifen schlicht zu kitschig. Ein klassischer Vertreter der
      Serifen Fonts ist Times.
      
    </text>
    <text>
      Sans serif - die Buchstaben sind wie Serif, nur ohne die kleinen
      Schnörkel. Viele Menschen empfinden diese Schriftzeichen als
      übersichtlicher und besser lesbar. Klassische Vertreter sind
      Helvetica, auf Windows-Systemen Arial.
    </text>
    <text>
      Monospace - klassische Schreibmaschinenschriften. Die Buchstaben
      sind alle gleich breit. Ansonsten gibt es keine Einschränkungen.
      Klassischster Vertreter ist Courier.
    </text>
    <text>
      Coursive - in diese Kategorie fallen alle Schriften, die
      Handschriften ähneln. Meist sind sie geschwungen. Vertreter hier
      sind Comic Sans und Lucida.
    </text>
    <text>
      Fantasy - alle Fonts, die sich nicht in einer der oberen
      Kategorien einordnen lassen, fallen in diese Kategorie.
    </text>
    <text>
      Zur Angabe der Schrift gibt es im CSS die Angabe font-family: Hier
      gibt man der Reihe nach an, welche Schriftfonds man verwenden
      will. Zuert den bevorzugten, dann vielleicht einen Ersatz und am
      Ende sollte man immer einen generischen Font angeben. Diese
      Angaben trennt man durch Komma.
    </text>
    <text>
      Als Beispiel geben wir den Font für das Tag h1 an.
      Bevorzugt wird Helvetica, wenn es die nicht gibt, nehmen wir auch
      Arial und wenn da auch nichts da ist, soll sich das System selbst
      einen Serifenlosen Font (sans-serif) wählen.
    </text>
    <code>
         <bild src="screenshot5.8.jpg" alt="" align="right" width="300"/>
	 <file src="5.6.html" text="BeispielCode" />
    <codesrc>
&lt;html> &lt;head> &lt;title>Font-TEST&lt;/title>

&lt;style>
    h1 { font-family: Helvetica, Arial, sans-serif ; }
&lt;/style>

&lt;/head> &lt;body>

&lt;h1>Hier kommt ein Test-Text im erwählten Font.&lt;/h1>

&lt;/body> &lt;/html>
    </codesrc>
    </code>
    </absatz>

    <absatz>
    <text>
      Wie findet man jetzt heraus, welche Fonts verfügbar sind?
    </text>
    <text>
      Der direkte Weg: in einem Textverarbeitungsprogramm nachsehen,
      welche Fonts angeboten werden.
    </text>
    <text>
      Ansonsten: eine Reihe Fonts sind auf fast allen Systemen
      vorhanden. Am häufigsten verwendet werden Helvetica, bzw. Arial
      (als generic Font: sans-serif). Als Standardfont wählen viele
      Webbrowser eine Variante von Times (generic Font: serif) und um
      feste Textbreite zu haben, wird Courier verwendet (generic Font:
      monospace). Diese Fonts sind auf praktisch allen modernen
      Systemen vorhanden. Danach erschöpfen sich die Sicherheiten aber
      leider auch schon. Das bedeutet: alle weiteren Angaben sind ein
      wenig Glückssache.
    </text>
    </absatz>

    <absatz>
    <text>
      Jetzt sind wir reif für eine Dreiergruppe
      Änderungsmöglichkeiten bei Fonts: font-style,
      font-weight und font-size.
    </text>
    <text>
      font-style wird verwendet, wenn man einen Font kursiv (also in
      Schrägschrift) angeben will: font-style: italic.
    </text>
    <text>
      font-weight verwendet man um anzugeben, daß man jetzt eine
      Fettschrift wünscht: font-weight: bold
    </text>
    <text>
      Und mit font-size gibt man die Größe des Schriftfonts an. Hier
      gelten die gleichen Regeln wie beim border. Angaben in px, pt und
      em sind üblich.
    </text>
    <text>
      Alle diese Angaben kann man ungeniert auf einmal im CSS angeben,
      sie müssen lediglich durch Semikolon (;) voneinander getrennt
      werden.
    </text>
    <text>
      Ein Beispiel für einen Helvetica Font (ersatzweise Arial oder
      sans-serif), in 15 px Größe und in Fettschrift:
    </text>
    <code>
         <bild src="screenshot5.9.jpg" alt="" align="right" width="300"/>
	 <file src="5.7.html" text="BeispielCode" />
    <codesrc>
&lt;html> &lt;head> &lt;title>Font-TEST&lt;/title>

&lt;style>
    p {
        font-family: Helvetica, Arial, sans-serif;
	font-size: 15px;
	font-weight: bold;
	font-style: italic;
    }
&lt;/style>

&lt;/head> &lt;body>

&lt;p>Ein Absatz in einer Serifenlosen Schrift, bevorzugt
Helvetica, mit 15 Pixeln, fett und in italic&lt;/p>

&lt;/body> &lt;/html>
    </codesrc>
    </code>
    </absatz>

    <absatz>
    <text>
      Zuletzt noch die Fontfarbe. Wir erwähnen sie hier nur noch der
      Ordnung halber, da sie im Prinzip bereits im ersten Teil dieses
      Kapitels verwendet wurde: color.
    </text>
    <text>
      Mit color: und dem Farbwert - entweder in Hexadezimaler
      Schreibweise mit dem # davor oder als Farbname, stellt man die
      verwendete Textfarbe ein.
    </text>
    <text>
      Wer genau hinsieht, wird das Tag span entdecken, hiermit kann man
      einzelne Buchstaben oder Buchstabengruppen umspannen um ihnen (wie
      hier) eine eigene Farbe zu geben.
    </text>
    <code>
         <bild src="screenshot5.11.jpg" alt="" align="right" width="300"/>
	 <file src="5.9.html" text="BeispielCode" />
    <codesrc>
&lt;html>&lt;head>&lt;title>Textfarben&lt;/title>

&lt;style>
    .rot { color: #cc0000; }
    .gruen { color: #00cc00; }
    .blau { color: #0000cc; }
&lt;/style>

&lt;/head>&lt;body>

So &lt;span class="rot">rot&lt;/span>
so &lt;span class="gruen">grün&lt;/span>
so &lt;span class="blau">blau&lt;/span>
...

&lt;/body> &lt;/html>
    </codesrc>
    </code>
    </absatz>

    <absatz>
    <text>
     Um unseren Text rechts, linksbündig oder zentriert anzuordnen,
     verwenden wir text-align. Hier stehen uns als Angaben zur
     Verfügung: left (linksbündig), right (rechtsbündig), center
     (zentriert), justify (an beiden Rändern möglichst gleich
     ausgerichtet)
    </text>
    <text>
      In Tabellen wird der ein oder andere seinen Inhalt bevorzugt am
      oberen oder unteren Rand der Zelle plazieren wollen. Dies
      geschieht mit vertical-align. Hier wählt man meist zwischen top
      (oben) und bottom (am unteren Rand ausrichten).
    </text>
    </absatz>

    <beispiel>
    <titel>Inhalt in Tabellenzellen anordnen</titel>
    <absatz>
    <text>
      Im folgenden Beispiel bekommt jede Tabellenzelle einen der
      möglichen Werte zugewiesen.
    </text>
    <code>
         <bild src="screenshot5.13.jpg" alt="" width="500"/>
	 <file src="5.10.html" text="BeispielCode" />
    <codesrc>
&lt;html>&lt;head>&lt;title>Textverteilung&lt;/title>

&lt;style>
        td { padding: 5px; }
    .unten { vertical-align: bottom; }
     .oben { vertical-align: top; }
   .rechts { text-align: right; }
    .links { text-align: left; }
.zentriert { text-align: center; }
&lt;/style>


&lt;/head>&lt;body>


&lt;table border="1">

&lt;tr>
  &lt;td class="oben">
      Dieser Text wird am&lt;br>oberen Rand der 
      Tabellenzelle&lt;br> ausgerichtet.
  &lt;/td>
  &lt;td class="unten">
      Dieser Text wird&lt;br> am unteren Rand der&lt;br>
      Tabellenzelle ausgerichtet.
  &lt;/td>
  &lt;td>
      Dazu eine volle&lt;br>Zelle zum&lt;br>Vergleichen,
      damit man auch&lt;br> etwas von den anderen&lt;br>
      beiden Zellen sieht.
  &lt;/td>
&lt;/tr>

&lt;tr>
  &lt;td class="links"> Ausrichtung:&lt;br>linksbündig&lt;/td>
  &lt;td class="rechts"> Ausrichtung:&lt;br>rechtsbündig&lt;/td>
  &lt;td class="zentriert">Ausrichtung:&lt;br>zentriert&lt;/td>
&lt;/tr>

&lt;/table>

&lt;/body> &lt;/html>
    </codesrc>
    </code>
    </absatz>
    </beispiel>

  </unterkapitel>

  <unterkapitel nummer="5">
    <titel>Externe Stylesheets verwenden</titel>

    <absatz>
    <text>
      Mit so einem Stylesheet hat man Einfluß auf die optische
      Erscheinung/Darstellung von HTML-Code. Meist will man diese
      Darstellung nicht nur auf einer Seite identisch haben, sondern auf
      allen seinen Seiten (oder zumindest den meisten).
    </text>
    <text>
      Man könnte jetzt in jede Datei oben Styles einlagern - immer die
      selben (es soll ja gleich aussehen). Anstrengend wird das aber,
      wenn man sich überlegt, das Aussehen zu ändern, z.B. alle Absätze
      hellblau zu hinterlegen statt einem tristen grau. Man müsste jetzt
      jedes einzelne File anfassen und den Style innen drin ändern.
    </text>
    <text>
      Das ist aufwändig und fehleranfällig. Deswegen gibt es die
      Möglichkeit in einem HTML-Dokument zu sagen: 'Ach ja, und Deine
      Style-Anweisungen holst Du Dir aus der Datei: meinstyle.css'.
    </text>
    <text>
      Dann holt sich der Webbrowser die angegebene Datei und tut so, als
      würde deren Inhalt in der Webseite stehen. In der Datei steht dann
      alles, was wir bisher zwischen &lt;style> und &lt;/style> im
      HTML-Dokument hatten. &lt;style> und &lt;/style> entfallen. 
    </text>
    <text>
      
      An die Stelle der &lt;style> und &lt;/style> tritt jtzt ein
      &lt;link href="meinstyle.css" rel="stylesheet"
      type="text/css">. Im href steht, wo der Webbrowser die
      Style-Angaben findet. Diese müssen für ihn erreichbar auf dem
      Bereich des Webservers liegen.
    </text>
    </absatz>

    <absatz>
    <text>bisher:</text>
    <code>
    <codesrc>
&lt;html>&lt;head>&lt;title>Test mit CSS&lt;/title>

&lt;style>
    body
    {
        background-color: #aaaaff;
    }
&lt;/style>

&lt;/head>
&lt;body>
...
    </codesrc>
    </code>
    </absatz>

    <absatz>
    <text>neu:</text>
    <code>
    <codesrc>
&lt;html>&lt;head>&lt;title>Test mit CSS&lt;/title>

&lt;link href="meinstyle.css" rel="stylesheet" type="text/css">

&lt;/head>
&lt;body>
    </codesrc>
    </code>
    </absatz>

    <absatz>
    <text>Der Inhalt von meinstyle.css:</text>
    <code>
    <codesrc>
body
{
    background-color: #aaaaff;
}
    </codesrc>
    </code>
    </absatz>

  </unterkapitel>

  <unterkapitel nummer="6">
    <titel>Hintergrundbilder</titel>

    <absatz>
    <text>
      Man kann praktisch alle Boxen mit einem Hintergrundbild
      hinterlegen. Der klassische Fall ist eine Textur im Hintergrund, die
      aus einem kleinen Bild besteht, welches in alle Richtungen immer
      wieder wiederholt wird. Bei der Erstellung des Bildes sollte man
      darauf achten, dass die Ränder auch gut aneinander passen. Einige
      Bildbearbeitungsprogramme bieten entsprechende Funktionen an, die
      ein gegebenes Bild entsprechend zuschneiden. (zB. im Gimp: Nahtlos
      machen)
    </text>
    <text>
      Hierzu benötigt man ein Bild im Format gif oder jpg oder png.
      Bitte Zurückhaltung bei der Verwendung animierter Bilder!
    </text>
    <text>
      Im CSS hinterlegen wir dann nur noch ein: background-image:
      bild.gif. Dabei ist an der Stelle von bild.gif eine normale
      Adresse erlaubt.
    </text>
    <code>
         <bild src="screenshot5.15.jpg" alt="" align="left" width="200" height=""/>
	 <file src="5.11.html" text="BeispielCode" />
    <codesrc>
    body { 
        background-image: url("/images/bg.jpg");
	background-color: #ccccff;
	color: #0000cc;
    }
    </codesrc>
    </code>
    </absatz>

    <!-- <beispiel ausgabe_in="handout"> -->
    <beispiel>
    <titel>Zentrales Hintergrundild</titel>
    <absatz>
    <text>Oft möchte man ein einzelnes kleines Bild im Hintergrund
    haben. Zum Beispiel bei einem Wasserzeichen, was jede Webseite im
    Hintergrund enthalten soll, oder welches auf allen Unterlagen
    enthalten ist, die zum Ausdruck durch den Kunden bestimmt sind.</text>
    <text>Hier stehen einem eine Reihe CSS-Funkionen zur Verfügung:</text>
    <text>background-position: </text>
    <text>Hier hat man jetzt mehrere Auswahlmöglichkeiten. Alle
    Kombinationen würden den Rahmen dieses Kurses spengen, deswegen
    beschränke ich mich auf einige wenige:
    </text>
    <text>top, left, right, center, bottom. Mit diesen Angaben kann man
    das Bild wahlweise an den rechten Rand, linken Rand, in der Mitte,
    oben und unten der Webseite platzieren.
    </text>
    <text>
    Dazu kommt background-repeat mit: repeat-x, repeat-y und no-repeat
    um das Hintergrundbild zu wiederholen - oder eben nicht. Gibt man
    nichts an, wird der Hintergrund mit dem jeweiligen Bild gekachelt wie
    im oberen Beispiel.
    </text>
    </absatz>
    <absatz>
    <code>
         <bild src="screenshot5.14.jpg" alt="" align="right" width="300"/>
	 <file src="5.11.html" text="ein Einzelbild in der Mitte" />
       <codesrc>
body {
    background-color: #ccccff;
    background-image: url("../images/bg.png");
    background-position: center;
    background-repeat: no-repeat;
    color: #0000cc;
}

       </codesrc>
    </code>
    <code>
         <bild src="screenshot5.16.jpg" alt="" align="right" width="300"/>
	 <file src="5.13.html" text="Bilderreihe am rechten Rand" />
       <codesrc>
body {
    background-color: #ccccff;
    background-image: url("../images/bg.png");
    background-position: right;
    background-repeat: repeat-y;
    color: #0000cc;
}
       </codesrc>
    </code>
    <code>
         <bild src="screenshot5.17.jpg" alt="" align="right" width="300"/>
	 <file src="5.14.html" text="Bilderreihe am Fußende" />
       <codesrc>
body {
    background-color: #ccccff;
    background-image: url("../images/bg.png");
    background-position: bottom;
    background-repeat: repeat-x;
    color: #0000cc;
}
       </codesrc>
    </code>
    </absatz>
    </beispiel>

    <!-- <beispiel ausgabe_in="handout"> -->
    <beispiel>
    <titel>
        Bonus-Material für alle, die mehr wollen:
        Hintergrundbild fixieren
    </titel>
    <absatz>
    <text>Ist die Seite größer als der Bildschirm, scrollt der
    Hintergrund mit. Das ist manchmal unerwünscht. Dewegen gibt es
    backgrond-attachment: fixed
    </text>
    <code>
	 <file src="5.15.html" text="Bilderreihe am Fußende fixiert" />
       <codesrc>
body {
    background-color: #ccccff;
    background-image: url("../images/bg.png");
    background-position: bottom;
    background-repeat: repeat-x;
    background-attachment: fixed;
    color: #0000cc;
}
       </codesrc>
    </code>

    </absatz>
    </beispiel>

  </unterkapitel>

  <unterkapitel nummer="7">
    <titel>:hover oder : es muss nicht immer gleich JavaScript sein</titel>

    <absatz>
    <bild src="screenshot5.18.jpg" alt="" align="left" width="200" height=""/>
    <text>
      Sie hätten auch gern so einen Link, der sich in Farbe und Form
      ändert, wenn man mit der Maus darüber geht? So wie in den vielen
      Menues, in denen sich der Hintergrund farblich abhebt, oder die
      Schrift plötzlich fett wird? 
    </text>
    <text>
      Früher hat man dies mit Bildern und
      einer zusätzlichen Programmierfunktion: JavaScript gemacht.
    </text>
    <text>
      Heute kann man einfache Veränderungen mit Stylesheets machen.
    </text>
    </absatz>

    <absatz>
    <text>
      Hierfür verwendet man :hover. Dies kann allein stehen, dann
      betrifft es alle Anchors und Bilder (img), oder in Kombination
      mit einem Tag (in der Regel a), dann betrifft es ausschliesslich
      das angegebene Tag und sonst nichts.
    </text>
    <code>
        <bild src="screenshot5.19.jpg" alt="" align="right" width="300"/>
	<file src="5.16.css" text="BeispielCSS" />
	<file src="5.16.html" text="BeispielSource" />
      <codesrc>
body { font-size: 2.0em; }
:hover
{
    background-color: purple;
    color: yellow;
}

h4 a:hover
{
    background: white url("../images/bg2.jpg");
    color: #72147d;
}
      </codesrc>
    </code>
    </absatz>

    <absatz>
    <text>
      Mit :hover werden alle Anchors (Links) behandelt. Dies ist eine
      Funktion, die CSS mitbringt. Hier haben wir auch keine
      Wahlmöglichkeiten bei der Namensverteilung.
    </text>
    <text>
      Die zweite Anweisung h4 a:hover besagt, daß nur a-Tags beachtet
      werden sollen, die in einem h4-Tag stehen. Also etwas in der Art:
      &lt;h4> Irgendein Text &lt;a href="...">klickme&lt;/a> &lt;/h4>. Dabei
      natürlich nur das a-Tag. Ein eingelagertes img-Tag (z.B. &lt;h4>
      Irgendein Text &lt;img src="..."> mehr Text &lt;/h4>) würde
      unbeachtet bleiben.
      
    </text>
    <text>
      Ebenfalls neu in Verwendung: Die Kurzform zum angeben einer
      Hintergrundfarbe und eines Hintergrundbildes. Mit einem einfachen
      background kann man erst die Farbe (als Name oder mit #123456) und
      danach mit url("") ein Bild angeben. Den gleichen Effekt erziehlt
      man, wenn man background-color und background-image separat setzt.
    </text>
    </absatz>

  </unterkapitel>

  <!--
  <unterkapitel nummer="8">
    <titel>Tabellenbreiten kontrollieren</titel>

    <absatz>
    <bild src="screenshot1.2.jpg" alt="" align="left" width="200" height=""/>
    <text>
    width: 20em;
    </text>
    </absatz>

  </unterkapitel>
-->

  <literatur>
    <titel>GIMP</titel>
    <kurzbeschreibung>
      Ein freies Bildbearbeitungsprogramm für Windows, MacOS X und Linux
    </kurzbeschreibung>
    <url src="http://www.gimp.org/" />
  </literatur>

  <literatur>
    <titel>W3Consortium</titel>
    <kurzbeschreibung>
    CSS - Der Standard.
    </kurzbeschreibung>
    <url src="http://www.w3.org/TR/CSS21/" />
  </literatur>



  <uebung nummer="1">
  <titel>In allen vier Ecken</titel>
  <aufgabe>
    <absatz>
      <bild src="screenshot5.21.jpg" alt="" align="right" width="300"/>
    <text>Erstellen Sie eine Tabelle, in denen die Zelleninhalte so
    angeordnet sind, daß sie sich einmal zur Mitte hin orientieren und
    einmal zum Rand hin (siehe Hand-Skizze)
    </text>
    </absatz>
  </aufgabe>
  <loesung>
  <absatz>
      <text>
        1. Wir erstellen eine normale Tabelle mit zwei Zeilen zu je zwei
	Zellen. Jeder Zelle verpassen wir ein eigenes class. Z.B.
	linksoben, rechtsoben, linksunten, rechtsunten.
      </text>
      <text>
        2. Die farbliche Gestaltung machen wir per Stylesheet. Siehe
	unten.
      </text>
      <text>
        3. Da padding und margin sich nicht immer auch auf den Abstand
	der Zellen zueinander beziehen, verwenden wie ein Attribut des
	table-Tags: cellspacing und legen dieses auf 10 Pixel fest.
      </text>
      <text>
      </text>
      <code>
          <file src="5.22.html" text="BeispielCode" />
          <bild src="screenshot5.22.jpg" alt="" align="right" width="300"/>
      <codesrc>
&lt;html>&lt;head>&lt;title>Tabelle&lt;/title>

&lt;style>
table
{ 
    border: 1px solid purple; 
    width: 400px;
}

td
{ 
    border: 1px solid purple; 
    font-family: Arial, Helvetica, "Sans Serif";
    background-color: #ffffff;
    padding: 5px;
}

.rechtsunten {
    text-align: right;
    vertical-align: bottom;
}

.rechtsoben {
    text-align: right;
    vertical-align: top;
}

.linksunten {
    text-align: left;
    vertical-align: bottom;
}

.linksoben {
    text-align: left;
    vertical-align: top;
}
&lt;/style>


&lt;/head>&lt;body>

&lt;table cellspacing="10">
 &lt;tr>
     &lt;td class="rechtsunten">
         Dies ist ein Textblock.  Dies ist ein Text und noch etwas.
     &lt;/td>
     &lt;td class="linksunten">
         Dies ist ein Textblock.  Dies ist ein Text und noch etwas.
     &lt;/td>
 &lt;/tr>

 &lt;tr>
     &lt;td class="rechtsoben">
         Dies ist ein Textblock.  Dies ist ein Text und noch etwas.
     &lt;/td>
     &lt;td class="linksoben">
         Dies ist ein Textblock.  Dies ist ein Text und noch etwas.
     &lt;/td>
 &lt;/tr>
&lt;/table>

&lt;/body> &lt;/html>
      </codesrc>
      </code>
  </absatz>
  </loesung>
  </uebung>

</kapitel>
</kurs>
