Verständnisfrage zu ID's und Klassen

  • Hallo zusammen,


    ich bin noch ziemlich neu bei diesem Thema und würde gerne einmal wissen ob ich das so richtig verstehe.


    Bei einer Klasse sagt man der Klasse wie sie das Design verändern soll. Ich gebe praktisch in einer Datei vor was die Klasse machen soll und wenn ich das Design dieser Klasse in einer anderen Datei benötige brauche ich nur .DieKlasse schreiben und nicht den kompletten Code.


    Eine ID nutzt man wenn man das Design nur bei der einen speziellen Stelle benötigt, z.B. beim Mobilen Logo. Dann beim Desktop Logo wieder eine eigene ID.


    Verstehe ich das so richtig oder ist dieser Ansatz komplett falsch?

    Ich habe mir schon ein paar Videos dazu angeschaut und auch in Google recherchiert, aber leider noch kein befriedigendes Ergebnis gefunden.

    Die einzige Aussage die ich übereinstimmend gehört und gelesen habe ist dass die selbe ID pro Seite nur einmal vorkommen darf und bei einer Klasse ist es egal.

    Aber ist das der einzige Unterschied? Wenn ja, dann liege ich mit einer Vermutung oben komplett daneben. Denke ich einfach zu kompliziert?


    Wo ist es denn eher Sinnvoll eine Klasse zu nehmen und wo eine ID?


    Grüße

  • Du liegst daneben.


    Klassen dienen in erster Linie dem Layout. Und zwar vollkommen egal, ob die nur an einer Stelle oder mehrfach verwendet werden.


    ID dienen dazu Elemente zu bestimmen, die aus sachlichen Gründen nur einmal vorhanden sein dürfen. Meist, wenn sie direkt verlinkt werden sollen. Ein Linkziel darf es auf einer Seite nur einmal geben. Kein Browser prüft, ob eine ID auf einer Seite mehrfach vergeben wurde. Das spielt keine Rolle.


    Heutzutage werden deshalb beispielsweise auch von Frameworks oder Content Management Systemen (CMS) im CSS nur Klassen verwendet. Das vereinfacht im Endeffekt die Verwendung von CSS.


    Viele Anwender bringen beim Vergleichen von Klassen und ID immer noch die Spezifität ins Spiel. Weil die Spezifität von ID höher ist als die von Klassen wird ID eine höhere Wichtigkeit zugeschrieben. Das ist zwar seit jeher falsch, wird aber teilweise immer noch wie ein Fetisch verteidigt. Für Google und Co. spielt die Spezifität überhaupt keine Rolle. Das Verstehen der Spezität erfordert häufig mehr Hintergrundwissen und Verständnis als viele Webseitenersteller aufbringen können. Die verteidigen ihre Meinung dann zwar aggressiv, aber immer ohne Belege - weil es halt keine gibt.


    Wenn du für das CSS immer Klassen verwendest und für Sprungziele immer ID liegst du immer richtig.