Der Martin: Elternelement der größe der kindelemente anpassen

Beitrag lesen

Hallo,

Du willst also, dass das Elternelement mit der Größe seiner Kindelemente mitwächst? Das ist eigentlich das normale Verhalten, und du setzt es mit absoluter Positionierung oder Floating außer Kraft. Warum?
Ja das dachte ich bisher auch aber aus irgendeinem unerfindlichen Grund tut es das grade nicht, und ich finde den Fehler nicht.

dann ist es vermutlich das Beste, wenn du die Seite mal irgendwo online stellst, so dass man sich das Ganze mal "live" ansehen kann. Sonst versuchst du möglicherweise, hier "nur das Wesentliche" zu posten und lässt dabei vielleicht den entscheidenden Teil weg, weil du es nicht richtig eingeschätzt hast. Oder du würdest hier meterweise Quellcode posten, und man müsste sich dein Zeug erst nachbauen. Das möchte auch niemand.

Bis jetzt hab ich jegliche kombinationen von position: und float: ausprobiert die mir eingefallen ist aber nie mit dem gewünschtem Ergebnis.
Wie wär's mit Weglassen?
Dann ist die standart einstellung position:static; also muss ich wenn ich Elemente in diesem statischen element anordnen möchte doch mit float: arbeiten oder?

Ähm, wie anordnen? Bis jetzt hast du immer noch nicht klar beschrieben, was du eigentlich erreichen willst. Ich bin jetzt davon ausgegangen, dass die Blöcke der Reihe nach untereinander stehen sollen, und das würden sie ganz von allein tun, ohne dass man eingreift.

<link rel="stylesheet" type="text/css" href="style.css"/>
Du verwendest laut DOCTYPE-Deklaration HTML 4.01, da ist das Schließen von leeren Elementen im XML-Stil falsch.
Also ich setze mich jez insgesamt etwa 2 wochen mit dem thema Html auseinander und versuche mir das alles Selbst beizubringen. Haupt anlaufpunkt war für mich stehts Selfhtml was mir auch viel geholfen hat.
Daher verzeih mir bitte wenn ich deine Antwort nicht ganz verstehe.

Kein Problem.

Warum ist das Element leer?

Normalerweise hat ein Element ein öffnendes Tag, einen Inhalt und ein schließendes Tag:

<h1 id="top">Überschrift</h1>

Nun gibt es aber einige Elemente, die per definitionem keinen Inhalt haben, wie etwa <link> oder <img>. In "normalem" HTML lässt man dann das schließende Tag auch einfach weg. In XHTML, das die strengeren Syntax-Regeln von XML anwendet, muss ein Element aber immer geschlossen werden; bei leeren Elementen verwendet man dabei gern die Kurzschreibweise <elementname />, die aber in HTML strenggenommen falsch ist.

Und die DOCTYPE hab ich so aus Selfhtml übernommen ohne diese im Ganzen exakt zu verstehen.

Dann würde ich dir empfehlen, dich zumindest grob über diese Thematik zu informieren. Mit der DOCTYPE-Deklaration gibst du an, welchen HTML-Dialekt du verwendest. Erwähnenswert sind IMO nur HTML 4.01, XHTML 1.0 und HTML 5, wobei es von den beiden erstgenannten noch Varianten gibt.
Wahrscheinlich kommt demnächst jemand und empfiehlt dir, HTML 5 zu verwenden (ich tu es nicht, das ist aber im Wesentlichen meiner insgesamt konservativen Einstellung geschuldet). HTML 5 definiert eine Reihe neuer Elementtypen, die die Dokumentstruktur besser abbilden sollen, und hat außerdem eine vorgegebene Fehlertoleranz; manche Aspekte sind sogar ganz offiziell durch die Spec großzügiger geregelt. Zum Beispiel ist in HTML 5 das Schließen von leeren Elementen mit <tag /> völlig okay, auch ID-Werte, die mit einer Ziffer beginnen oder nur aus einer Ziffer bestehen (was ich weiter unten als Fehler angemeckert habe), sind erlaubt.

<p class="h1">
   &Uumlberschrift:
   </p>

Autsch. Was soll der Unfug mit <p class="h1">? Wenn das eine Überschrift sein soll, zeichne sie doch einfach als solche aus, also mit <h1> (oder <h2>, wenn das Dokument schon eine übergeordnete Gesamt-Überschrift hat).
Außerdem ist es weder notwendig, noch sinnvoll, Umlaute zu verst&uuml;mmeln. Ich hoffe doch, dass du eine Zeichencodierung verwendest, die Umlaute direkt darstellen kann (z.B. UTF-8). Also schreib sie doch einfach im Klartext hin.

  1. Du hast recht, dass ist unglücklich aber nur ein erster versuch wie ich alles definiere.
  2. Das dokument hat eig garkeine richtige Überschrift und die <h1> überschrift ist mir einfach zu groß, wobei ich sagen muss ich deswegen auch noch nicht überlegt habe ob ich nicht einfach im CSS mit font-size: um definiere.

Eben, die Browser-Defaulteinstellungen sind keine Ausrede. CSS rocks. ;-)

<a href="javascript:/" onClick="div_change(5)"><img src="minus.jpg" ID="img5" border="0" style="vertical-align:middle"></a><br></p>

Die Anweisung im href-Attribut "/" ist kein gültiger Javascript-Code. Was soll das sein?

  1. Ok, dass weiß ich nicht, genauso weiß ich nicht was sich ändern könnte wenn man das "/" entfernt. Probiere ich nachher mal aus.

Das klingt, als wüsstest du gar nicht, was der Code eigentlich tun soll. Vermutlich soll beim Klicken auf das Bild eine bestimmte Aktion ausgelöst werden (eine Javascript-Funktion aufgerufen werden). Wenn man es gut machen will, sollte das umschließende a-Element (der Link) dann auf eine Ressource verlinken, die als Ersatz gelten kann für den Fall, dass Javascript nicht verfügbar ist. Möchte man keine solche Fallback-Lösung anbieten, ist der Link eigentlich sinnlos.

Außerdem heißt der Eventhandler eigentlich onclick, und dem img-Element fehlt das alt-Attribut.

  1. onclick und nicht onClick ?

Richtig. Zwar ist HTML nicht case-sensitive, XHTML und Javascript aber sehr wohl - und in HTML gilt die durchgehende Kleinschreibung zumindest als empfohlen. Also ist es kein Fehler, wenn man sich die "richtige" Schreibweise konsequent angewöhnt.

3.alt-attribut ist anscheind irgendwann mal ausversehn entfernt worden und wurde übersehn.

Das ist in HTML 5 übrigens auch nicht mehr zwingend vorgeschrieben, aber dennoch sinnvoll.

<div id="5" class="beschreibung">
Fehler: In HTML 4.01 dürfen ID-Werte nicht mit einer Ziffer beginnen.
Das wär mir nie aufgefallen wenn du es nicht gesagt hättest. Aber was schreib ich da sonst hin?

Einen anderen Bezeichner, der mit einem Buchstaben beginnt?

So long,
 Martin

--
Ein guter Lehrer muss seinen Schülern beibringen können,
eine Frage so zu stellen, dass auch der Lehrer lernen muss,
um die Frage beantworten zu können.
  (Hesiod, griech. Philosoph, um 700 v.Chr.)
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(