mirror of
https://github.com/TheTaz25/denis.ergin.git
synced 2025-07-06 13:18:49 +00:00
137 lines
No EOL
4.6 KiB
Text
137 lines
No EOL
4.6 KiB
Text
<section>
|
|
<section>
|
|
<h2>Nur bestimmte Elemente stylen - <code>Selektoren</code></h2>
|
|
</section>
|
|
|
|
<section>
|
|
<p>Bisher haben wir gesehen, wie wir Styles einbinden können, ein paar erste "Grundregeln" denen CSS folgt und wie wir Textfarbe mit <span style="color: hotpink;">color</span> ändern können.</p>
|
|
</section>
|
|
|
|
<section>
|
|
<p>
|
|
Nun möchten wir näher betrachten, wie man Selektoren benutzt um nur bestimmte Elemente zu stylen.
|
|
</p>
|
|
</section>
|
|
|
|
<section>
|
|
<h3>Tags stylen</h3>
|
|
</section>
|
|
<section>
|
|
<p>
|
|
Die "einfachste" Anwedung von styles geschieht durch die Tag-Selektoren.
|
|
Wir können einfach schreiben, welches Tag gestyled werden soll. Style-Regeln werden dabei in geschweiften Klammer platziert
|
|
</p>
|
|
</section>
|
|
<section>
|
|
<pre class="css"><code data-trim data-line-numbers="1|2" is:raw>
|
|
span {
|
|
color: hotpink;
|
|
}
|
|
</code></pre>
|
|
<span style="color: hotpink;">Hallo Welt!</span>
|
|
</section>
|
|
|
|
<section>
|
|
<h3>Klassen & ID's</h3>
|
|
</section>
|
|
<section>
|
|
<p>Weitere gängige Werkzeuge für die Selektierung sind Klassen und ID's.</p>
|
|
<p>Klassen-Namen werden in CSS mit einem Punkt (<code>.</code>) prefixed.</p>
|
|
<p>ID's werden mit einem Hashtag (<code>#</code>) prefixed.</p>
|
|
</section>
|
|
<section>
|
|
<pre><code data-trim data-line-numbers="1-3|4-6|7-9" is:raw>
|
|
span {
|
|
color: hotpink;
|
|
}
|
|
span.meine-klasse {
|
|
color: coral;
|
|
}
|
|
span#meine-id {
|
|
color: brown;
|
|
}
|
|
</code></pre>
|
|
<div class="apply-style one">
|
|
<span>Ich bin nur ein Span!</span>
|
|
<br>
|
|
<span class="meine-klasse">Ich habe eine Klasse "<code>meine-klasse</code>"</span>
|
|
<br>
|
|
<span id="meine-id">Ich habe eine ID "<code>meine-id</code>"</span>
|
|
</div>
|
|
</section>
|
|
|
|
<section>
|
|
<h3>Spezifität</h3>
|
|
</section>
|
|
<section>
|
|
<p>Nun ein paar weitere Regeln: Eine ID ist spezifischer als eine Klasse ist spezfischer als ein Tag-Selektor</p>
|
|
</section>
|
|
<section>
|
|
<p>Es ist möglich, mehrere Klassen-Namen eines Elements zu selektieren:</p>
|
|
</section>
|
|
<section>
|
|
<pre><code data-trim data-line-numbers="1-3|4-6|7-9" is:raw>
|
|
span.eins {
|
|
color: blue;
|
|
}
|
|
span.eins.zwei {
|
|
color: green;
|
|
}
|
|
</code></pre>
|
|
<div class="apply-style two">
|
|
<span class="eins">Klase "eins"</span>
|
|
<br>
|
|
<span class="zwei">Klase "zwei"</span>
|
|
<br>
|
|
<span class="eins zwei">Klase "eins und zwei"</span>
|
|
</div>
|
|
</section>
|
|
<section>
|
|
<p>Weil das letzte <code>span</code> zwei "zutreffende" Klassen hat, hat dies mehr Gewicht (1 vs 2)</p>
|
|
<p>Zusätzlich ist nun der <code>span</code>-Selektor hinfällig: Da eine Klasse generell spezifischer wie ein Tag ist, wird der Tag-Selektor "überflüssig".</p>
|
|
</section>
|
|
<section>
|
|
<p>Dies trifft natürlich nicht in Situationen zu, in denen explizit ein bestimmtes Tag mit einer bestimmten Klasse gestyled werden soll.</p>
|
|
<p>In der Regel wird aber vermehrt einfach nur mit einer Klasse gestyled (auch hier wieder für die wiederverwendbarkeit).</p>
|
|
</section>
|
|
|
|
<section>
|
|
<p>Manchmal werden Klassen auch als Singulare "Modifikationen" auf Elemente "gepackt".</p>
|
|
<pre class="html"><code data-trim data-line-numbers>
|
|
<span class="bold">Fetter Text</span>
|
|
<span class="font-blue">Blauer Text</span>
|
|
<span class="font-blue bold">Blauer, fetter Text</span>
|
|
</code></pre>
|
|
<div class="apply-style three">
|
|
<span class="bold">Fetter Text</span>
|
|
<br>
|
|
<span class="font-blue">Blauer Text</span>
|
|
<br>
|
|
<span class="font-blue bold">Blauer, fetter Text</span>
|
|
<br>
|
|
</div>
|
|
</section>
|
|
|
|
<section>
|
|
<p>Es ist auch möglich beliebige Attribute eines HTML-Tags zu selektieren und zum stylen zu verwenden</p>
|
|
<pre class="css"><code data-trim data-line-numbers="1-5|6-10" is:raw>
|
|
<!-- "Zählt" sobald ein Element
|
|
dieses Attribut definiert hat -->
|
|
span[data-red] {
|
|
color: red;
|
|
}
|
|
<!-- "Zählt", sobald ein Element
|
|
das Attribut mit exaktem Wert hat -->
|
|
span[data-color="red"] {
|
|
color: red;
|
|
}
|
|
</code></pre>
|
|
</section>
|
|
|
|
<section>
|
|
<p>Was ist besser? Jedes Element speziell an seine Bedürfnisse stylen? Jedes Element mit Klassen "vollpacken" um den gewünschten Style zu erhalten?</p>
|
|
</section>
|
|
<section>
|
|
<p>Beide Wege sind valide und natürlich haben sich auch Systeme hierfür Entwickelt, die das ermöglichen. Trotzdem ist und bleibt die Entscheidung im Team bei den Entwicklern.</p>
|
|
</section>
|
|
</section> |