Homepage-Webhilfe Event-Banner

Einführung

CSS3-Logo CSS (Cascading Style Sheets) ist eine Stylesheet-Sprache, welche zur Formatierung von HTML und XML eingesetzt werden kann. Der Haupteinsatz findet sich hierbei jedoch in Verbindung mit HTML.

CSS ermöglicht neben „einfachen Formatierungen“ wie Text- oder Layout-Formatierungen auch Transformationen, Effekte und sogenannte Media Queries, mit welchen es möglich ist, unterschiedliche Formatierungen auf verschiedene Endgeräte anzuwenden.

CSS-Dateien werden unverändert an den Browser gesendet und können daher von jedem gelesen werden. Da CSS-Skripte reine Text-Dateien sind und vom Browser interpretiert und verarbeitet werden, benötigen wir um CSS-Dateien zu erstellen und zu bearbeiten lediglich einen Text-Editor. Natürlich empfehlen wir Ihnen einen Editor mit Syntax-Highlighting zu verwenden.


CSS wurde entworfen, um eine Trennung zwischen Inhalt und Design herzustellen. In älteren HTML-Versionen gab es unter anderem das font-Element, mit welchem Schriftfarbe, Schriftgröße und Schriftart festgelegt werden konnte. Des Weiteren wurden früher Tabellen verwendet, um Layouts mittels CSS zu erstellen. Ein solches Schema widerspricht dem MVC-Konzept (Model View Controller).

Die ersten Ausarbeitungen und Entwicklungen des CSS-Vorgängers CHSS (Cascading HTML Style Sheet) fanden bereits in den Jahren 1994 statt. Ende 1996 wurde die erste Spezifikation von CSS namens CSS Level 1 vom W3C (World Wide Web Consortium) veröffentlicht.

Die 2. Version von CSS (offiziell CSS Level 2) wurde im Mai 1998 veröffentlicht. Mitte 2011 wurde CSS Level 2 Revision 1 veröffentlicht, welche seit 2014 von fast allen Webbrowsern so gut wie vollständig unterstützt wird.

Parallel zur Entwicklung von CSS2 wurde im Jahre 2000 mit der Entwicklung von CSS3 begonnen. CSS3 enthält neben der Weiterentwicklung von CSS2-Bestandteilen auch neue Funktionen wie z. B. Transformationen, Schatten, Transparenz und Media Queries.

Mittels CSS wird das MVC-Konzept wieder hergestellt bzw. aufrechterhalten. So könnte man am Beispiel von Webseiten sagen, dass der HTML-Code das Modell (M = Model) und der CSS-Code die Darstellung (V = View) ist.


Der Syntax von CSS ist ziemlich einfach aufgebaut. Als erstes notieren wir immer einen oder mehrere Selektoren. Selektoren erlauben (wie der Name schon sagt) das Selektieren von HTML-Elementen. Dadurch können wir also mittels CSS auf HTML-Dokumente „zugreifen“. CSS bietet verschiedene Arten von Selektoren: Element-Selektoren, Klassen, IDs und Attribut-Selektoren. Auf diese werden wir im nächsten Thema genauer eingehen. Nach dem Selektor folgt immer ein Block, welcher in geschweifte Klammern gesetzt werden muss. Hier ein schematischer Aufbau:

selektor
{
    
}

Um z. B. einen „Block“ für mehrere Elemente oder einen „Block“ nur für Elemente, die einem anderen Element untergeordnet sind anzuwenden, gibt es sogenannte Kombinatoren. Diese werden wir ebenfalls im nächsten Thema vorstellen.

Innerhalb des Blocks können nur sogenannte Eigenschaften platziert werden. Eigenschaften ermöglichen das Festlegen verschiedener Einstellungen. Diese Einstellung kann sich auf Schrift, Layout und anderes auswirken. Die Liste der verfügbaren Eigenschaften ist lang. Die wichtigsten und meist genutzten Eigenschaften werden Sie innerhalb dieses CSS-Kurses kennenlernen. Nach dem Namen der Eigenschaft muss ein Doppelpunkt : notiert werden. Im Anschluss wird der dazugehörige Wert bzw. die dazugehörigen Werte notiert. Um die Eigenschaft abzuschließen, müssen wir noch am Ende ein Semikolon ; notieren. Hier nochmals ein weiterer schemenhafter CSS-Code:

selektor
{
    eigenschaft1: wert1;
    eigenschaft2: wert2;
    eigenschaft3: wert3;
}

Die in den zwei obigen Codes enthaltenen Leerzeichen und Zeilenumbrüche sind nur „Kosmetik“. Sie dienen also nur zur Verbesserung der Lesbarkeit. Da Sie mit Ihren CSS-Dateien immer wieder arbeiten werden, sollten Sie hier (sowie im HTML-Code auch) auf eine übersichtliche Darstellung und einen guten Aufbau achten.

