Autor |
Beitrag |
Leuchtturm
      
Beiträge: 1087
Win Vista, Knoppix, Ubuntu
Delphi 7 Pe, Turbo Delphi, C#(VS 2005 Express), (X)HTML + CSS, bald Assembler
|
Verfasst: Fr 28.12.07 15:56
Hi,
ich habe mal wieder ein Problem:
Ich habe mehr als zwei div ineinander verschachtelt.
Quelltext 1: 2: 3: 4: 5: 6:
| <div class="div2"> <div class="div2"> </div> <div class="div3"> </div> </div> |
Div1 ist Mutterelemnt von div2 und div3.
Wenn die eingebettete Box(div2 und div3) einen Inhalt hat, der größer ist als der von div1, dann überlappt div2 div1. Im IE 7 wächst das "Mutterdiv" mit. Allerdings habe ich gelesen das dies nicht dem W3C-Standard entspricht. Im FF und in Opera wird jedenfalls nichts an div2 bzw div3 angepasst.
Ich habe auch schon versucht div2 und div3 zu clearen(clear:both;) hat aber auch nicht funktioniert.
Weiß jemand wie man das ändern kann?
Vielen dank im voraus
Leuchtturm Moderiert von UGrohne: Topic aus Algorithmen, Optimierung und Assembler verschoben am Sa 29.12.2007 um 13:37
_________________ Ich bin dafür verantwortlich was ich sage - nicht dafür was du verstehst.
|
|
Lossy eX
      
Beiträge: 1048
Erhaltene Danke: 4
|
Verfasst: Fr 28.12.07 16:45
Normal ist es ja so, dass ein blankes div in eine eigene Zeile mit maximaler Breite geschrieben wird. Mich würde interessieren was du sonst noch so für Rahmenbedingungen hast. Also der Inhalt der divs und das verwendete css. Denn ich für meinen Teil kann dein Problem gerade nicht nachvollziehen.
_________________ Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
|
|
Leuchtturm 
      
Beiträge: 1087
Win Vista, Knoppix, Ubuntu
Delphi 7 Pe, Turbo Delphi, C#(VS 2005 Express), (X)HTML + CSS, bald Assembler
|
Verfasst: Fr 28.12.07 17:17
Div das mitwachsen soll anhand des eingebetteten Div's.
Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| #div1 { border : 1px solid gray; background-color : #e0e0ed; min-height: 350px; height: auto; padding : 10px; clear: both; } |
Ist in der Mitte von div3 und div4(siehe unten)
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| .div2 { margin-right: 7px; margin-left: 7px; min-width: 300px; width: 425px; height: auto; float: right; float: left; } |
Es gibt im Grunde genommen div3 zweimal. Einmal rechts(div4) und einmal links(div3) floatierend.
Quelltext 1: 2: 3: 4:
| div3{ float: left; clear: left; } |
Verwendetes CSS: CSS2.1 glaube ich
Die Breite ist ja nicht das Problem. Die Höhe wächst ja nicht mit.
Ich habe jetzt noch mla ein Bild angehängt wie es im FF aussieht
Einloggen, um Attachments anzusehen!
_________________ Ich bin dafür verantwortlich was ich sage - nicht dafür was du verstehst.
|
|
Lossy eX
      
Beiträge: 1048
Erhaltene Danke: 4
|
Verfasst: Fr 28.12.07 19:49
Ah. Das letzte Bild hat mir die Klarheit gebracht. Du möchtest das falsche Verhalten des IEs auch auf den FireFox übertragen.
Das Problem hatte ich auf meiner Seite auch mal. Das passiert jedes mal dann, wenn du mit Float arbeitest und diese Element für die Gesamthöhe verantwortlich ist. Also wenn es geht würde ich die Floats weglassen. Sollte in deinem Falle ja eigentlich gehen, da die divs sowieso untereinander dargestellt werden. Also ist das float ja mehr oder weniger überflüssig. Bzw zerstört die Höhe.
Ich hatte es bei mir gelöst in dem ich dem "div1" eine fixe Höhe verpasst hatte.
_________________ Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
|
|
Martok
      
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Fr 28.12.07 20:42
Jup, entweder feste Höhe, oder ohne float. Das sorgt definitionsgemäß dafür, dass das div floatet (oh Wunder), und damit nicht mehr in die Höhenberechnung eingeht.
Ich hatte oft genug das Problem andersrum... dass das Div im IE größer wird, obwohl es das eigentlich gar nicht darf.
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
Leuchtturm 
      
Beiträge: 1087
Win Vista, Knoppix, Ubuntu
Delphi 7 Pe, Turbo Delphi, C#(VS 2005 Express), (X)HTML + CSS, bald Assembler
|
Verfasst: Fr 28.12.07 20:55
Danke für eure Antworten. Das Float weglassen geht leider schlecht, weil ich ein 3-Spalten-Layout habe und in an beiden rändern zwei Boxen untereinander gezeigt werden und in der mitte eine Box gezeigt wird, die aber größer ist als eine von den Randboxen.
siehe [url] www.orell.de[/url]
Wenn ich für die Seite eine fixe Größe festlege, wmüsste ich das ja immer ändern, was natürlich kein Hindernis wäre, aber umständlig ist.
_________________ Ich bin dafür verantwortlich was ich sage - nicht dafür was du verstehst.
|
|
Lossy eX
      
Beiträge: 1048
Erhaltene Danke: 4
|
Verfasst: Sa 29.12.07 00:42
Auf meiner Seite habe ich 2 Spalten und die linke Spalte hat float: left. Das div in der Mitte hat nichts dergleichen. Außer ein Margin welches breiter ist als die linke Spalte. Das mittlere div bekommt als Höhe aber auch nur das was tatsächlich an Inhalt da ist. Das floating Element wird von der Höhe ignoriert. Beide divs (left und main) stecken in einem anderen div und das div unterhalb dieses hat ein clear: left was dafür sorgt, dass das darunter auch immer unter beiden dargestellt wird.
Auf folgender Seite kommt das zum Tragen. Am Besten mit dem Firebug Plugin für den Firefox mal anschauen. Da sieht man dann schon die Strukturen und das css.
www.dev-center.de/index.php?cat=tutorials
_________________ Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
|
|
DarkHunter
      
Beiträge: 477
Win XP
D3 Prof, D2005 PE
|
Verfasst: Sa 29.12.07 01:32
Als Workaround schlage ich folgendes vor:
Ein weiteres Element welches im DOM oberhalb im Quellcode aber unterhalb des besagten Divs liegt.
Dieses Element bekommt dann einfach den style "clear:both" und schon wird das div gestreckt.
XML-Daten 1: 2: 3: 4:
| <div id="rahmen"> <div id="floater" style="float:left">hier Inhalt reinsetzen</div> <div id="cleanup" style="clear:both" /> </div> |
_________________ I believe that every human has a finite number of heart-beats. I don't intend to waste any of mine running around doing exercises.
- Neil Armstrong
|
|
Leuchtturm 
      
Beiträge: 1087
Win Vista, Knoppix, Ubuntu
Delphi 7 Pe, Turbo Delphi, C#(VS 2005 Express), (X)HTML + CSS, bald Assembler
|
Verfasst: Sa 29.12.07 11:46
Danke jetzt funktionierts. zwar nicht ganz wie gewollt, aber ne so schlimm 
_________________ Ich bin dafür verantwortlich was ich sage - nicht dafür was du verstehst.
|
|