Unterschiedliches verhalten IE7 / IE8

Unterschiedliches verhalten IE7 / IE8

Beitragvon Supertramp » 23.12.2009, 19:06

Guten Abend

Bin auf der Suche nach einer Lösung für folgendes Problem:

Im IE7 wird angezeigt (richtig):
Bild

Der IE8 hingegen zeigt es so an (falsch):
Bild

Der HTML Code sieht so aus:
Code: Alles auswählen
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
   <head>
      <title>Test</title>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <link href="css/main.css" rel="stylesheet" type="text/css">
   </head>
   <body>
      <div id="content">
         <div id="c_main">
            <div id="c_hdl_bg">
               Title
            </div>
            <div id="c_main_bg">
               <p>Text</p>
            </div>
            <div id="c_main_footer"></div>
         </div>
      </div>
   </body>
</html>



Beachte:
Der "Text" befindet sich innerhalb vom <div id="c_main_bg">.
Wenn der "Text" nicht innerhalb der <p>-Tags ist, dann zeigt der IE8
auch keine Abstände an.

Die Frage ist:
Warum versetzt der IE8 die beiden div Tags "c_hdl_bg" und "c_main_bg",
wenn sich INNERHALB vom div Tag "c_main_bg" ein "<p>" (Paragraph) befindet?

Das main.css sieht so aus:
Code: Alles auswählen
@charset "utf-8";
/* CSS Document */
body {
    margin: 0;
    padding: 0;
    font-size: 11px;
    font-family: verdana, arial, helvetica, sans-serif;
    color: #666;
    }
   
#content {
    position: absolute;
    top: 150px;
    left: 200px;
    }
   
#c_main {
    position: relative;
    width: 570px;
    top: -60px;
    padding: 0px 15px;
    margin: 0px;
    z-index: 3; 
    background-color: #0f0; /*DEL*/
    }   
   
#c_hdl_bg {
    position: relative;
    top: 0;
    left: 0;
    width: 545px;
    z-index: 3;
    padding: 50px 10px 10px 15px;
    background: url(../img/c_main_bg.gif) no-repeat left top;
    }

html>body #c_main_bg {
    position: relative;
    top: 0;
    left: 0;
    width: 545px;
    padding: 0 10px 0 15px;
    margin: 0;
    z-index: 2;
    background-color: #e6e6e6;
    }
   
#c_main_footer {
    position: relative;
    left: 0;
    top: 0;
    width: 570px;
    height: 8px;
    z-index: 0;
    background: url(../img/c_main_footer.gif) no-repeat left top;   
    }   


Ich habe das ganze mal als ZIP Datei attacht:
Testseite.zip
(3.85 KiB) 49-mal heruntergeladen




Bin für Hinweise jeder Art dankbar...

Gruss,
Supertramp
Benutzeravatar
Supertramp
neu hier
 
Beiträge: 9
Registriert: 23.12.2009, 18:08

Re: Unterschiedliches verhalten IE7 / IE8

Beitragvon sejuma » 24.12.2009, 11:04

Wei p standardmäßig einen Abstand hat.
Wenn du diesen brauchst, dann nimm padding.
Versuch's mal so:
Code: Alles auswählen
p {
margin: 0;
padding-top: 8px;
}


Siehe auch http://www.ohne-css.gehts-gar.net/0037.php
Bild
sejuma
Vielposter
 
Beiträge: 521
Registriert: 15.07.2009, 17:46

Re: Unterschiedliches verhalten IE7 / IE8

Beitragvon Laus » 24.12.2009, 12:01

Das macht nicht nur der IE8 sondern auch FF, Opera, usw.
Benutze einen CSS Prolog dann dürften deine Probleme behoben sein
Code: Alles auswählen
*{margin:0; padding:0;}


Frohe Weihnachten allen
Xaver
Lachen ist kein schlechter Anfang und bei weitem das beste Ende.
(Oscar Wilde)
Benutzeravatar
Laus
Moderator
 
Beiträge: 1225
Registriert: 25.02.2006, 00:30
Wohnort: Furth im Wald

