• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Float: IE 7 falsch FF 3 richtig! Brauche Hilfe

Status
Für weitere Antworten geschlossen.

super0824

Neues Mitglied
Hallo zusammen,

hier also die Problembeschreibung:
Habe ein Template für Typo3 erstellt, bei dem es oben eine Grafik hat und darüber ein float gelegt wird. soweit ist das auch kein Problem denn es geht ja im Firefox, nur wenn ich die Seite im IE 7 öffne, wird die Grafik nicht hinter das float gelegt, sondern fängt erst darunter an. Denke die Bilder sprechen für sich.

Habe schon verschiedene Posts hier im Forum durchsucht aber leider nichts gefunden. Vielleicht habe ich auch einfach nicht nach der richtigen Fehlerquelle gesucht und deshalb nichts gefunden.

Bilder:
so wie es sein sollte: http://www.pictureupload.de/originals/pictures/081208172950_ff.JPG
und noch im IE 7 mit der falschen Darstellung:
http://www.pictureupload.de/originals/pictures/081208173050_ie.JPG

hier mal mein Quelltext:

Code:
<!-- ###DOKUMENT### begin -->
<script src="fileadmin/template/scripts/AC_RunActiveContent.js" type="text/javascript"></script>
 
<div align="center" style="max-height:100%; height: 100%;">
<div style="width:800px;">
<div align="left" style="float:right; width: 350px; min-width: 350px; max-width: 350px;">
<div align="left" style="width: 297px; height: 352px;background-image:url(fileadmin/template/images/bildrahmen.jpg)">
  <script type="text/javascript">
AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0','width','297','height','352','src','fileadmin/template/animierte_bilder','quality','high','pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','movie','fileadmin/template/animierte_bilder' ); //end AC code
</script><noscript><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="297" height="352">
    <param name="movie" value="fileadmin/template/animierte_bilder.swf" />
    <param name="quality" value="high" />
    <embed src="fileadmin/template/animierte_bilder.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="297" height="352"></embed>
  </object>
</noscript></div>
</div>
  <div align="left" style="min-width: 800px; max-width: 800px; width: 800px; height: 248px; background-image:url(fileadmin/template/images/logo.jpg)">
     <div align="left" style="padding-left:36px; padding-top:188px;">###MENU###</div>
    </div>
  <div aling="left" style="width:800px; min-width:800px; max-width:800px; background:url(fileadmin/template/images/linie_repeat.gif) repeat-y; ">
  <div  align="left" style="padding-left:40px; padding-right: 40px; min-height:150px;min-width:720px;max-width:720px;; width: 720px;">###MAIN###</div>
  </div>
  <div align="left" style=" clear:both; min-width: 800px; max-width: 800px; width: 800px; height: 93px; background:url(fileadmin/template/images/footer.gif)"></div>
</div>
</div>
<!-- ###DOKUMENT### end -->

und mein css

Code:
/* CSS Document */
*{
margin: 0;
padding: 0;
}
html {
 min-height:100%;
 height: auto;
 height: 100%;
 background-color:#FFFFFF
}
body {
 margin: 0;
 padding: 0;
 min-height: 100%;
 height:auto;
 height:100%;
 font-family: Arial, sans-serif;
 }
.menu_link {
    color: #FFFFFF;
    font-weight: bold;
    text-decoration: none;
    vertical-align: 12px; 
    font-size: 14px;
    font: Arial;
}
.menu_link:hover {
    color: #FFFFFF;
    font-weight: bold;
    text-decoration: none;
    vertical-align: 14px;
    font-size: 14px; 
}
.menu_link_act {
    color: #FFFFFF;
    font-weight: bold;
    text-decoration: none;
    vertical-align: 18px;
    font-size: 14px; 
}
.menu_link_act:hover {
    font-weight: bold;
    vertical-align: 18px;
    text-decoration: none; 
    color: #FFFFFF;
    font-size: 14px;
}

Vielen Dank für eure Hilfe!
 
Werbung:
Dein HTML-Code ist ein unübersichtlicher Mix aus veralteten align-Angaben und aktuellen CSS-Style-Angaben.
Du solltest deshalb die Style-Angaben vollständig in eine CSS-Datei auslagern.
Am besten auf "align" verzichten und alles - soweit erforderlich - mit float regeln. Sonst ist es irgendwie und unnötigerweise doppelt gemoppelt.
Hier ist übrigens ein Tippfehler:
<div aling="left"
 
Werbung:
In 20 Minuten hast Du schon den Code verändert? Super!
Wie sieht er denn dann jetzt aus, hast Du alle Fehler bereinigt, also validen Code erzeugt?
Nur mit validem Code lohnt es sich, Darstellungsunterschiede zu lokalisieren.
Hast Du auch einen richtigen Doctype?
 
so...

die seite ist validiert: W3C CSS Validator results for http://www.thenewbeginning.de/index.php?id=2 (CSS level 2.1)

keine fehler, aber die Darstellung ist noch nicht korrekt, wobei ich glaube schon einen schritt weiter bin.

doctype wird über typo3 mitgebeben:
Code:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "[URL]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/URL]">
<html xmlns="[URL="http://www.w3.org/1999/xhtml"]XHTML namespace[/URL]" xml:lang="de" lang="de">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

hier nun nochmal der Sourcecode:

