Mahlzeit Iron Crusher,
"Grundkenntnis" .. Definitionssache, wenn du mich fragst. Meinen Wissensstand würde ich schon als "Grundkenntnis" bezeichnen.
<http://de.selfhtml.org/css/layouts/einfuehrung.htm@title=Dann erweitere Deine Kenntnisse.> Insbesondere, wenn sie - ausgehend von Deinem Tabellenlayout - sich auf dem Stand des letzten Jahrtausends befinden.
"Wer aufhört, besser werden zu wollen, hört auf, gut zu sein."
Aus diesem Grunde bin ich doch erst hier. Aus Referenzen, Einführungen, Guides, Tutorials oder sonstwas werde ich bei einigen Fragen nicht schlauer, da sie dort nicht beantwortet werden. Um dies zu ändern, muss ich mich an andere Menschen wenden, die Ahnung davon haben.
Ich benutze sie immer dann gerne, wenn ich bestimmte Elemente vertikal zentrieren möchte, da es, soweit ich weiß, ohne weiteres (insbesondere bei variablen Größen) mit anderen HTML Elementen nicht möglich ist.
Wo möchtest Du welche Element vertikal zentrieren? Was spricht gegen http://de.selfhtml.org/css/eigenschaften/ausrichtung.htm#vertical_align@title=vertical-align? Ansonsten: zeige bitte entweder eine aussagekräftige Zeichnung oder konkreten HTML-Code mit Elementen, die Du auf eine bestimmte Weise positionieren willst.
vertical-align habe ich schon vor einiger Zeit probiert, ich weiß nicht mehr genau zu welchem Schluss ich damals gekommen bin, jedenfalls hat das nicht so funktioniert wie ich erhofft hatte. Möglich, dass andere Browser diese Eigenschaft nicht kannten etc.
Zur Zeichnung:
Hier möchte ich gerne den Text "Wheat Production" vertikal in der Zelle (momentan ist es jedenfalls noch eine Tabellenzellen, vermutlich ändere ich den Aufbau eh demnächst) ausrichten. Momentan wird das automatisch gemacht, da ich, wie gesagt, eine Tabelle dafür benutze.
Beim IE habe ich jedoch das Problem, dass diese Zelle bei der angabe height:100% kein bisschen größer wird. Und das obwohl alle Mutterelemente Größen definiert haben, die größer sind als diese Zelle.
Empfehlung bezüglich bestimmten HTML Elementen, die ich in diesem Fall anwenden sollte?
Nimm die Elemente, die jeweils für bestimmte Dinge gedacht sind:
<h1> - <h6> für Überschriften,
<p> für Absätze,
<table> (samt Inhalt) für tabellarische Daten,
<ul> für ungeordnete Listen,
<ol> für geordnete Listen,
<a> für Links (und nur für Links!),
<button> für Knöpfe,
<div> um bestimmte andere Elemente zusammenzufassen bzw. zu gruppieren - und nur dann, wenn sich kein anderes, semantisch sinnvolleres Element findet!
... usw.
Was ist daran so schwer?
Das hilft mir leider nicht weiter. Ich weiß immer noch nicht, wie ich die Darstellung, die man auf dem Screenshot sehen kann, am sinnvollsten und logischsten umsetze.
Wenn ich das Template jetzt neu bauen würde, würde ich wahrscheinlich einen div-container nehmen als Grund-Mutterelement. Dort hinein kommen dann lauter andere div-container, die die Informationen enthalten, die ich gerne anzeigen würde (Gruppenname, ID, Name, etc). Hierbei würde ein div-container genau eine Information enthalten, d. h. die Grundidee eines divs etwas zu gruppieren würde missachtet werden.
Was du mir verlinkt hast bezieht sich auf horizontale Ausrichtung. Zudem ist die vertikale Zentrierung eines Elementes nur dann möglich, wenn das Mutterelement feste Größen hat.
Wie kommst Du darauf?
Hat das Mutterelement keine feste Größe, sondern eine, die expandierbar ist, so würde mir ein Angabe wie z. B. margin-top: 20px nichts bringen. Grund dafür ist, dass der Abstand von 20px zwischen Rand und des eigentlichen Elements fix ist, unabhängig von der Größe des gesamten Mutterelements.
Beispiel:
Ich habe ein Quadrat (div) als Mutterelement, wo width undefiniert ist, d. h. gesamte Breite des Browserfensters.
Dort drinne verschachtelt befindet sich zwei weitere Quadrate (ein div, ein img). Das div hat die Werte width: 50% und float:left (damit das nächste Element rechts neben diesem eingefügt wird statt dadrunter). In diesem container befindet sich ein Text, der über unterschiedlich viele Zeilen geht. Sagen wir als Beispiel, dass dieser Text gerade so viele Zeilen hat, dass die Höhe dieses div-containers und die des Mutterelementes genau 100px betragen (Höhe des Mutterelementes hängt bei undefinierter height-Angabe von den verschachtelten Elementen ab).
Jetzt füge in den Muttercontainer ein Bild ein (<img>). Das Bild ist 50px groß und 40 px breit. Zudem verfügt es über margin-left: 50% (um nicht überlappend mit dem ersten div zu sein (wobei ich mir nicht sicher bin, ob das bei img auch erforderlich ist. Texte werden jedenfalls automatisch eingerückt))
Wenn ich nun mit festen px-Werten arbeiten würde, um eine vertikale Zentrierung zu erreichen, würde ich diesem img-Element margin-top: 25px zuweisen.Was aber, wenn der Text, der sich in dem anderen div-container befindet, über mehr Zeilen verfügt? Dann ist der gesamte Kasten höher als 100px und meine margin-top: 25px bringt mir dann auch nichts mehr.
Ich habe dieses Beispiel nicht getestet und gebe keine Garantie auf die Richtigkeit des "Quellcodes" bzw. die Logik. Ich hoffe aber es ist verständlich was ich in meinem Beispiel versuche zu bewerkstelligen und was dort die Schwierigkeit ist.
Kurzgefasst kann man auch sagen:
Feste px-Werte bei Eigenschaften wie margin-top, die einem verschachtelten Element zugewiesen werden, sind dann unnütz, wenn der Abstand zwischen Ober- und Unerkante des Mutterelementes variabel ist.