HTML/CSS einzelne Eigenschaft aus einer CSS-Klasse überschreiben?

...komplette Frage anzeigen

5 Antworten

Zunächst versucht man alle Eigeschaften mit sowenig Id's und Klassen, wie möglich zuzusortieren.

D.h. die Schriftgröße, Schriftarbe usw. so sie für die ganze Seite gilt wird für den body defininiert.

Danach verwendet man vorzugsweise Klassen. Allerdings nur wenn nötig! Wenn ich möchte dass alle Aufzählungen auf meiner Seite auf eine bestimmte Art und Weise dargestellt werden, dann kann ich die Einstellungen auch direkt für ul und li definieren.

In deinem Beispiel würde ich vermutlich den beiden "Containern" die Klasse container verpassen und dazu jeweils eine Id. Für die Id würde ich dann die Hintergrundfarbe definieren und den Rest, der gleich ist in der Klasse.

Und ja man kann einem Element auch mehreren Klassen zuordnen, aber auch das sollte man so "wenig wie möglich" verwenden.

Übrigens, wenn Du Dich erst seit heute mit CSS beschäftigst wäre es ggf. sinnvoll erstmal ein Tutorial abzuarbeiten.

Das blöde dabei ist ich kann das HTML-Element keiner id zuordnen sondern bin gezwungen stattdessen Klassen zu verwenden und noch viel schlimmer Ich muss auf die Reihenfolge achten, wie ich in der CSS-Datei auf die Reihenfolge achten.

Wieso kannst Du keine Id zuordnen? Wer zwingt Dich?

Ja die Reihenfolge ist nicht unerheblich. Ein bisschen mehr Geduld ist schon gefragt!

Na ja, ein paar Einschränkungen für Ausklammerungstechniken liegen bei CSS schon vor. Es ist bei weitem nicht so flexibel wie eine übliche "richtige" Programmiersprache.

Die Vereinfachungen bei CSS gehen immer über

a) hierarchische Organisation

b) Aufteilung in und Kombination von Klassen

Wenn Du flexibler werden möchtest, kannst Du CSS dynamisch erzeugen lassen (auf Serverseite mittels der von Dir auf dem Server verwendeten Programmiersprache oder auf Browserseite mittels Javascript).

Ok -> ich hab jetzt selbst eine mögliche Lösung gefunden.

Man kann ja einfach mehrere Klassen für ein HTML-Element verwenden.

* Gibt es denn noch eine Alternative? * Das blöde dabei ist ich kann das HTML-Element keiner id zuordnen sondern bin gezwungen stattdessen Klassen zu verwenden und noch viel schlimmer -> Ich muss auf die Reihenfolge achten, wie ich in der CSS-Datei auf die Reihenfolge achten.

Kann man z.B in einer CSS-Klasse eine andere CSS-Klasse aufrufen o.ä?

Wie schon erwähnt, Du solltest Klassen statt IDs defenieren: .navigation{ ... }

Dann:

<_div id="eins" class="navigation" <_/div>

Da man StyleSheet in HTML-Element defenieren kann, würde ich denken, dass so eine Eigenschaft der Klasse geändert werden kann:

<_div id="zwei" class="navigation" style="background-color:blue;"> <_/div>

Du hast in deinem CSS Angaben für das Element mit der ID „navigation“ gemacht. Eine ID kann in einem HTML-Dokument nur einmal vergeben werden (ID = eindeutig). Wenn du mehrere Elemente mit den gleichen Eigenschaften definieren willst, dann nimmt man Klassen dafür:

CSS:

.navigation {
…
}

HTML:

<div class="navigation">…</div>
<div class="navigation">…</div>

Zusätzlich kannst du aber auch noch IDs vergeben:

CSS:

.navigation {…}
#eins {…}
#zwei {…}

HTML:

<div id="eins" class="navigation">…</div>
<div id="zwei" class="navigation">…</div>

IDs haben eine höhere Wertigkeit (Spezifität) und bei gleichen Angaben in der Klasse und der ID gewinnt die ID. Beispiel:

CSS:

#eins {color:red}
.navigation {color:green}

HTML:

<div id="eins" class="navigation">…</div>
<div id="zwei" class="navigation">…</div>

Das erste DIV ist rot das zweite grün.

Zusätzlich gibt es dann noch Vererbungen, wo Elemente die Eigenschaften der übergeordneten Elemente erben:

CSS:

.ebene1 {color:red}
.ebene2 {font-weight:bold}

HTML:

<span class="ebene1">
  <span class="ebene2">Text</span>
</span>

Der Text ist rot und fett geschrieben.

Das ist nur ein kleiner Anfang aber hilft vielleicht schon mal weiter.

Was möchtest Du wissen?