HTML:
Code:
<!-- ###DOKUMENT### begin -->
<div align="center" class="all">
<div class="logo" style="background-image: url(fileadmin/template/images/logo.jpg);">
<div class="bilderrahmen" style="background-image:url(fileadmin/template/images/bildrahmen.jpg);"></div>
</div>
<div class="background" style="background-image: url(fileadmin/template/images/linie_repeat.gif);">
<div class="main">###MAIN###</div>
</div>
<div class="footer" style="background-image: url(fileadmin/template/images/footer.gif);"></div>
</div>
<!-- ###DOKUMENT### end -->

und das CSS
Code:
* {
margin:0;
padding:0;
}
.all{
 background-position: center;
}
.logo {
 background-repeat:no-repeat;
 height:248px;
 width:800px;
}
.bilderrahmen{
 float: right;
 height: 352px;
 width: 297px;
 margin-right:50px;
}
.background {
 background-repeat: repeat-y;
 height:auto;
 min-height:110px;
 width:800px;
 text-align: left;
}
.main{
margin-left: 30px;
}
.footer {
 height: 93px;
 width: 800px;
 clear:both;
}

wenn ich die bilder die jetzt im html file eingebunden werde, in das css auslagere, werden sie nicht geladen, sollte ja aber auch kein Problem darstellen wenn sie im HTML File eingebunden werdn.

im FireFox ist die Darstellung immer noch korrekt, aber im IE sieht es jetzt iwi komisch aus.
hier mal noch ein Screen... http://www.pictureupload.de/originals/pictures/101208121056_ie2.JPG

der text geht noch über die Seite, aber da muss ich einfach noch die weite definieren, ist also eigentlich kein fehler, nur wird das Bild jetzt einfach abgeschnitten.

Weiss jemand von euch einen Rat? Ist es im IE immer so Problematisch mit float?
 
Dein XML-Prolog muss weg, sonst wird der IE in den Quirks Mode versetzt und dann gibts Darstellungsunterschiede.
 
Werbung:
Erst einmal: Vielen Dank für eure schnellen Antworten.
Prolog ist jetzt weg, problem ist jetzt nur, dass der Text im IE erst nach der weissen Box anfängt und nicht parallel wie es richtig sein sollte. Woran könnte das wohl liegen? siehe hier: Home
FF hat keine Probleme die Seite richtig darzustellen. Im Dreamweaver klappt es ebenfalls nur IE scheint es nicht richtig zu machen.
 
Das ist eines dieser klassischen float-Probleme im IE.
Wenn ich nur wüsste, welches oder wie der Link zur Liste mit float-Problemen war...vielleicht findest Du selber was bei google "float bug list IE" oder so ähnlich würde ich jetzt suchen.
 
Wie der Bug heißt weiß ich auch nicht. Ich kann mir diese Namen nicht merken.

Das Elternelement (.logo) der beiden Floats hat Layout.
Der IE schließt die Floats fälschlicherweise ein und spannt die Box somit auf.
Hervorgerufen wird das in deinem Fall durch width und height von .logo.
Vielleicht verzichtest du auf die Höhe von .bilderrahmen.
Da kommt ja sicher noch ein Element rein (.img?).
Img könnte height, width und position:absolute; haben. Damit schwebt es über den anderen Elementen und vergrößert die Box (.logo) nicht.

Änderung:
Ähm ach ja.
Der Rahmen muß ja auch mitwachsen. Also einen weiteren Container um Img und den wie oben beschrieben positionieren.

Suche-Tip: haslayout float IE
 
Zuletzt bearbeitet:
Werbung:
Puuh. Endlich konnte ich das Problem lösen, habe jetzt schon 1,5 Tage damit verbracht. Für alle die es Interessiert wie ich den IE-Bug gefixt habe hier die Lösung, da ich im Internet keine entsprechende Lösung für den float drop bug gefunden habe.

folgenden zusätzlichen Code habe ich im Template eingefügt und es hat geklappt.

css:
Code:
* html .bilderrahmen{
         position:absolute;
 width: 297px;
 height:352px;
 top:0px;
 margin-left: 453px;
}
Dies ist die Alternative Position für den Bilderrahmen wenn der Internetexplorer verwendet wird. "* html" wird nur vom IE interpretiert.

Nun hatte ich aber das Problem, dass der Text einfach hinter dem Rahmen verschwunden ist und nicht umgebrochen ist, da es jetzt ja kein float-Element mehr ist.

Dazu hab ich einen neuen div in dem Textcontainer erstellt und diesem nur im Internetexplorer weite und höhe zugewiesen:
Code:
* html .iefix {
float:right; 
width: 300px; 
height:100px;
}

die weite und höhe entsprechen den Massen des Rahmens, welche in den Text ragen. (nach augenmass)

nun entstand aber zwischen Logo und Main noch ein 3 px hoher weisse balken welchen ich einfach mit einem margin überdeckt habe.
Code:
* html .background{
  margin-top: -3px;
}

Achtung!! Der hier erwähnte Code erzeugt NUR im IE die gewünschte Darstellung und sollte deshalb auch mit " * html" verwendet werden. Im FireFox Safari ist die Darstellung sonst verzehrt.

ich weiss es ist nicht die sauberste Lösung, aber da es nur im IE verwendet wird und da die Darstellung mit diesen Werten korrekt ist, bin ich mit der Lösung einverstanden.

Wenn jemand den kompletten Code braucht bitte einfach melden.
Hoffe meine Schritte sind nachvollziehbar und können noch vielen anderen helfen, die an dem gleichen bug verzweifeln.

Vielen Dank an alle die mir geholfen haben und einen beachtlichen Teil zur Lösung beigetragen haben. ;)
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben