verschachtelte DIV-Bereiche - Inhalt positionieren

  • Hallo Leute,


    ich komme hier nicht drauf wieso das so ist wie es ist :huh:


    Ich habe einen großen div-Bereich .nr1, darin erstelle ich einen weiteren div-Bereich .kat1 der einen Text enthält. Wenn ich jetzt diesem Bereich keinerlei Anweisungen mitgebe sonder gleich speichere und schaue was passiert dann erscheint dieser Text außerhalb des Bereichs in dem er eigentlich erscheinen müsste. Das verstehe ich nicht denn wäre es nicht logisch dass der Text auch innerhalb des Bereichs erschein indem er definiert wurde? Also er müsste doch eigentlich im hier gelben Bereich erscheinen.
    Oder ich übersehe etwas total einfaches? :whistling:


    [Blockierte Grafik: http://abload.de/img/css1x0st7.jpg]


    HTML
    <div id="yt">
     	<div class="nr1">
      	     	<div class="bild1"></div>
      	     	<div class="kat1"><p>Kategoriename</p></div>
     	</div>
    </div>


  • Hi Roland,


    also die Klammerfehler habe ich versehentlich beim rauskopieren für das Forum gemacht ;).
    Ich habe herausgefunden an was es liegt. Standardmäßig ist es so dass Elemente immer oben links in ihrem Bereich auftauchen in dem sie erstellt worden sind. Da bei mir dieser Bereich aber bereits einen anderen div-Bereich enthält, ist kein Platz mehr da und es verschiebt sich nach unten.


    Mit Firebug habe ich einfach mal die css Anweisungen für das .Bild1 weggenommen und sofort ist der Kategoriename nach oben reingerutscht :)

  • Irgendwie hat das keine Logik finde ich. Weil, wenn das Element automatisch nach unten rutscht wenn der Bereich in dem es erscheinen sollte belegt ist dann müsste es doch auch automatisch wieder hochrutschen wenn man es verschiebt. Also hier in meinem Beispiel wenn ich dem Kategorienamen ein margin-left mitgebe das größer ist als die width des .Bild1, müsste es dann nicht wieder nach oben in den eigenen div-Bereich hineinrutschen ?(


    Erst wenn ich die height des .Bild1 verkleinere rutscht auch der <div class="kat1"> in seinen Bereich in dem er erstelt wurde.
    Und wenn ich dem .nr1 ein <span> schreibe dann verschiebt dieser Text sich nicht nach außerhalb des Bereiches !?


    Das würde ja bedeuten das ein <div> weniger Wert ist als ein <span> ? Ich dachte es wäre eher andersherum?


    HTML
    <div class="nr1">
       <div class="bild1"><span>.bild1</span></div>
       <div class="kat1"><span>.kat1</span></div>
    </div>



    [Blockierte Grafik: http://abload.de/img/bildtbsip.jpg]
    [Blockierte Grafik: http://abload.de/img/bildwxskx.jpg]
    [Blockierte Grafik: http://abload.de/img/bild30xg4.jpg]

  • um das was Roland gesagt hat mal ein bisschen zu erläutern:
    divs sind Block-Elemente, Block-Elemente nehmen automatisch immer die komplette verfügbare Breite ein, deshalb rutschen andere Elemente darunter.
    zwei Lösungsmöglichkeiten: mit display: inline; ein inline-Element draus machen - das macht allerdings in deinem Beispiel wenig Sinn.
    Nummer 2:
    floaten - mit float: left; dem Element sagen, dass es sich links anordnen soll und daneben noch andere Elemente stehen dürfen. Wichtig ist, dem ersten Element was sich nicht mehr daneben anordnen soll ein clear: left; zu geben, was quasi das float wieder aufhebt.
    In deinem Beispiel sollte also das hier funktionieren:

    CSS
    .nr1{
    	clear: left;
    }
    .bild1{
    	float: left;
    }



    Grüße

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!