Pseudoklassen
Über sogenannte Pseudoklassen können CSS-Regeln definiert werden, die auf bestimmte Zustände von HTML-Elementen reagieren.
Beispielsweise wenn ein Element besonders formatiert werden soll, wenn es mit der Maus berührt wird (:hover), oder wenn ein Element das erste Element einer Liste ist (:first-child).
Diese Pseudoklassen starten immer mit einem Doppelpunkt : und werden an den Selektor angehängt.
a {
color: blue;
&:hover {
color: orange;
}
}
In diesem Beispiel wird die Schriftfarbe aller Links (a-Elemente) auf Blau gesetzt. Wenn ein Link mit der Maus berührt wird (:hover), ändert sich die Schriftfarbe zu Orange.
&&-Zeichen im obigen Beispiel steht für eine Ergänzung des aktuellen Selektors, in diesem Fall also a.Das obige Beispiel könnte also auch wie folgt geschrieben werden:a {
color: blue;
}
a:hover {
color: orange;
}
Web-Dokumente ermöglichen, im Unterschied zu gedruckten Dokumenten, Intergaktionen mit den Betrachter:innen.
Beispiele
<h3>Meine Qualifikationen</h3>
<ul>
<li>HTML</li>
<li>CSS</li>
<li>JavaScript</li>
<li>Markdown</li>
<li>React</li>
<li>TypeScript</li>
</ul>
li {
color: darkblue;
&:hover {
background-color: lightgray;
}
}
Mit :hover wird der Hintergrund des Listenelements auf lightgray gesetzt, wenn die Maus über das Element fährt.
li {
color: darkblue;
transition-duration: 0.5s;
&:hover {
color: orange;
list-style-type: square;
transform: scale(1.2);
}
}
Mit :hover wird das entsprechende Listenelement
- orange eingefärbt
- das Listensymbol auf ein Quadrat (
square) gesetzt - alles um den Faktor 1.2 vergrössert.
Damit die Änderung nicht abrupt geschieht, wird mit transition-duration die Übergangszeit festgelegt.
li {
color: darkblue;
&:first-child {
color: orange;
}
&:nth-child(2n) {
background-color: whitesmoke;
}
&:last-child {
color: green;
}
}
- Die Standardfarbe für Listenelemente ist
darkblue. - Das erste Element (
:first-child) wird inorangedargestellt. - Jedes zweite Element (
:nth-child(2n)) bekommt einen Hintergrund vonwhitesmoke. - Das letzte Element (
:last-child) wird ingründargestellt.
Aufgaben
Ergänzen Sie die CSS-Regeln, so dass folgende Anforderungen erfüllt werden:
<html>
<head>
<style>
main {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin: 10px;
padding: 10px;
width: 140px;
height: 140px;
border: 1px solid black;
div {
width: 40px;
height: 40px;
background-color: lightgray;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition-duration: 0.5s;
}
}
</style>
</head>
<body>
<main>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
</main>
</body>
</html>
Stellen Sie den 👉 Steckbrief aus dem vorherigen Kapitel fertig, bevor Sie hier fortfahren.
- Individualisieren Sie den Steckbrief des vorherigen Kapitels inhaltlich auf Ihre Person (Steckbrief unten eingefügt). Das Bild können Sie vorerst als Platzhalter beibehalten und dann später durch ein eigenes Bild ersetzen.
- Fügen Sie mit CSS-Pseudoklassen interaktive Effekte hinzu, z.B.:
- Ändern der Hintergrundfarbe, wenn die Maus über den Steckbrief fährt.
- Vergrössern des Bildes, wenn die Maus darüber fährt.
- Ändern der Schriftfarbe der Überschriften, wenn diese mit der Maus berührt werden.
- Laden Sie den fertigen Steckbrief herunter und fügen Sie nun ein persönliches Bild ein (lesen Sie im Kapitel "HTML Links" nach, wie Sie lokale Bilder einbinden können).
<html>
<head>
<style>
</style>
</head>
<body>
<header>
<img src="https://randomuser.me/api/portraits/women/44.jpg" alt="Maria Grünfelder">
<div>
<h1>Maria Grünfelder</h1>
<address>
<div>maria.gruenfelder@email.com</div>
<div>Biel, Schweiz</div>
<div>+41 32 123 4567</div>
</address>
</div>
</header>
<main>
<div>
<h2>About Me</h2>
<p>Innovative software developer with 8+ years of experience in full stack development, passionate about building impactful products, and strong advocate for diversity in tech.</p>
</div>
<div>
<h2>Experience</h2>
<ol>
<li>
<strong>Senior Software Engineer</strong> ExampleCorp (2021–Present)
<ul>
<li>Lead a team of 6 in developing scalable web applications.</li>
<li>Mentored junior developers and organized regular code review sessions.</li>
</ul>
</li>
<li>
<strong>Software Developer</strong> WebSoft AG (2016–2021)
<ul>
<li>Developed and maintained client-facing platforms using React and Node.js.</li>
<li>Implemented CI/CD pipelines and improved deployment workflows.</li>
</ul>
</li>
</ol>
</div>
<div>
<h2>Education</h2>
<ol>
<li>
<strong>M.Sc. Computer Science</strong> Technische Universität Berlin (2014–2016)
</li>
<li>
<strong>B.Sc. Computer Science</strong> Technische Universität Berlin (2010–2014)
</li>
</ol>
</div>
<div>
<h2>Skills</h2>
<ul>
<li>HTML & CSS</li>
<li>JavaScript (ES6+)</li>
<li>React, Vue.js</li>
<li>Node.js</li>
<li>SQL, MongoDB</li>
<li>CI/CD, Git</li>
<li>Unit & Integration Testing</li>
</ul>
</div>
<div>
<h2>Certifications</h2>
<ul>
<li>AWS Certified Solutions Architect – Associate</li>
<li>Scrum Master (PSM I)</li>
</ul>
</div>
<div>
<h2>Languages</h2>
<ul>
<li>German (native)</li>
<li>English (fluent)</li>
<li>French (intermediate)</li>
</ul>
</div>
<div>
<h2>Hobbies</h2>
<ul>
<li>Rock Climbing</li>
<li>Photography</li>
<li>Travel</li>
<li>Volunteering at coding workshops</li>
</ul>
</div>
<div>
<h2>Fun Facts</h2>
<ul>
<li>Completed the Berlin Marathon twice</li>
<li>Proud owner of a rescue dog named Pixel</li>
<li>Sings in a jazz band</li>
</ul>
</div>
<div>
<h2>References</h2>
<p>Available upon request</p>
</div>
</main>
</body>
</html>