Inhaltsverzeichnis

Aufbau

Selector {Paramter1: Wert1 Wert2 Wert3; Parameter2: Wert2;}

Selector: Name oder HTML-Element für den dieser Style genutzt werden soll
Parameter: Eigenschaft die gesetzt werden soll.
Wert: Wert(e) der Eigenschaft. Werte werden ggf. durch Leerzeichen getrennt wenn mehrere.

Selektoren

Name Format CSS Format HTML Beschreibung
Type-SelektorElement<Element>Regel gilt für alle Elemente dieses Typs.

h1 {text-align: right;}

Class-Selektor.Class<Element class=„Class“Regel für alle Elemente dieser Klasse
ID-Selektor#ID<Element id=„ID“>Regel für das Element (eine ID kann in einem Dokument nur einmal vergeben werden → identifziert ein Element eindeutig)
Pseudo-KlassenElement:Pseudoklasse<Element>Regel wenn das Element in dem durch die Pseudo-Klasse beschriebenen Zustand ist oder ein bestimmtes Element ist.

Z.B. a:hover → wenn man über einem a-Element ist, a:visited → Wenn man ein A-Element (also einen Link) besucht hat.
Oder h2:last-of-type → letztes h2-Element im Dokument
Attribut-SelektorenElement[Attribut=Value]<Element attribut=value>Gilt für bestimmte Elemente, die ein bestimmtes Attribut auf einen bestimmten Wert gesetzt haben

Kombinationen

Oder

h1, .myclass {text-align: center}

Nachkommen

div .myclass {text-align: center}

Direkte Nachkommen

div > .myclass {text-align: center}

Element mit mehreren Klassen

<div class="myclass anotherclass"></div>

div.myclass.anotherclass {text-align: center}

Definition

In Tag

<HTML-Element style="Eigenschaft1:Wert1;Eigenschaft2:Wert"}>

Im Kopf

<head>
<style type="text/css">
  **Definition**
</style>

In Externer Datei

Format der Datei:

Selector1 {Parameter1:Wert1; Parameter2:Wert2;}
Selector2 {Parameter1:Wert1; Parameter2:Wert2;}

Einbinden:

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

In Externer Datei per import

<style type="text/css">
@import url("Dateiname");
</style>

Eigenschaften



Eigenschaft Beschreibung
positionVon wo aus Abstände aus berechnet werden.

* absolut → Abstände werden vom Eltern-Element bzw (wenn nicht vorhanden) vom Fensterrand
* relative → Abstände werden relativ zur normalen Position des Objektes berechnet (also von dort aus wo es normalerweise erscheinen würde → zum Beispiel unterhalb des letzten Textes oder Objektes)
* fixed → Abstände werden von der oberen Fensterkante aus berechnet und das Objekt scrollt nicht mit (es bleibt fest stehen)
widthBreite von Block-Elementen.
Per Default ist ein Block-Element so groß wie sein Inhalt
max-widthMaximale Breite eines Block-Elementes.
In der Regel in Pixel.

Sinnvoll wenn man eine width in Prozent angegeben hat, aber nicht will das Element auf großen Bildschirmen riesig wird und ggf. Elemente in ihm oder es selbst dann dadurch furchtbar aussehen → zum Beispiel Text sehr lang wird.
heightHöhe von Block-Elementen.
Per Default ist ein Block-Element so groß wie sein Inhalt
opacityDeckung eines Elementes.
Niedrigere Werte machen das Element transparenter, höhere Werte verdecken Elemente hinter diesem stärker.

  • 0% - 100% → 0% das Element ist unsichtbar und der Hintegrund komplett sichtbar. 100% das Element verdeckt ein dahinter liegendes Element komplett
  • 0 - 1 → Komma-Werte zwischen 0 und 1 → 0,5 → 50% Deckkraft
displayDefiniert Darstellung eines Elementes.
Wert Beschreibung
inline-blockElement wird wie ein Block-Element behandelt (und Dinge wie width, height usw. können definiert werden), gleichzeitig erfolgt am Ende des Block-Elementes kein Zeilenumbruch (es wird dann wie ein Inline-Element behandelt).
Man kann darüber auch Block-Element zu Pseudo-Inline-Elementen machen - um sie nebeneinander darzustellen
border-widthBei Blockelementen die dicke der linken Grenze (Default: none)
Meist in px angegeben
border-styleDer Stil der Grenze.
Z.B. solid, dotted usw.
border-radiusRadius für abgerundete Ecken.
In der Regel in px angegeben
border-colorFarbe der Grenze
box-shadowSchatten um ein Element.

box-shadow: <x-Achse-Versatz> <y-Achse-Versatz> <Blur-Radius> <Spread-Radius> <Farbe>

  • x-Achse-Versatz um wie viel der Schatten horizontal vom Element versetzt sein soll → in der Regel in Pixel
    • positiver Wert → Versatz nach Rechts → Schatten steht nach Rechts über Element hinaus
    • negative Wert → Versatz nach Links → Schatten steht nach Links über Element hinaus
    • 0 → Schatten ist Links und Rechts gleich
  • y-Achse-Versatz um wie viel der Schatten senkrecht vom Element versetzt sein soll → in der Regel in Pixel
    • positiver Wert → Versatz nach Unten → Schatten steht nach unten über
    • negativer Wert → Versatz nach Oben → Schatten steht nach oben über
    • 0 → Schatten ist Links und Rechts gleich
  • Optional Blur-Radius
    • in der Regel in Pixel
    • ist optional → wird es nicht angegeben wird der Schatten scharf dargestellt
    • ist es angegeben verwischt er zum Rand
  • Optional Spread-Radius
    • wie breit der Schatten sein soll
    • in der Regel in Pixel
  • Farbe → die Farbei des Schattens

