alex1234 hat geschrieben:Wollt euch ma fragen ob der Quelltext so korrekt wäre?
Ich finde, du hast das sehr ordentlich hinbekommen.
Du solltest allerdings die Absätze <div id="text_inhalt"> als echte Absätze gestalten, d.h. <p> nutzen. Weiterhin, oben schrieb es bereits jemand, ist das id-Attribut zum Ansprechen eines bestimmten, einzelnen Elements gedacht, die ID darf nicht mehrmals im HTML-Code benutzt werden. Möchtest du Eigenschaften auf viele Elemente verteilen, benutze Klassen. Ergo: <p class="text_inhalt"> statt <div id="text_inhalt">, sowie CSS-seitig entsprechend p.text_inhalt statt #text_inhalt.
Weiterhin ist #text_inhalt / #text_inhalt1 unklug gelöst:
Code: Alles auswählen
#text_inhalt {
padding-left:30px;
padding-right:30px;
font-size:0.8em;
font-family:Verdana;
}
#text_inhalt1 {
padding-left:30px;
padding-right:30px;
font-size:0.8em;
font-family:Verdana;
margin-top:10px;
}
#text_inhalt1 ist das Element, das auf <h2> folgt. #text_inhalt1 und #text_inhalt sind bis auf die margin-Angabe beinahe identisch, solche doppelten Angaben müssen nicht sein und führen nur ins Chaos, weil du eigentlich gleiche Elemente an mehreren Stellen bearbeiten musst, damit sie auch gleich (-aussehend) bleiben.
In diesem Fall kannst du genauso gut <h2> einen unteren Außenabstand geben (statt 0), denn ob du nun dem unteren Element einen oberen Abstand gibst, oder dem oberen einen unteren Abstand, ist gleich, dafür musst du nicht extra eine ganze Klasse duplizieren. Setze bei
div#inhalt h2 die Eigenschaft
margin-bottom:10px und streiche text_inhalt1 ersatzlos.
Zum gleichen Ergebnis kommst du, wenn du statt #text_inhalt1 „in div#inhalt das erste Element, das auf ein h2 folgt“ ansprichst:
div#inhalt h2 + *. Gebe allen Absätzen, auch dem ersten, die Klasse .text_inhalt, lösche #text_inhalt1 ersatzlos und füge stattdessen
div#inhalt h2 + * {margin-top:10px} ein.
Das wären zwei Möglichkeiten, die die explizite Definition der Klasse text_inhalt1 überflüssig machen.
Zu .text_inhalt selbst wäre weiterhin zu sagen, dass auch diese Klasse als solche überflüssig ist. Wenn du viele Elemente in einem Bereich ansprechen möchtest, spreche den Bereich als Gesamtes an, nicht direkt die Elemente. Statt .text_inhalt kannst du zum Beispiel
div#inhalt p ansprechen, d.h. alle p-Absätze in div#inhalt.
Natürlich geht's auch, indem man für alles und jedes eine Klasse definiert, der Punkt aber ist, dass du dir zum ersten ein gutes Stück Tipperei sparst und an Übersichtlichkeit gewinnst, weil du HTML-seitig nicht bei jedem Element eine Klasse angeben musst (<p> ist doch viel kürzer als <p class="text_inhalt">, oder?), zum zweiten ist auch im CSS-Bereich deutlicher erkennbar, wofür eine Gruppe nun gedacht ist (
div#inhalt p sind alle <p> in <div id="inhalt">, man braucht also nur den Hauptbereich div#inhalt kennen; bei
.text_inhalt ist das in drei, vier Monaten möglicherweise nicht mehr so eindeutig, den Textinhalt kann alles mögliche sein).
Davon unabhängig, zum Finden von HTML-Fehlern noch ein Tipp:
https://validator.w3.org/check?uri=http ... &outline=1
ich habe deswegen einmal h1 und h2 weil der Text ja einmal größer und einmal kleiner ist
Theoretisch richtig, in der Praxis sieht's halt etwas merkwürdig aus, wenn der gleiche Text zweimal auftaucht. Vielleicht findest du fürs <h2> ja noch einen anderen Text, und sei es ganz banal „Startseite“.