tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
787
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
DIESES THEMA IST
GESCHLOSSEN
  1. #1
    Registriert seit
    Oct 2002
    Ort
    Eckernförde, S.-H.
    Beiträge
    623
    Hallo liebste Community,

    ich habe hier mal eine grundsätzliche Verständnisfrage zu stellen.
    Vorher jedoch mein Vorhaben in einer kurzen Schilderung:

    Ich möchte in einem Haupt-Div folgende Dinge untereinander in jeweils einem eigenen DIV einbinden:
    -die Kopfgrafik (800x200px)
    -eine Navigation
    -den Text des angewählten Punktes

    Das Haupt-Div hat:
    Code :
    1
    
    <div style="padding:0px; marign:0px;">

    Danach folgt das Div "head" mit:
    Code :
    1
    2
    3
    4
    
    width               : 800px;
    height              : 200px;
    margin              : 0px;
    padding             : 0px;

    Anschliessend das Div "navi":
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    width               : 800px;
    height              : 20px;
    background-color    : #eeeeee;
    background-image    : url(../gfx/back_main.jpg);
    padding             : 5px;
    text-align          : center;
    font-weight         : bold;

    Und zu guter Letzt der container für den Text:
    Code :
    1
    2
    3
    4
    5
    
    background-color    : #eeeeee;
    background-image    : url(../gfx/back_main.jpg);
    width               : 800px;
    padding             : 5px;
    text-align          : left;

    Zusammengebastelt ist es wie folgt:
    HTML-Code:
    <div style="padding:0px; marign:0px;">
    <div class="head">
     <img ... />
    </div>
    <div class="navi">
    ... ... ...
    </div>
    <div class="text">
    ... ... ...
    </div>
    </div>
    Das Ergebnis ist jedoch absoulut nicht das, was ich erwartet habe:
    Im FireFox gucken sowohl das Div "navi" als auch "text" nach rechts unter dem "head" hervor. Es ist keine bündige Linie.
    Im IE hingegen passt es wunderbar.

    Nun die Vermutung und eigentliche Frage: hängt das damit zusammen, dass ich bei "head" kein padding von 5px verwende?
    Wenn ich das nämlich änder, dann lappt das div "head" über den Rest nach rechts.

    Ich bekomme langsam echt graue Haare von dem Rumprobieren und hoffe, dass mir jemand abschliessen erklären kann, wo der Fehler liegt und wie man ihn behebt.

    Mein Dank sei Euch gewiß
     

  2. #2
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Der Internet Explorer berechnet Breiten und Höhen bis zur Version 7 anhand eines anderen Box-Modell als das des W3C, das von allen anderen Webbrowsern verwendet wird. Während beim W3C-Modell Rahmen (border) und Polsterung (padding) zur darzustellenden Breite und Höhe addiert werden, werden beim Internet-Explorer-Modell diese Werte vom verfügbaren Inhaltsbereich subtrahiert. Ein Element mit einer Breite von 100 Pixeln, einer Polsterung und Rahmenstärke von jeweils 5 Pixeln wird nach dem W3C-Modell also 120 Pixel breit dargestellt, während der Internet Explorer es exakt 100 Pixel breit darstellt dafür aber den Inhalt einengt.

    Probier’s ruhig mal aus:
    HTML-Code:
    <div style="width:100px; padding:5px; border:5px solid; background-color:#fe0"><div style="background-color:#fff">Inhalt</div></div>
    <div style="width:120px; background-color:#f00">120px</div>
     
    Markus Wulftange

  3. #3
    Registriert seit
    Oct 2002
    Ort
    Eckernförde, S.-H.
    Beiträge
    623
    Und wie schaffe ich es nun, dass beide Versionen gleich aussehen?
    Hab mal von irgendwelchen "hacks" gehört.

    Edit:
    Äh... habe Dein Code-Beispiel wohl falsch interpretiert. Das soll ein Lösungsansatz sein, oder?
    Geändert von Eiszwerg (08.03.07 um 15:54 Uhr) Grund: Doppelpost verhindern
     

  4. #4
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Das ist nur ein Beispiel zur Veranschaulichung der Modelle.

    Ich würde jedoch die Breite durch das Elternelement festlegen:
    HTML-Code:
    <div id="wrap">
    	<div id="head">a</div>
    	<div id="nav">b</div>
    	<div id="content">c</div>
    </div>
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    #wrap {
        width: 800px;
        padding: 0;
        margin: 0;
    }
    #head {
        height: 200px;
        background-color: #f00;
    }
    #nav {
        height: 20px;
        padding: 5px;
        background-color: #0f0;
    }
    #content {
        padding: 5px;
        background-color: #00f;
    }
    Dadurch kann die Polsterung beliebig geändert werden ohne dass die Breite davon beeinflusst wird.
     
    Markus Wulftange

  5. #5
    Registriert seit
    Oct 2002
    Ort
    Eckernförde, S.-H.
    Beiträge
    623
    Wenn ich das so mache, wie in Deinem Beispiel genannt, dann schiebt er mir alle DIVs nebeneinander

    Nochmal EDIT:
    Hab nun als Breitenangaben
    Code :
    1
    
     width: 100%
    genommen. Passt 1A. Ich bedanke mich für die rasche Hilfe
    Geändert von Eiszwerg (08.03.07 um 16:13 Uhr) Grund: Doppelpost verhindern... Bin einfach zu vorschnell
     

  6. #6
    Maik Tutorials.de Gastzugang
    Hi,

    ansonsten könnte es eventuell daran liegen, dass du für das Dokument keinen Doctype deklariert, oder einen Dokumenttyp gewählt hast, der den IE in den Quirksmode versetzt, und er deshalb das Boxmodell falsch interpretiert. Siehe hierzu auch Workshop Doctype-Switch Teil1 und Workshop Doctype-Switch Teil 2.

    Wenn du aber eine browserübergreifende Lösung gefunden hast, dann markiere das Thema bitte auch als erledigt. Vielen Dank!
     

Ähnliche Themen

  1. Antworten: 15
    Letzter Beitrag: 06.10.10, 12:43
  2. Opera berechnet em-Größe falsch
    Von Michael_K im Forum CSS
    Antworten: 5
    Letzter Beitrag: 27.08.09, 12:35
  3. offsetLeft & offsetTop falsch berechnet
    Von FipsTheThief im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 05.08.08, 11:04
  4. Link erstellen, der den Dateinamen berechnet?
    Von pauschpage im Forum PHP
    Antworten: 2
    Letzter Beitrag: 24.12.06, 20:02
  5. Was berechnet eine C4D Grafik
    Von skalu im Forum Cinema 4D
    Antworten: 1
    Letzter Beitrag: 02.06.04, 21:36