box-shadow: -5px 10px 5px green

  • Schatten ragt links außen über das Element
  • Schatten ragt nach unten über das Element
  • Schatten hat einen Blur-Radius von 5px (wird also zu den Rändern schwächer)
  • Schatten hat Farbe grün
marginAbstände eines Block-Elements zum beinhaltenden Element.

Häufig:
  • margin-left → Linker Abstand
  • margin-right → Rechter Abstand
  • margin-top → Abstand nach oben
  • margin-bottom → Abstand nach unten
  • Wert auto → setzt den Abstand automatisch
    • wenn man gegenüberliegende Margins auf auto setzt (top und bottom oder left und right) dann wird das Element innerhalb des übergeordneten Elements zentriert
paddingAbstand zwischen dem Element und den Elementen die es beinhalten (also den Kind-Elementen).
Wie margin, nur nach Innen gerichtet.

Details siehe margin
background-imageHintegrund-Bild.

  background-image: url(http://somewhere.de/something.png)

text-alignText-Ausrichtung
font-familySchriftart.

Es können mehrere Schriftarten angegeben werden, die der Reihe nach gesucht werden (nicht alle Schriftarten sind auf allen Systemen vorhanden).
font-family: impact, serif

.
Die Schriftarten müssen durch Komma getrennt werden (Liste)

font-styleStile für Schriften, wie italic (Kursiv)
hrHorizontal Ruler
Horizontale Linie um Inhalte voneinander zu trennen.

Es handelt sich um ein Block-Element, entsprechend kann die Hintergrundfarbe, die Farbe der Grenzen (border-color), Breite und Höhe verändert werden

Größenangaben

Name Medium Relativ/Absolut Beschreibung
cmDruckAbsolutMaß in Zentimetern
mmDruckAbsolutMaß in Milimetern
ptDruckAbsolutPoints
pxBildschirmAbsolutPixel - wobei Pixel nicht echte Bildschirmpixel sind, sondern abhängig von der Auflösung des Displays 1px auch mehrere Pixel umfassen kann.
Die Größe von 1px hängt also vom Gerät ab.

1px ist bei einer Linie die dünnste darstellbare Linie
emBildschirmRelativRelativ zur Schriftgröße im aktuellen Element.

2em = 2x so groß wie die aktuelle Schriftgröße.

Ergibt eine harmonische Darstellung, da die Elemente ihre Größe parallel zur Schriftgröße haben und Schriftgrößen zueinander.
Bleibt auch harmonisch wenn das Fenster vergrößert oder verkleinert wird
remBildschirmRelativRelativ zur Schriftgröße des Root-Elements
vhBildschirmRelativRelativ zur Höhe des Viewports (Browserfensters).

100vh = 100% der höhe des Browserfensters
vwBildschirmRelativRelativ zur Breite des Viewports (Browserfenster).
Analog zu vh, nur für die Breite

Farben

Deklaration RGB

rgb(255,255,255)
Wobei die Werte jeweils für Rot, Grün, Blau stehen und 255 der Maximalwert der jeweiligen Farbe ist. 255,255,255 = weiß, 0,0,0 = schwarz → additives Farbmodell

rgba(0,0,0,60%)

#2A3CFF
Jeweils 2 Hexadezimalzahlen bilden eine Farbe ab, die ersten 2 Rot, die nächsten 2 Grün und die letzten 2 Blau.
„FF“ ist jeweils der Maximalwert für eine Farbe

shl(120, 50%, 50%)

Gestaltung/Farbenlehre

Farbverläufe

h1 {
background: linear-gradient(90deg, rgb(255,0,0) 30%, rgb(0,255,0), rgb(0,0,255))
}

Troubleshooting

Problem Lösung
DIV mit Hintergrundfarbe wird nur teilweise gefüllt - ein Teil des DIVs hat keien Hintergrundfarbe (bzw. die der dahinter liegenden Seite) Wahrscheinlich wurde die Länge (Parameter length) des DIV fest definiert. Der Text im DIV ist aber länger als diese Angabe.

Es wird nur in length angegebene Teil eingefärbt.


Zweite Möglichkeit: Es wurde kein display:block angegeben.
Notwendig da DIV ein inline-Element ist und somit an sich keine Breite und Höhe haben kann (und damit auch keine Farbe, weil das eine Eigenschaft eines Bereiches/Block ist)
DIV wird gar nicht mit Farbe gefülltdisplay:block und/oder width und height nicht angegeben.

display:block ist notwendig um aus dem Inline-Element DIV ein Block-Element zu machen.
height und width müssen angegeben werden, können aber auf auto gesetzt werden