Nehmen wir an, Sie benötigen sechs verschiedene 100px quadratische Boxen mit unterschiedlichen Eigenschaften
- Rot mit Rahmen
- Blau mit Rahmen
- Grün mit Rahmen
- Rot ohne Rahmen
- Blau ohne Rahmen
- Grün ohne Rahmen

Sie KÖNNTEN für jede dieser Optionen eine eindeutige Klasse erstellen, wie folgt:
.redwithborder {
width: 100px;
height: 100px;
margin: 10px;
float: left;
background-color: red;
border: 3px solid black;
}
.bluewithborder {
width: 100px;
height: 100px;
margin: 10px;
float: left;
background-color: blue;
border: 3px solid black;
}
...etc
ABER das nennt man CSS-Bloat, weil es eine Menge unnötigen repetitiven Code enthält. Erstellen Sie stattdessen nur fünf Klassen mit einfachen, identifizierbaren Namen, die jeweils etwas sehr Spezifisches handhaben.
.box {
width: 100px;
height: 100px;
margin: 10px;
float: left;
}
.red {
background-color: red;
}
.blue {
background-color: blue;
}
.green {
background-color: green;
}
.border {
border: 3px solid black;
}
In Ihrem HTML sehen die Dinge genauso sauber aus, fügen Sie einfach ein Leerzeichen zwischen jeder der Klassen ein, die Sie auf das Div anwenden möchten.
<div class="red border box">
</div>
<div class="blue border box">
</div>
<div class="green border box">
</div>
<div class="red box">
</div>
<div class="blue box">
</div>
<div class="green box">
</div>
Diese Methode ermöglicht auch eine bessere zukünftige Flexibilität. Wenn Sie eine orangefarbene Box erstellen möchten, oder sogar eine Box mit einem Hintergrundbild oder einer völlig separaten Eigenschaft, könnten Sie das tun. Und dann ist das Hinzufügen eines Rahmens zu dieser neuen Box ein einfaches Hinzufügen eines Leerzeichens und des Klassennamens "border".
Unterstützt IE6 oder niedriger wirklich mehrere Klassen? Ich bin mir nicht sicher. Kann jemand antworten?
IE 6 unterstützt mehrere Klassen. Ryan Brill hat eine gute Erklärung dazu.
Grundsätzlich, wenn Sie in Ihrem CSS deklarieren möchten #div.box.featured {
# background-color: #f5fbea;} IE 6 würde "box" nicht verstehen und den Stil auf jedes Div mit der Klasse "featured" anwenden, nicht nur auf Divs mit den Klassen "box" und "featured". Eine gewisse Einschränkung, aber wirklich keine große Sache.
Erlaubt IE6 nicht trotzdem Klassen und IDs??
Wenn ja, könnten Sie rot, grün usw. als ID verwenden (wenn nur einmal verwendet)
IE6 unterstützt sowohl Klassen als auch IDs. Das ist eine gute Idee, sie so zu trennen. Persönlich würde ich IDs für sehr einzigartige Dinge reservieren, von denen Sie wissen, dass Sie sie nur einmal auf einer Seite verwenden werden, wie zum Beispiel eine Fußzeile.
Das ist vielleicht der beste CSS-Artikel, den ich je gelesen habe! Wenn man die Dinge auf diese Weise macht, wird der Code wirklich klarer und wiederverwendbarer.
Eine Frage, wie beeinflusst die Reihenfolge der Klassen das Ergebnis, wenn überhaupt?
Zum Beispiel, könnte
anders sein als zum Beispiel<div class="class_a class_b" >
<div class="class_b class_a">Danke!