6.1 Die Eigenschaft content
Die Pseudoelemente ::before und ::after ermöglichen es, Inhalte vor und nach dem Inhalt eines Elements hinzuzufügen, ohne den HTML-Code zu verändern. Sie werden oft für dekorative Zwecke, die Verbesserung der Benutzeroberfläche und die Erstellung interaktiverer Webseiten verwendet.
Was sind ::before und ::after Pseudoelemente?
Die Pseudoelemente ::before und ::after erzeugen virtuelle Elemente, die entsprechend vor und nach dem Inhalt des ausgewählten Elements eingefügt werden. Diese Pseudoelemente werden häufig verwendet, um Icons, dekorative Elemente oder andere visuelle Effekte hinzuzufügen.
Syntax von before:
selektor::before {
content: "Text oder andere Werte";
/* Styles */
}
Syntax von after:
selektor::after {
content: "Text oder andere Werte";
/* Styles */
}
Die Eigenschaft content
Die Schlüssel-Eigenschaft für die Pseudoelemente ::before und ::after ist content. Diese Eigenschaft definiert den Inhalt des Pseudoelements. Es kann ein Textstring, ein Bild oder sogar ein leerer Wert sein, wenn nur ein visueller Effekt benötigt wird.
Mögliche Werte der content-Eigenschaft:
- Text:
"Text" - Bild:
url("path/to/image.png") - Leerer Wert:
"" - Attribute:
attr(attributeName) - Zähler:
counter(name)
6.2 Beispiele für die Verwendung von ::before und ::after
Hinzufügen dekorativer Elemente
Beispiel 1: Hinzufügen eines Icons vor Text
In diesem Beispiel wird das Pseudoelement ::before verwendet, um ein Icon vor den Text eines Links hinzuzufügen. margin-right fügt Platz zwischen dem Icon und dem Text ein:
/* Hinzufügen eines Icons vor Text eines Links */
a::before {
content: "🔗";
margin-right: 5px;
}
Beispiel 2: Hinzufügen eines dekorativen Elements nach einem Absatz
In diesem Beispiel fügt das Pseudoelement ::after ein dekoratives Element nach einem Absatz hinzu. display: block und text-align: right werden verwendet, um das Element rechts auszurichten:
/* Hinzufügen eines dekorativen Elements nach einem Absatz */
p::after {
content: "❦";
display: block;
text-align: right;
color: red;
}
Erstellen dekorativer Rahmen und Hintergründe
Beispiel 3: Dekorativer Rahmen um ein Element
In diesem Beispiel wird das Pseudoelement ::before verwendet, um einen dekorativen Streifen über dem Element div zu erstellen. position: absolute und top: -10px positionieren den Streifen über dem Element:
/* Dekorativer Rahmen um ein Element */
div::before {
content: "";
display: block;
width: 100%;
height: 10px;
background-color: #3498db;
position: absolute;
top: -10px;
left: 0;
}
Beispiel 4: Automatisches Hinzufügen von Anführungszeichen
In diesem Beispiel werden die Pseudoelemente ::before und ::after verwendet, um Anführungszeichen um einen Zitatblock hinzuzufügen:
/* Automatisches Hinzufügen von Anführungszeichen um ein Zitat */
blockquote::before {
content: "“";
font-size: 2em;
color: #ccc;
}
blockquote::after {
content: "”";
font-size: 2em;
color: #ccc;
}
Beispiel 5: Nummerierung der Überschriften
In diesem Beispiel wird das Pseudoelement ::before verwendet, um eine Nummer vor der Überschrift h2 hinzuzufügen. counter-increment erhöht den Zählerwert, und content: counter(section) fügt den aktuellen Zählerwert ein:
/* Nummerierung der Überschriften */
h2::before {
counter-increment: section;
content: counter(section) ". ";
font-weight: bold;
}
6.3 Anwendung und Stil von Pseudoelementen
Styling von Pseudoelementen
Pseudoelemente können wie andere Elemente gestylt werden. Sie unterstützen die meisten CSS-Eigenschaften, einschließlich Farbe, Hintergrund, Ränder, Größe und Positionierung.
Verwendung von Pseudoelementen für komplexe Layouts
Pseudoelemente werden oft verwendet, um dekorative Elemente in Layouts zu erstellen, wie Rahmen, Schatten und andere visuelle Effekte, ohne zusätzliche HTML-Elemente hinzuzufügen.
Beispiel: Jedes Listenelement hat einen blauen Marker vor dem Text:
ul li::before {
content: "•";
color: blue;
margin-right: 5px;
}
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
6.4 Vollständige Implementierung
/* Hinzufügen eines Icons vor Text eines Links */
a::before {
content: "🔗";
margin-right: 5px;
}
/* Hinzufügen eines dekorativen Elements nach einem Absatz */
p::after {
content: "❦";
display: block;
text-align: right;
color: red;
}
/* Dekorativer Rahmen um ein Element */
.decorative-box {
position: relative;
}
.decorative-box::before {
content: "";
display: block;
width: 100%;
height: 10px;
background-color: #3498db;
position: absolute;
top: -10px;
left: 0;
}
/* Automatisches Hinzufügen von Anführungszeichen um ein Zitat */
blockquote::before {
content: "“";
font-size: 2em;
color: #ccc;
}
blockquote::after {
content: "”";
font-size: 2em;
color: #ccc;
}
/* Nummerierung der Überschriften */
h2::before {
counter-increment: section;
content: counter(section) ". ";
font-weight: bold;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Beispiel für die Pseudoelemente ::before und ::after</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<a href="#">Link mit Icon</a>
<p>Absatz mit dekorativem Element dahinter</p>
<div class="decorative-box">Element mit dekorativem Rahmen</div>
<blockquote>Zitat mit automatischen Anführungszeichen</blockquote>
<h2>Überschrift mit Nummerierung</h2>
<h2>Noch eine Überschrift</h2>
</body>
</html>
GO TO FULL VERSION