Was ist CSS?
CSS steht für Cascading Style Sheets und ist die Technologie, die Webseiten visuellen Stil verleiht.
Während HTML die Struktur und den Inhalt einer Webseite bereitstellt, kümmert sich CSS um das Aussehen dieser Elemente. Mit CSS kannst du Farben, Schriftarten, Abstände, Layouts, Animationen und mehr definieren.
CSS folgt einer einfachen regelbasierten Syntax, die es dir ermöglicht, HTML-Elemente auszuwählen und visuelle Eigenschaften auf sie anzuwenden.
1. CSS-Selektoren
CSS-Selektoren sind Muster, die verwendet werden, um HTML-Elemente auszuwählen und zu gestalten. Der Selektor teilt dem Browser mit, welche Elemente von den Gestaltungsregeln betroffen sein sollen.
selektor {
eigenschaft: wert;
andere-eigenschaft: anderer-wert;
}
Hier sind einige der wichtigsten CSS-Selektoren:
element- Wählt alle Elemente des angegebenen Typs aus (z.B. wähltpalle Absätze aus)#id- Wählt ein Element mit einer bestimmten ID aus (z.B.#header).class- Wählt alle Elemente mit einer bestimmten Klasse aus (z.B..content-box)element.class- Wählt nur Elemente des angegebenen Typs mit der Klasse aus (z.B.p.intro)parent > child- Wählt direkte Kinder eines Elternelements auselement1, element2- Wählt mehrere Elemente auselement[attribute]- Wählt Elemente mit einem bestimmten Attribut aus:hover- Wählt Elemente aus, wenn du mit der Maus darüberfährst
Selektoren können kombiniert werden, um spezifischere Auswahlmuster zu erstellen. Je spezifischer ein Selektor ist, desto höher ist seine Priorität in der "Kaskade".
2. CSS-Eigenschaften
CSS-Eigenschaften definieren, wie ausgewählte HTML-Elemente angezeigt werden sollen. Jede Eigenschaft hat eine Reihe gültiger Werte und beeinflusst verschiedene Aspekte des Erscheinungsbilds eines Elements.
Hier sind einige wesentliche CSS-Eigenschaften nach Funktion kategorisiert:
Textstyling
color- Legt die Textfarbe festfont-family- Bestimmt die Schriftartfont-size- Legt die Textgröße festfont-weight- Steuert die Textstärketext-align- Richtet Text aus (links, rechts, zentriert, Blocksatz)text-decoration- Fügt Unterstreichungen, Überstreichungen usw. hinzu
Box-Modell-Eigenschaften
width&height- Legen die Elementabmessungen festpadding- Innenabstand des Elements, zwischen Inhalt und Randborder- Der Umriss um ein Elementmargin- Außenabstand des Elements, zwischen dem Rand und anderen Elementen
Layout-Eigenschaften
display- Steuert, wie ein Element angezeigt wird (block, inline, flex, grid usw.)position- Legt die Positionierungsmethode fest (static, relative, absolute, fixed)float- Erlaubt Elementen, nach links oder rechts zu fließenz-index- Steuert die Stapelreihenfolge positionierter Elemente
Visuelle Eigenschaften
background-color- Legt die Hintergrundfarbe festbackground-image- Fügt ein Hintergrundbild hinzuopacity- Steuert die Transparenz des Elementsbox-shadow- Fügt Schatteneffekte hinzuborder-radius- Erzeugt abgerundete Ecken
.modern-button {
background-color: #ffffff; /* Hintergrundfarbe */
color: #333333; /* Textfarbe */
padding: 12px 24px; /* Innenabstand */
border: 1px solid #e0e0e0; /* Rand */
border-radius: 4px; /* Abgerundete Ecken */
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Schatten */
font-family: 'Inter', sans-serif; /* Schriftart */
font-weight: 500; /* Schriftstärke */
transition: all 0.2s ease; /* Übergang für Hover-Effekt */
}
.modern-button:hover {
background-color: #f8f8f8; /* Hintergrundfarbe beim Hover */
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Schatten beim Hover */
}
3. Das CSS Box-Modell
Das CSS Box-Modell ist ein grundlegendes Konzept, das beschreibt, wie Elemente im Browser dargestellt werden. Jedes HTML-Element wird als rechteckige Box behandelt, die aus Inhalts-, Innenabstands-, Rand- und Außenabstandsbereichen besteht.
- Inhalt (Content): Der tatsächliche Inhalt des Elements (Text, Bilder usw.)
- Innenabstand (Padding): Raum zwischen dem Inhalt und dem Rand
- Rand (Border): Linie, die den Innenabstand und den Inhalt umgibt
- Außenabstand (Margin): Raum außerhalb des Elements, der es von anderen Elementen trennt
Standardmäßig definieren die Eigenschaften width und height in CSS nur die Größe des Inhaltsbereichs. Das bedeutet, dass Innenabstand (Padding) und Rand (Border) zur Gesamtbreite und -höhe des Elements hinzugefügt werden.
.default-box {
width: 300px;
height: 150px;
padding: 20px;
border: 1px solid #e0e0e0;
margin: 15px;
/* Gesamtbreite: 300px (Inhalt) + 40px (Padding) + 2px (Border) = 342px */
}
.alternative-box {
box-sizing: border-box; /* Ändert, wie Breite und Höhe berechnet werden */
width: 300px;
height: 150px;
padding: 20px;
border: 1px solid #e0e0e0;
margin: 15px;
/* Gesamtbreite: 300px (beinhaltet Inhalt, Padding und Border) */
}
Die Eigenschaft box-sizing: border-box; ändert dieses Verhalten, indem sie Innenabstand (Padding) und Rand (Border) in die angegebene Breite und Höhe des Elements einschließt. Dies erleichtert das Erstellen von Layouts, ohne ständig die Gesamtabmessungen berechnen zu müssen.
4. Responsives Design
Responsives Design ist ein Ansatz zur Erstellung von Websites, die auf jedem Gerät, unabhängig von der Bildschirmgröße, gut aussehen und funktionieren. Dies ist in der heutigen Welt mit vielen verschiedenen Geräten unerlässlich.
Schlüsselkomponenten des responsiven Designs:
Media Queries
Media Queries ermöglichen es dir, unterschiedliche CSS-Regeln basierend auf Bildschirmeigenschaften anzuwenden:
/* Basisstile für alle Bildschirmgrößen */
.container {
width: 100%;
padding: 15px;
}
/* Stile für Bildschirme breiter als 768px */
@media screen and (min-width: 768px) {
.container {
width: 750px;
margin: 0 auto; /* Zentriert den Container */
}
}
/* Stile für Bildschirme breiter als 1200px */
@media screen and (min-width: 1200px) {
.container {
width: 1170px;
}
}
Flexible Grids (Raster)
Modernes CSS bietet leistungsstarke Layoutsysteme wie Flexbox und Grid, die responsives Design erleichtern:
/* Flexbox Beispiel */
.flex-container {
display: flex;
flex-wrap: wrap; /* Erlaubt Umbruch */
}
.flex-item {
flex: 1 1 300px; /* Wachsen, Schrumpfen, Basisbreite */
margin: 10px;
}
/* Grid Beispiel */
.grid-container {
display: grid;
/* Erstellt Spalten, die sich automatisch anpassen, min. 250px breit */
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
gap: 20px; /* Abstand zwischen Grid-Elementen */
}
Responsive Einheiten
Die Verwendung relativer Einheiten anstelle von festen Pixeln hilft beim responsiven Design:
%- Relativ zum Elternelementem- Relativ zur Schriftgröße des Elementsrem- Relativ zur Schriftgröße des Wurzelelements (html)vw- Viewport-Breite (1vw = 1% der Viewport-Breite)vh- Viewport-Höhe (1vh = 1% der Viewport-Höhe)
Responsives Design bedeutet nicht nur das Anpassen von Layouts; es beinhaltet auch Überlegungen zu Touch-Oberflächen, variablen Verbindungsgeschwindigkeiten und unterschiedlichen Gerätefähigkeiten.