<ol>
<li>Eins</li>
<li>Zwei</li>
<li id="drei">Drei</li>
<li>Vier</li>
<li>Fünf</li>
<li id="sechs">Sechs</li>
<li>Sieben</li>
</ol>
>
> Der obige Code ergibt zwar noch nicht viel Sinn, er soll nur demonstrieren, dass ich bis Sieben zählen kann. ;-)
> So, und jetzt denk mal drüber nach, auf welche Elemente die CSS-Selektoren `ol #drei`{:.language-css} und `ol #sechs`{:.language-css} passen. Klar soweit? - Und nun gib in Gedanken dem ol-Element noch die Klasse "alternate". Auf welche Elemente passt nun `ol.alternate #drei`{:.language-css}, auf welche `ol.alternate #sechs`{:.language-css}? Natürlich passt das erstgenannte Pärchen immer noch, dessen Definitionen können aber durch das zweite, spezifischere Pärchen überschrieben werden.
>
Ja, das verstehe ich.
Nachteil ist aber doch, dass ich zuvor die Selektore #frei und #sechs zum Attribut ol vorher in meiner CSS-Datei definieren müsste.
Unabhängig davon, dass ich also vorher wissen müsste, welche Selektoren jemals benutzt werden würden, wäre ich auch durch diese "Vorabauswahl" beschränkt, oder nicht?
Konkret geht es um eine dynamisch erstellte (theoretisch unendlich lange) Liste mit Eindträgen, die über ein onclick-Event einen zusätzlichen Eintrag erhalten können. Die ID, die die Listenelemente erhalten, ist aus einer DB und wird dort über autoincrement erzeugt.
> Wenn also das HTML sinnvoll strukturiert ist, wirst du fast immer eine Kombination von Selektoren finden, mit denen die gewünschten Elemente (und nur die) eindeutig selektiert werden können.
Es müsste aber die ID aus der db sein. Und ich kann doch meine CSS-Definitionen nicht unendlich lang machen?
Oder habe ich da doch noch einen kleinen Denkfehler, was Deine Erklärung angeht?
Heinz