Zur besseren Lesbarkeit dienen auch Kommentare. Kommentare beginnen in CSS mit /* und enden mit */. Kommentare können sich dabei über mehrere Zeilen erstrecken. Genutzt werden Kommentare rein zu Dokumentations- und Testzwecken. Bitte bedenken Sie, dass alle Personen die Zugang zu Ihrer Website haben, auch den Quelltext und somit auch die Kommentare Ihrer CSS-Dateien lesen können.

/* einzeiliger Kommentar */
/* ein mehrzeiliger
   Komentar */

Bei diversen Eigenschaften von CSS ist es notwendig, eine Farbe anzugeben. Für die Angabe einer Farbe gibt es 6 verschiedene Möglichkeiten. Zum einen ist die Angabe eines Farbnamens in englischer Sprache möglich. Die CSS-Spezifikation enthält über 100 vordefinierte Farbnamen. Hierzu zählen gängige Namen wie red, green, lime, blue, orange, white, black und viele mehr. Die besseren Editoren (z. B. Adobe Brackets) enthalten diese Farbliste, weshalb diese dort ganz einfach mittels Autovervollständigung abgerufen werden können.

red

Um Farben im RGB-Farbraum anzugeben, gibt es das Schlüsselwort rgb. Hinter diesem muss ein rundes Klammernpaar notiert werden. Innerhalb der Klammer werden die drei Werte des Farbraums (Rotanteil, Grünanteil, Blauanteil) angegeben. Die Werte sind dabei Dezimalzahlen zwischen 0 und 255. Eine Einheit wird hier nicht angegeben.

rgb(107, 234, 45)

Wollen wir zusätzlich zu den Farbanteilen noch die Deckkraft angeben, so verwenden wir das Schlüsselwort rgba. Hier muss dann noch zusätzlich ein 4. Wert angegeben, welcher zwischen 0.0 und 1.0 liegen muss. 1.0 bedeutet dabei die volle Deckkraft. Wird das Schlüsselwort rgb verwendet, so besitzt die Farbe immer die volle Deckkraft.

rgba(107, 234, 45, 0.7)

An Stelle der Notation mit dem rgb-Schlüsselwort kann der Farbwert auch hexadezimal angegeben werden. Das dafür vorgesehene Format ist #RRGGBB. Da die einzelnen Bestandteile eines RGB-Wertes zwischen 0 und 255 in Dezimalangabe liegen, befindet sich der Wertebereich in hexadezimaler Schreibweise zwischen 00 und FF.

#6BEA2D

Viele Designer arbeiten nicht mit dem RGB-Farbraum, sondern mit dem HSL-Farbraum, da man sich die Farben besser vorstellen kann. Der HSL-Farbraum setzt sich aus dem Farbwert (Hue), der Sättigung (Saturation) und der Helligkeit (Lightness) zusammen. Der Farbwert wird in Grad angegeben (ohne Einheit). Die Sättigung und die Helligkeit werden in Prozent (inkl. Prozentzeichen) angegeben. Um HSL-Werte in CSS zu notieren, benötigen wir das Schlüsselwort hsl, ein rundes Klammernpaar und die drei Werte, welche durch Komma getrennt werden.

hsl(207, 82%, 35%)

Auch HSL-Farbangaben können noch um die Deckkraft erweitert werden. Hierzu benötigen wir das Schlüsselwort hsla an Stelle von hsl. Auch hier wird die Deckkraft als 4. Parameter mit einem Wert zwischen 0.0 und 1.0 angegeben.

hsla(207, 82%, 35%, 0.4)

Für einige CSS-Eigenschaften (Positionierung, Rahmen, Größe uvm.) muss zusätzlich zu einer Zahl eine Einheit angegeben werden, mit welcher spezifiziert wird, in welchem „Format“ die Zahl angegeben wurde. In CSS wird zwischen absoluten und relativen Einheiten unterschieden. Alle Zahlen können dabei Ganzzahlen, aber auch Zahlen mit Nachkommastellen sein. Bei einigen Eigenschaften (z. B. bei der Positionierung von Elementen) ist es auch möglich, negative Zahlen zu notieren. Hierfür muss direkt vor der Zahl ein Minuszeichen / Bindestrich notiert werden.

Bei absoluten Einheiten wird sozusagen sichergestellt, dass die Darstellung auf allen Endgeräten gleich ist. Als Einheiten stehen uns Millimeter mm, Zentimeter cm, Inch in, Pixel px, Points pt und Pica pc zur Verfügung.

100mm
10cm
30in
16px
24pt
8pc

