Gruß an alle CSS-Freunde!
Ich sitze seit nunmehr fünf Stunden an einem Problem, welches, bitte nicht überrascht sein, den Internet Explorer und seine Interpretation der CSS-Eigenschaft float bzw. clear umfasst.
Folgendes Beispiel:
Sorry, dass das CSS einfach so in die Layer geknallt habe, schien mir aber zur Erklärung sinnvoll.
Die drei Probleme sind offensichtlich, wenn man sich die Seite im FF, IE6 bzw. IE7 anschaut: FF macht alles ohne Beanstandung: Das grüne floatende div überragt sein Elternelement und sorgt dafür, dass auch der inline-Inhalt des 2. darunter liegenden divs (blau) die grüne Box umfließt.
Problem 1 im IE6: Das rote Elternelement wird soweit ausgedehnt, dass die gefloatete Box erst gar nicht die Grenzen der selbigen überschreitet, was eine riesige "Lücke" verursacht. Gibt es eine Möglichkeit, den IE6 dazu zu zwingen, die Höhe einzuhalten und den float über das Element hinausgehen zu lassen?
Problem 2 im IE7: Die Grenzen der roten Box werden zwar überschritten, jedoch hat der float keine Wirkung mehr auf die blaue Box, deren Inhalt einfach unter der grünen weiter läuft. Nach CSS-Standard ist das falsch, oder irre ich mich da? Kennt jemand eine Lösung?
Problem 3 im IE7: Die clear-Funktion des Footers scheint komplett ignoriert zu werden, wahrscheinlich da es sich um einen eingebetteten float handelt.
Hat irgendjemand einen Lösungsansatz dafür? Ich habe irgendwo gelesen, dass Problem Nr. 2 gelöst werden kann, indem man auf feste Breitenangaben verzichtet. Das ist aber leider nicht so umsetzbar.
Anyway, ich wäre wirklich sehr erleichtert, wenn mir jemand bei dieser Sache unter die Arme greifen könnte.
MfG
Marco
Ich sitze seit nunmehr fünf Stunden an einem Problem, welches, bitte nicht überrascht sein, den Internet Explorer und seine Interpretation der CSS-Eigenschaft float bzw. clear umfasst.
Folgendes Beispiel:
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//DE"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
</head>
<body>
<div style="position: relative; height: 100px; width: 1024px; margin: 0 auto; background-color: red; z-index: 3;">
<div style="position: relative; float: right; width: 340px; height: 300px; margin-left: 15px;
padding-bottom: 20px; background-color: green; z-index: 3;">
<p>rechts gefloatete box</p>
</div>
<p>TextTextText TextTextTextText TextTextText TextTextTextT extTextTextTe xtTextText TextTextText TextTextText TextTextTextTex tTextTextTe xtTextTextTextTe xtTextTextTextText</p>
</div>
<div style="position: relative; width: 1024px; margin: 5px auto; background-color: blue; z-index: 2;">
<p>TextTextText TextTextTextText TextTextText TextTextTextT extTextTextTe xtTextText TextTextText TextTextText TextTextTextTex tTextTextTe xtTextTextTextTe xtTextTextTextText</p>
</div>
<div style="clear: both; width: 1024px; margin: 0 auto; background-color: yellow;">Footer mit clear: both;</div>
</body>
</html>
Sorry, dass das CSS einfach so in die Layer geknallt habe, schien mir aber zur Erklärung sinnvoll.
Die drei Probleme sind offensichtlich, wenn man sich die Seite im FF, IE6 bzw. IE7 anschaut: FF macht alles ohne Beanstandung: Das grüne floatende div überragt sein Elternelement und sorgt dafür, dass auch der inline-Inhalt des 2. darunter liegenden divs (blau) die grüne Box umfließt.
Problem 1 im IE6: Das rote Elternelement wird soweit ausgedehnt, dass die gefloatete Box erst gar nicht die Grenzen der selbigen überschreitet, was eine riesige "Lücke" verursacht. Gibt es eine Möglichkeit, den IE6 dazu zu zwingen, die Höhe einzuhalten und den float über das Element hinausgehen zu lassen?
Problem 2 im IE7: Die Grenzen der roten Box werden zwar überschritten, jedoch hat der float keine Wirkung mehr auf die blaue Box, deren Inhalt einfach unter der grünen weiter läuft. Nach CSS-Standard ist das falsch, oder irre ich mich da? Kennt jemand eine Lösung?
Problem 3 im IE7: Die clear-Funktion des Footers scheint komplett ignoriert zu werden, wahrscheinlich da es sich um einen eingebetteten float handelt.
Hat irgendjemand einen Lösungsansatz dafür? Ich habe irgendwo gelesen, dass Problem Nr. 2 gelöst werden kann, indem man auf feste Breitenangaben verzichtet. Das ist aber leider nicht so umsetzbar.
Anyway, ich wäre wirklich sehr erleichtert, wenn mir jemand bei dieser Sache unter die Arme greifen könnte.
MfG
Marco