Cascading Style Sheets (CSS)

Entstehung von CSS

 
 
   Vivisimo:
 
 
IgfSek2 Html-Kurs     JavaScript SelfHtml

Inhalt

IGFSEK2.DE

01: Der Editor
02: Grundlagen
03: Seitenaufbau
04: Zeilen u. Absätze
05: Überschriften
06: fett und kursiv...
07: hoch und tief...
08: Trennlinien
09: Listen, ...
10: Hyperlinks
11: Relative Links
12: Grafiken
12+:Bildbearbeitung
13: Farben
14: Tabellen
15: Frames
16: Cascading...

Das fürs WWW zuständige Normierungs- und Standardgremium, das W3C, hat festgelegt, dass HTML lediglich für die Auszeichnung einer Dokumentstruktur zu verwenden ist. Für's Aussehen (und nicht nur dafür) dagegen sind die CSS zuständig.

Mit Einsatz von CSS befinden sich im HTML-Code nur noch struktur-relevante Informationen. Jegliche Formatierungsangaben werden (idealerweise in externe Dateien) ausgelagert. Dieses Prinzip bildet die Grundlage für die meisten der hier genannten Vorteile.

Viel mehr als im Folgenden dargelegt findet sich hier: CSS 4 YOU The finest in Stylesheets.
Für die Html-Kurs-Seiten gibt es auch eine Stylesheet-Datei: projekt.css
Hier eine mit CSS formatierte Beispielseite!

Vor- und Nachteile von CSS

Schneller, schöner formatieren mit CSS

Über CSS kann die Formatierung einfach und elegant vorgenommen werden. So können z. B. Schriftattribute wie Farbe, Schriftart und -schnitt und Abstände bequem eingestellt werden. CSS sind vergleichbar mit den Formatvorlagen in Word.

Das Besondere an CSS ist, dass diese "Formatierungen" durch Auslagerung dann einfach für alle Seiten einer Homepage gelten. Dementsprechend werden bei Änderungen nur noch an einer Stelle diese Änderungen durchgeführt und alle Seiten einer Homepage sind geändert.

CSS ist in der Version 1 so weit verbreitet, dass es problemlos eingesetzt werden kann. Vielfach verstehen die Browser auch die Version 2. Das Besondere an CSS ist, dass Browser, die kein CSS kennen, absolut kein Problem mit CSS haben. Alte Browser ignorieren CSS einfach und der Seitenaufbau funktioniert trotzdem. CSS greift nicht in die HTML-Befehle ein, sondern wird darüber gelegt.

Aufbau von CSS Befehlen

Grundlagen des CSS Konzept

CSS ist einfacher als im Allgemeinen angenommen. Es gibt nur ein paar grundlegende Regeln zum Erfolg mit CSS:

Aufbau:

  Selektor Deklaration
  H1 {COLOR: green}

H1 (oder irgend etwas anderes): Selektor - darauf bezieht sich der zweite Teil, die Deklaration.
{ ... } : Vereinbarung (Declaration), wie was aussehen soll.
Im Beispiel sollen alle Überschriften H1 nun die Farbe rot bekommen.

Eigenschaften und Werte

Die Vereinbarung (Deklaration) besteht aus zwei Teilen: dem Eigenschaftsteil, wie z. B. Farbe, Größe, und der dazugehörige Wert, wie rot(Farbe) oder 30 (Größe).
TAG {Eigenschaft: Wert}

Vererbung

Die Deklarationen können vererbt werden. Wird z. B. für das <BODY>-Tag die Farbe per CSS bestimmt, hat der <LI>-Tag automatisch die gleiche Farbe, wenn diese dort nicht definiert ist.

Cascading:

Es kann mehrere Style Sheets geben, die auch konkurrierend sein können. Wer dann jeweils "gewinnt", hängt von verschiedenen Regeln ab. So kann z. B. auch ein Design extra für den Ausdruck definiert werden.

CSS im <Head>-Tag

Nun zur praktischen Umsetzung. Als folgendes Beispiel soll das CSS folgende Regeln haben:

Dazu müssen folgende Zeilen in den <HEAD>- Bereich.

   <STYLE TYPE = "text/css">
BODY {font-family:Verdana, Arial, Helvetica, sans-serif; COLOR: green;}
H1 {FONT-SIZE: 18pt; COLOR: red;}
H2 {FONT-SIZE: 14pt}
P {FONT-SIZE: 10pt}
</STYLE>

Wichtig:

Befehl direkt im Quellcode

Direkt im Quellcode wirkt der Befehl nur an dieser bestimmten Stelle der Seite, so dass man abweichende Designs verwenden kann.

Beispiel:
<h1 style="letter-spacing:30;" >Überschrift</h1>

Alle Buchstaben bis zum Ende von </h1> werden jeweils mit einem Abstand von 30 zwischen den Buchstaben dargestellt.

Natürlich können die Befehle auch kombiniert werden.

Zusätzlich zur Buchstabenbreite kommt jetzt noch eine andere Farbe hinzu:

   <h1 style="letter-spacing:30;color:red" >Überschrift</h1>

Hier ist natürlich die Frage berechtigt, warum nicht gleich mit den gewohnten HTML Befehlen? Die Logik der Sache wird klar, wenn man diese Formatdefinitionen auslagert. Dadurch kann dann z. B. eine Einstellungen erstellt werden, die dann für alle <h1> gelten, ohne dass speziell noch in den HTML-Tag eingegriffen werden muss.

Auslagern von CSS-Befehlen

