Wann nutze ich id's und wann class?
Ich nutzte sie so, wie es deren Bedeutung auch nahelegt:
ID => Einmalig im Dokument. Elemente, die man direkt im CSS oder komfortabler in JS ansprechen möchte.
Klassen => Elemente, die an verschiedenen Stellen im Dokument vorkommen (können), die aber einheitlich im CSS gestyled, oder gruppiert im JS angesprochen werden sollen.
Elementen, die man sehr einfach mit CSS-Selektoren ansprechen kann (z.B. direkte Kindelemente einer ID oder des body-Körpers) gebe ich nichts.
Für eine Section, ein einzelnes sich nicht wiederholendes Element. Etwas das nur einmal vorkommt, verwendet man "id" .
Es geht nicht um "sich nicht wiederholendes Element" an sich. Gerade einmalige Sachen in einem Dokument brauchen oft keine ID.
Eine ID sollte man vergeben, wenn man das entsprechende Element, und bequem auch direkt die Kindelemente ansprechen möchte/muss.
In einem Bereich mit mehreren Sections, die jeweils einen eigenen "Abschnitt" repräsentieren und die man dann natürlich entsprechend ansprechen will, ist eine Id gut genutzt.
Innerhalb der "id" verwendet man zb id="top" dann #top>ul>li und #top>ul>li>hover.
Kann man, muss man aber nicht. Wenn man aber auch die Kindelemente ansprechen will, wie in deinem Beispiel, dann ist eine ID natürlich sehr sinnvoll!
Eine class wird einmal definiert und greift wo sie im HTML angesprochen wird.
Eine Klasse gibst du jedem Element, das du gleich ensprechen / manipulieren willst.
Man könnte eine Klasse auch "anders" nutzen.
Zum Beispiel gibt es auch Leute, die einmalige Abschnitte wie folgende:
<main>
<section></section>
<section></section>
<section></section>
</main>
lieber mit Klassen anstatt Id's versehen, einfach nur, weil sie es im CSS schöner finden, die Elemente so anzusprechen:
main>.klasseX
main>.klasseY
main>.klasseZ
Ich nutze es auch manchmal, allerdings nur in entsprechend für mich sinnvollen / schönen Stellen, wo eine ID keinen Sinn machen würde, ich das Element (meist Kindelement einer ID) aber trotzdem "namentlich" direkter ansprechen möchte...
Doch wieso musste ich in der section about ".about-text" als klasse angeben?
Wie kommst du darauf, dass du es musst?