Re: Unterschiedliches verhalten IE7 / IE8

Beitragvon Supertramp » 24.12.2009, 17:27

Laus hat geschrieben:Frohe Weihnachten allen


@Sejuma & Laus:
Besten Dank für eure Antworten.

Warum ich es so wie von euch vorgeschlagen nicht verwenden kann: Der "Text" wurd durch Benutzer in einem CMS System (Editor) eingegeben, dabei kann der Benutzer mit einem Titel anfangen (Text markieren und entsprechendes Tag wählen) welcher sich dann z.B. zwischen h1-h4 Tags befindet. Auch bei diesen Tags gehen die DIVs dann wieder auseinander... Wenn ich es jetzt mit dem * mache, sieht es zwar an dieser Stelle korrekt aus, aber ich verliere dann auch auf der ganzen Homepage alle Abstände an den gewünschten Stellen... Es ist klar, dass "p" (&h1-h4) einen Abstand macht - aber das "p" befindet sich ja eben INNERHALB des Div und sollte dann ja nicht einen Abstand zum oberen Div machen, sondern nur zum oberen Rand vom Div IN welchem es sich befindet... Alle meine Probleme wären gelöst, wenn ich irgendwie das ursprüngliche Verhalten (IE7) wieder herstellen könnte...


Gruss & frohe Weihnachten meinerseits ebenfalls
Supertramp
Benutzeravatar
Supertramp
neu hier
 
Beiträge: 9
Registriert: 23.12.2009, 18:08

Re: Unterschiedliches verhalten IE7 / IE8

Beitragvon Supertramp » 24.12.2009, 17:33

sejuma hat geschrieben:Wenn du diesen brauchst, dann nimm padding.


Ich werde am Montag mal schauen, welche Tags der Benutzer alles einfügen kann und dann gegebenenfalls für alle Tags im CSS das padding einführen und anschliessend überprüfen wie der Rest der Webseite angezeigt wird(nochmals Danke für die Hinweise).
Benutzeravatar
Supertramp
neu hier
 
Beiträge: 9
Registriert: 23.12.2009, 18:08

Re: Unterschiedliches verhalten IE7 / IE8

Beitragvon Laus » 24.12.2009, 18:00

Du unterliegst einem Denkfehler.
Ich hab dir ja bereits geschrieben das der Abstand in allen anderen Browsern nicht richtig ist, nur eben im IE7, (IE6 hab ich nicht getestet). Das liegt an den unterschiedlichen Auslegungen des Border Box Modells und der internen Berechnung der Abstände in den einzelnen Browsern. Hier kocht der IE7 sein eigenes Süppchen. Deinen Code zeigt eben nur der IE7 richtig an und darum der Vorschlag von mir.

Gruß Xaver
Lachen ist kein schlechter Anfang und bei weitem das beste Ende.
(Oscar Wilde)
Benutzeravatar
Laus
Moderator
 
Beiträge: 1225
Registriert: 25.02.2006, 00:30
Wohnort: Furth im Wald

Re: Unterschiedliches verhalten IE7 / IE8

Beitragvon Supertramp » 04.01.2010, 09:01

Ein Arbeitskolleg hat heute morgen noch folgende Lösungsmöglichkeit gefunden:

Im Selektor "html>body #c_main_bg" für "padding" schreiben:
padding: 1px 10px 1px 15px

(Anstatt: "padding: 0 10px 0 15px")

Sobald also für den Innenabstand oben und unten "1px" angegeben worden ist (anstatt "0"), macht der IE8 (in meinem obigen Beispielscode) zwischen den DIV's auch keine Abstände mehr...

Die zwei zusätzlichen Pixel stören in meinem Fall nicht und ich muss so auch nicht berücksichtigen ob der "Text" in "p" oder "h1"-"h4" Tags steht...
Benutzeravatar
Supertramp
neu hier
 
Beiträge: 9
Registriert: 23.12.2009, 18:08


Moderatoren: Laus, Moderatoren

Ähnliche Beiträge zu "Unterschiedliches verhalten IE7 / IE8"

Zurück zu: CSS für Fortgeschrittene

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste