Ich möchte sowohl die h2 als auch die Verbindung weiß machen, das ist einfach genug, aber ich habe auch eine andere Art von Block, der außerhalb der Überlagerung existiert, wo ich möchte, dass eine h2 weiß ist ... was ist der beste Weg, um das zu tun?
Für Ihren speziellen Fall, es klingt wie der beste Weg wäre, den Code zu schreiben:
// in overlay.css/.less/.scss/etc...
.overlay__title,
.overlay__text{
color: white;
}
// in otherBlock.css/.less/.scss/etc...
.otherBlock__title{
color: white;
}
Welche seltsam vertraut aussieht.
Um zu erklären, warum, nehmen wir einen Schritt weg von CSS und schauen uns an, wie andere Programmiersprachen funktionieren.
Stellen Sie sich vor, Sie haben ein Objekt in einer OOP-Sprache, z. Das Buchobjekt wird wahrscheinlich eine title
(e.x.Per Anhalter durch die Galaxis):
class Book {
string Title { get; set; }
}
Nun stell dir vor, dass Sie jetzt ein Objekt erstellen, die eine Person darstellt. Die Person, Objekt auch braucht einen title
(e.x. Dr.):
class Person {
string Title { get; set; }
}
Zwischen diesen beiden Klassen gibt es keine Vererbungsstruktur. Dies bedeutet, dass es einige Code geben wird, der trotz Ähnlichkeit neu geschrieben werden muss.
zurück zu CSS gehen, diese beiden Blöcke passieren einige ähnliche Arten haben. Sie haben keine Art von Beziehung zwischen den beiden beschrieben, die sie für die Wiederverwendung von Code nutzen sollten, also kopieren Sie einfach die Stile.
Wenn Sie einen Prä-Prozessor verwenden, können Sie feststellen, dass es — für Stücke von wieder verwendbaren Arten — besonders — und Mixins für Farben — Variablen zu verwenden, besonders nützlich ist die Menge an Code des CSS Sie tatsächlich schreiben, aber am Ende zu reduzieren wird mäßig repetitiv sein.
Das ist in Ordnung. Wenn Ihr CSS gezippt wird, wird die Duplizierung ziemlich gut komprimiert.
... aber was ist mit anderen Fällen?
Wenn Sie feststellen, dass Sie ständig einen bestimmten Satz von Arten überschreiben (.body__text
, .content__text
, .description__text
), und sie beziehen sich alle auf das gleiche Element (ex <p>
), dann betrachten Sie Ihre Standardstile für dieses Element Aktualisierung der reduzieren Menge an CSS, mit der Sie das Element überschreiben.
Wenn Sie feststellen, dass Sie die gleiche bestimmte Struktur in vorhandenen Blöcken ständig neu erstellen, müssen Sie möglicherweise einen neuen Block erstellen. Zum Beispiel:
<div class="article">
<time class="timestamp">
<span class="timestamp__date">...</span>
<span class="timestamp__time">...</span>
</time>
...
</div>
und
<div class="post">
<time class="timestamp">
<span class="timestamp__date">...</span>
<span class="timestamp__time">...</span>
</time>
...
</div>
:
<div class="article">
<time class="article__timestamp">
<span class="article__date">...</span>
<span class="article__time">...</span>
</time>
...
</div>
und
<div class="post">
<time class="post__timestamp">
<span class="post__date">...</span>
<span class="post__time">...</span>
</time>
...
</div>
könnte Refactoring