Zum Auslagern werden 2 Dinge benötigt. Als erstes eine neue Datei, ich nenne diese design.css (kann aber auch beliebig anders heißen) und als zweites ein Verweis darauf in der HTML-Datei, die diese ausgelagerte Datei nutzen soll.

Verweis in der HTML-Datei:
Dieser Verweis sollte im head-Bereich eingegeben werden.

   <link rel="stylesheet" href="design.css" type="text/css">

So, nun erstellen wir eine neue Datei mit dem Namen "design.css".

Inhalt:

   H1 { color : red; letter-spacing : 30;}

Unbedingt auf Leerzeichen achten, und als Klammern kommen hier die geschweiften zum Zuge!! So, Datei abspeichern und im HTML Editor zurück zur ursprünglichen Internetseite.

CSS-Befehl

Anbei die wichtigsten CSS Befehle zum Ausprobieren:

Befehl Bedeutung weitere mögliche Angaben
Schrift    
font-family : Schriftart Arial, Times New Roman, etc.
font-size : Schriftgröße numerischer Wert in pt(Punkt) mm oder cm
color : Schriftfarbe red, green, white usw. oder HTML Farbangabe
font-variant: Schriftvariante normal, small-caps
font-weight: Schriftgewicht normal, bold, bolder, lighter
font-style: Schriftstil normal, oblique, italic
     
Textgestaltung    
text-align : Textausrichtung left, right, center, justify (Blocksatz)
line-height : Zeilenabstand (Durchschuß) numerischer Wert in pt(Punkt) mm oder cm
text-decoration : Textgestaltung underline, overline, line-through, blink
word-spacing: Wortabstand numerischer Wert in pt(Punkt) mm oder cm
letter-spacing: Zeichenabstand numerischer Wert in pt(Punkt) mm oder cm
text-indent: Texteinrückung numerischer Wert in pt(Punkt) mm oder cm
text-transform: Textart capitalize, upppercase, lowercase, none
     
Seitenränder    
margin-left : absoluter Abstand zum Seitenrand numerischer Wert in pt(Punkt) mm oder cm
margin-right : absoluter Abstand zum Seitenrand numerischer Wert in pt(Punkt) mm oder cm
margin-bottom: absoluter Abstand zum Seitenrand numerischer Wert in pt(Punkt) mm oder cm
margin-top : absoluter Abstand zum Seitenrand numerischer Wert in pt(Punkt) mm oder cm
     
Links    
A:link Link fast alle CSS-Befehle anwendbar
A:visited Besuchter Link fast alle CSS-Befehle anwendbar
A:active Angeklickter Link fast alle CSS-Befehle anwendbar
A:hover Link beim überfahren mit Maus fast alle CSS-Befehle anwendbar
     
Bilder    
background : Hintergrundfarbe red, green, white usw. oder HTML Farbangabe
background-image Hintergrundbild none, URL
background-repeat Kachel repeat, repeat-x, repeat-y, no-repeat
     
Ränder    
border-top-width: Dicke der Rahmenlinie thin, medium, thick oder num. Wert
border-bottom-width: Dicke der Rahmenlinie thin, medium, thick oder num. Wert
border-left-width: Dicke der Rahmenlinie thin, medium, thick oder num. Wert
border-right-width: Dicke der Rahmenlinie thin, medium, thick oder num. Wert
border-style Rahmentyp none, dotted, dashed, solid, double, groove, ridge, inset, outset
border-color Rahmenfarbe Farbname oder Hex.
padding-top Tabellenabstand oben Prozent oder num. Wert.
padding-bottom Tabellenabstand unten Prozent oder num. Wert.
padding-right Tabellenabstand rechts Prozent oder num. Wert.
padding-left Tabellenabstand links Prozent oder num. Wert.
width Rahmenbreite Auto, Prozent, num. Wert
height Rahmenhöhe Auto, Prozent, num. Wert

Weiterführende Informationen gibt es hier:

( http://www.css4you.de/ )

Tipps und Tricks

Abstand nach Überschriften etc.

Teilweise ist der Abstand nach einem Blockelement wie z.B. die Überschrift nicht erwünscht. Dieser Abstand kann sehr einfach über CSS wie gewünscht eingestellt werden.

Abstände komplett aufheben - Abstände nach oben/unten definieren:

<h1 style="margin-bottom: 0px;">H1-Überschrift</h1>
<p style="margin-top: 0px;">Fließtexte usw. usw.</p>

Nach belieben kann der Abstand geändert werden - einfach die gewünschte Pixelzahl einstellen. Also anstatt 0px z.B. dann 3px

<h1 style="margin-bottom: 3px;">H1-Überschrift</h1>

Bilderrahmen mit Punkten bei Mauskontakt

Wenn ein Bild mit der Maus überfahren wird, erscheinen anstatt dem normalen Rahmen ein gepunkteter Rahmen

für die ausgelagerte css-Datei
:hover img { border: 1px dashed #0000FF }

für die HTML-Seite
<a href="seite.htm">
<img src="bild.jpg" alt="" border="1">
</a>

Anfangsbuchstaben hervorgehoben

Besonders als erster Buchstaben in einem Absatz. Lockert den Absatz auf und dient dem Aussehen. Nachtürlich sollte genug Text folgen, damit dieser den Buchstaben "umfließen" kann. Ist der Browser nicht CSS-tauglich, wird der Buchstaben ganz normal angezeigt.

für die ausgelagerte css-Datei

.letterspeziale
{ float: left;
font-size: large;
font-weight: bolder;
padding: 5px;
background: midnightblue;
color: white;
}

für die HTML-Seite
<p class=letterspeziale>B</p>esonders netter Effekt ...