Autor Beitrag
Leuchtturm
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1087

Win Vista, Knoppix, Ubuntu
Delphi 7 Pe, Turbo Delphi, C#(VS 2005 Express), (X)HTML + CSS, bald Assembler
BeitragVerfasst: Fr 28.12.07 15:56 
Hi,
ich habe mal wieder ein Problem:
Ich habe mehr als zwei div ineinander verschachtelt.
ausblenden 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 :zustimm:
Leuchtturm


Moderiert von user profile iconUGrohne: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1087

Win Vista, Knoppix, Ubuntu
Delphi 7 Pe, Turbo Delphi, C#(VS 2005 Express), (X)HTML + CSS, bald Assembler
BeitragVerfasst: Fr 28.12.07 17:17 
Div das mitwachsen soll anhand des eingebetteten Div's.
ausblenden 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)
ausblenden 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.
ausblenden Quelltext
1:
2:
3:
4:
div3{
  float: left;
  clear: left;
}


Verwendetes CSS: CSS2.1 glaube ich :lol:
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1087

Win Vista, Knoppix, Ubuntu
Delphi 7 Pe, Turbo Delphi, C#(VS 2005 Express), (X)HTML + CSS, bald Assembler
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 477

Win XP
D3 Prof, D2005 PE
BeitragVerfasst: 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.

ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1087

Win Vista, Knoppix, Ubuntu
Delphi 7 Pe, Turbo Delphi, C#(VS 2005 Express), (X)HTML + CSS, bald Assembler
BeitragVerfasst: Sa 29.12.07 11:46 
Danke jetzt funktionierts. zwar nicht ganz wie gewollt, aber ne so schlimm :wink:

_________________
Ich bin dafür verantwortlich was ich sage - nicht dafür was du verstehst.