Einige Personen behaupten, dass Pixel keine absolute Einheit ist. Dies liegt daran, dass Pixel je nach Größe des Bildpunktes unterschiedlich groß sein können. Trotzdem hat es sich durchgesetzt, dass Pixel als absolute Einheit gilt.

Relative Einheiten beziehen sich auf bestimmte andere Angaben (z. B. das übergeordnete Element). Die Benutzung von relativen Einheiten hat in den letzten Jahren zugenommen. Dies liegt auch daran, dass relative Einheiten für responsives Webdesign praktischer sind. Dennoch werden für Schriftgrößen und ähnliches weiterhin gerne absolute Einheiten verwendet. Als relative Einheiten stehen uns Prozent %, em und rem zur Verfügung. Die em-Einheit gibt den Faktor zur Multiplikation mit der Schriftgröße an. Verwendet wird die Einheit oftmals für die Zeilenhöhe. Die rem-Einheit ist fast identisch mit der em-Einheit. Der einzige Unterschied ist, dass sich die Multiplikation nicht auf die Schriftgröße des aktuellen Elements, sondern auf die Schriftgröße des Wurzel-Elements (html-Element) bezieht.

60%
1.3em
1.6rem

Übrigens: Wenn Sie einer Eigenschaft den Zahlenwert 0 zuweisen möchten, ist es gängige Praxis, die Einheit wegzulassen. Laut CSS-Spezifikation ist diese Vereinfachung erlaubt.

Übrigens: Im Kapitel Weiterführendes finden Sie einen Umrechner für die absoluten Maßeinheiten.


Nun haben wir bereits grundlegendes über unseren späteren CSS-Code gelernt. Doch wo wird der Code eigentlich platziert? Hierfür gibt es insgesamt 3 Möglichkeiten, wovon nicht immer alle für jeden Einsatzzweck geeignet sind.

Die gängigste Variante ist, den CSS-Code in einer separaten Datei zu platzieren. Die Dateien verfügen dabei standardmäßig über die Endung .css. Nun benötigen wir noch einen Link in unserer HTML-Datei, um die HTML-Datei mit der CSS-Datei zu verbinden. Hierfür benötigen wir das link-Element mit dem href- und type-Attribut. Das href-Attribut gibt die URL zur Datei an. Das type-Attribut enthält den MIME-Typ, welcher bei CSS text/css ist. Für größere Projekte kann es auch nützlich sein, mehrere CSS-Dateien zu erstellen. Wollen wir mehrere Dateien in eine HTML-Seite einbinden, müssen wir einfach das link-Element mehrmals notieren.

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

Und so könnte der schematische Inhalt der CSS-Datei layout.css aussehen:

selektor
{
    eigenschaft1: wert1;
    eigenschaft2: wert2;
    eigenschaft3: wert3;
}

Der Vorteil der obigen Methode ist, dass wir eine CSS-Datei für mehrere HTML-Seiten verwenden können. Wollen wir nun das Design unserer Website anpassen (z. B. Schriftart, Farbe etc.), müssen wir nur die CSS-Datei editieren.

Es kann aber auch sein, dass es bestimmte CSS-Regeln gibt, welche nur für eine spezielle HTML-Seite gelten soll. In einem solchen Fall müssen wir nicht unbedingt eine extra CSS-Datei anlegen, sondern können den CSS-Code im HTML-Code notieren. Der CSS-Code muss hierfür innerhalb des style-Elements angegeben werden. Das style-Element muss über das style-Attribut verfügen (wie das link-Attribut) und muss innerhalb des Head-Bereichs notiert sein.

<style type="text/css">
selektor
{
    eigenschaft1: wert1;
    eigenschaft2: wert2;
    eigenschaft3: wert3;
}
</style>

Um einem einzelnen HTML-Element eine oder mehrere CSS-Eigenschaften zuzuweisen, können wir innerhalb aller darstellbaren HTML-Elemente das style-Attribut verwenden. Als Wert werden CSS-Eigenschaften und deren Werte notiert. Auch hier gilt das bekannte Format mit Doppelpunkt zwischen Eigenschaft und Wert und Semikolon am Ende einer Eigenschaft. Es fällt also lediglich der Selektor und die geschweiften Klammern weg.

<p style="eigenschaft1: wert1; eigenschaft2: wert2; eigenschaft3: wert3;">...</p>

Alternativ dazu ist es möglich, ein einzelnes Element mittels ID per CSS zu selektieren. Dazu im nächsten Thema mehr.


Nachdem wir bisher immer nur mit schematischem Code gearbeitet haben, wollen wir uns nun den ersten fertigen Code anschauen. Der folgende CSS-Code selektiert alle h1-Elemente und weist diesen eine blaue (englischer Farbenname blue) Schriftfarbe (Eigenschaft color) zu.

h1
{
	color: blue;
}
Vorschau
Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen OK