Antworten auf deine Fragen:
Neues Thema erstellen

CSS-Problem: margin-top verschiebt sein Elternelement

B

blizzart88

Guest

Ich muß euch mal wieder mit einem Problem nerven:

Ich bin gerade mit dem Layout per CSS einer Seite beschäftigt. Ich habe den Header (wo nachher das Logo sein wird), eine horizontale Navigation und darunter den Bereich für den Inhalt.

Im Inhaltscontainer soll noch mal eine vertikale Navigation sein, mit 20px Abstand nach oben und links zum Rand des Containers. Mit dem Abstand links klappt auch alles hervorragend, nur beim Abstand zum oberen Rand übernimmt der Container die 20px und sitzt jetzt frei unter der horizontalen Navigation.

Kann mir jemand helfen, ich kann keinen Fehler im CSS/Html erkennen.

Der CSS-Code:
Code:
/* Body */

body{background-color:#004f2f}



/* LOGO-Container */

#top {position:relative;
      width:1000px; height:200px;
      margin: auto;
      bottom-margin: 0px;
      border: 1px solid blue;
      background-color:#545454;
      background-image:url('grafik/hor-navi-back.jpg');
      background-repeat:no-repeat;
      background-position: top left;
}



/* Navigation unterhalb des Logos */

#topnavi {position:relative;
          width:820px; 
      height:20px;
      margin: 0px auto;
      border-top: none;
      border-bottom: none;
      border-left: 1px solid blue;
      border-right: 1px solid blue;
          background-color:white;
          background-image:url('grafik/hor-navi-back.jpg');
          background-repeat:repeat-x;
      background-position: top left;
          overflow:hidden;
}



/* Container für Seiteninhalt */

#inhalt-container {position:relative;
                width:820px; 
           height:900px;
               margin: auto;
                border-top: none;
             border-bottom: none;
             border-left: 1px solid blue;
             border-right: 1px solid blue;
                background-color:#545454;
                background-image:url('grafik/hor-navi-back.jpg');
                background-repeat:no-repeat;
                background-position: top left;
                background-attachment:fixed;
}



/* Navigation oben durch Listen */

#horizontal1 li {float: left;} 

#horizontal1 {margin: 0;
              padding: 0;
                 list-style-type: none;
              background: #6f79dc;
              background-image: url(grafik/back001.jpg);
              width: 100%;
              overflow: auto
}

#horizontal1 a {font-family: Arial;
             font-size: 14px;
             font-weight: bold;
             text-decoration: none;
             height: 20px;
             display: block;
             color: #fff;
             background-image: url(grafik/back001.jpg);
             background-color: white;
             text-align: center;
             line-height: 20px;
             border-bottom: 1px solid #fff;
} 




/* Diverse Breiten der horizontalen Links */

#home {width:70px;}

#produkte {width:80px;}

#unternehmen {width:100px;}

#service {width:80px;}

#kontakt {width:80px;}




/* Liste der horizontalen Navigation */

#horizontal1 a:visited {color: #dfdfdf;
                        background-image: url(grafik/back001.jpg)
}

#horizontal1 a:hover {background-color: #000;
                      background-image: url(grafik/back002.jpg)
} 



/* Navigation innerhalb des Inhaltscontainers */

#navi-inhalt {position:relative;
              width:200px; 
          height:120px;
          margin-top: 20px;
          margin-left: 20px;
          border: 1px solid blue;
              background-color:white;
              overflow:hidden;
}





/* Bottom für Footer (Impressum, AGB, etc...) */

#bottom {position:relative;
         width:820px; 
     height:120px;
     margin: 0px auto;
     margin-bottom: 20px
     border-top: none;
     border-bottom: 1px solid blue;
     border-left: 1px solid blue;
     border-right: 1px solid blue;
         background-color:white;
         background-image:url('grafik/hor-navi-back.jpg');
         background-repeat:repeat-x;
     background-position: top left;
         overflow:hidden;
}



/* Zum Clearen von float: */

#clear-left {clear:left}

#clear-right {clear:right}

#clear-both {clear:both}

#clear-none {clear:none}




/* Überschriften, Texte, Links, etc.

p {color:#b1b1b1; 
   font-family:Arial; 
   font-size:12px
}

a {color:#ffffff; 
   font-family:Arial; 
   font-size:12px, 
   font-weight:bold; 
   text-decoration:underline
}

a:hover {color:#ac0004; 
     font-family:Arial; 
     font-size:12px, 
     font-weight:bold; 
     text-decoration:none
}

und der HTML-Code
Code:
<html>
<head>

<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="js/lightbox.js"></script>

<link rel="stylesheet" href="css/lightbox2.css" type="text/css" media="screen" />
<link rel="stylesheet" type="text/css" href="css.css">

</head>
<body>

<div id="top"></div>
<div id="topnavi">
    
    <ul id="horizontal1">        
        <li><a href="#" id="home">Home</a></li>
        <li><a href="#" id="produkte">Produkte</a></li>
        <li><a href="#" id="unternehmen">Unternehmen</a></li>
        <li><a href="#" id="service">Service</a></li>
        <li><a href="#" id="kontakt">Kontakt</a></li>
    </ul> 


</div>

<div id="clear-left"></div>

<div id="inhalt-container">

    <div id="navi-inhalt">

    </div>
</div>

<div id="bottom"></div>

</body>
</html>

PS: Der Fehler taucht im Firefox 3.6 auf, mit anderen habe ich noch nicht getestet.
 

cebito

undefined

AW: CSS-Problem: margin-top verschiebt sein Elternelement

Kann mir jemand helfen, ich kann keinen Fehler im CSS/Html erkennen.

Ich schon:

CSS:

  • Zeile 12 - bottom-margin gibt es nicht
  • Zeile 139 - Semikolon fehlt
  • Zeile 166 - Kommentar nicht geschlossen
  • Zeile 175 - Komma statt Semikolon
  • Zeile 182 - Komma statt Semikolon
HTML

  • Kein Doctype festgelegt
Wenn du einen Abstand zum Containerrand haben willst, gib diesem ein padding von 20px und mach ihn dementsprechend schmaler.
 
AW: CSS-Problem: margin-top verschiebt sein Elternelement

Hallo,

wenn Du
HTML:
<div id="inhalt-container">&nbsp;
machst, dann funktionierts und die Lücke ist weg.
Zumindest bei mir in ff3.6, Chrome 6.0.472.59, Opera 7.5, Opera 8 und Opera 9. In Opera 6 klappts nicht, IExplorer nicht getestet.

Cssportal bietet einen kostenlosen Layout-Generator an.
Der Output ist als Grundgerüst für weitere Modifikationen gut geeignet.

Hoffe, dass Dir das weiter hilft.
Dein CSS validiert nicht und hat syntaktische Fehler.

Gruß Andreas
 

Doitsu

Aktives Mitglied

AW: CSS-Problem: margin-top verschiebt sein Elternelement

.. zur erklaerung warum das so ist:
margin-top & bottom richten sich an die Elemente die drueber / drunter sind, da ueber der Navi aber kein Element ist, woran es sich ausrichten kann, wir der margin-Wert ganz frei auf den 'inhalt-container' uebertragen. Die Variante von AndrOve ist auch nicht wirklich richtig, besser waere es ein div-Container mit der hoehe von 20 Pixel ueber die Navi zu machen, der nur fuer den Abstand zustaendig ist.
 
Zuletzt bearbeitet:
B

blizzart88

Guest

AW: CSS-Problem: margin-top verschiebt sein Elternelement

.. zur erklaerung warum das so ist:
margin-top & bottom richten sich an die Elemente die drueber / drunter sind, da ueber der Navi aber kein Element ist, woran es sich ausrichten kann, wir der margin-Wert ganz frei auf den 'inhalt-container' uebertragen. Die Variante von AndrOve ist auch nicht wirklich richtig, besser waere es ein div-Container mit der hoehe von 20 Pixel ueber die Navi zu machen, der nur fuer den Abstand zustaendig ist.

Das funktioniert irgendwie nicht, oder ich mache es falsch ;).
Code:
/* Body */

body{background-color:#004f2f}



/* LOGO-Container */

#top {position:relative;
      width:1000px; height:200px;
      margin: auto;
      margin-bottom: 0px;
      border: 1px solid blue;
      background-color:#545454;
      background-image:url('grafik/hor-navi-back.jpg');
      background-repeat:no-repeat;
      background-position: top left;
}



/* Navigation unterhalb des Logos */

#topnavi {position:relative;
          width:820px; 
      height:20px;
      margin: 0px auto;
      border-top: none;
      border-bottom: none;
      border-left: 1px solid blue;
      border-right: 1px solid blue;
          background-color:white;
          background-image:url('grafik/hor-navi-back.jpg');
          background-repeat:repeat-x;
      background-position: top left;
          overflow:hidden;
}



/* Navigation oben durch Listen */

#horizontal1 li {float: left;} 

#horizontal1 {margin: 0;
              padding: 0;
                 list-style-type: none;
              background: #6f79dc;
              background-image: url(grafik/back001.jpg);
              width: 100%;
              overflow: auto
}

#horizontal1 a {font-family: Arial;
             font-size: 14px;
             font-weight: bold;
             text-decoration: none;
             height: 20px;
             display: block;
             color: #fff;
             background-image: url(grafik/back001.jpg);
             background-color: white;
             text-align: center;
             line-height: 20px;
             border-bottom: 1px solid #fff;
} 




/* Diverse Breiten der horizontalen Links */

#home {width:70px;}

#produkte {width:80px;}

#unternehmen {width:100px;}

#service {width:80px;}

#kontakt {width:80px;}




/* Liste der horizontalen Navigation */

#horizontal1 a:visited {color: #dfdfdf;
                        background-image: url(grafik/back001.jpg)
}

#horizontal1 a:hover {background-color: #000;
                      background-image: url(grafik/back002.jpg)
} 



/* Container für Seiteninhalt */

#inhalt-container {position:relative;
                width:820px; 
           height:900px;
               margin: auto;
                border-top: none;
             border-bottom: none;
             border-left: 1px solid blue;
             border-right: 1px solid blue;
                background-color:#545454;
                background-image:url('grafik/hor-navi-back.jpg');
                background-repeat:no-repeat;
                background-position: top left;
                background-attachment:fixed;
}




/* Navigation innerhalb des Inhaltscontainers */

#navi-topplatz {position:relative;
                width:200px; 
            height:20px
            margin-left: 20px;
            border: none;
                background-color:#000000;
                overflow:hidden;
}



/* Navigation innerhalb des Inhaltscontainers */

#navi-inhalt {position:relative;
              width:200px; 
          height:120px;
          margin-left: 20px;
          border: 1px solid blue;
              background-color:white;
              overflow:hidden;
}





/* Bottom für Footer (Impressum, AGB, etc...) */

#bottom {position:relative;
         width:820px; 
     height:120px;
     margin: 0px auto;
     margin-bottom: 20px
     border-top: none;
     border-bottom: 1px solid blue;
     border-left: 1px solid blue;
     border-right: 1px solid blue;
         background-color:white;
         background-image:url('grafik/hor-navi-back.jpg');
         background-repeat:repeat-x;
     background-position: top left;
         overflow:hidden;
}



/* Zum Clearen von float: */

#clear-left {clear:left}

#clear-right {clear:right}

#clear-both {clear:both}

#clear-none {clear:none}




/* Überschriften, Texte, Links, etc. */

p {color:#b1b1b1; 
   font-family:Arial; 
   font-size:12px
}

a {color:#ffffff; 
   font-family:Arial; 
   font-size:12px; 
   font-weight:bold; 
   text-decoration:underline
}

a:hover {color:#ac0004; 
     font-family:Arial; 
     font-size:12px; 
     font-weight:bold; 
     text-decoration:none
}

Code:
<html>
<head>

<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="js/lightbox.js"></script>

<link rel="stylesheet" href="css/lightbox2.css" type="text/css" media="screen" />
<link rel="stylesheet" type="text/css" href="css.css">

</head>
<body>

<div id="top"></div>
<div id="topnavi">
    
    <ul id="horizontal1">        
        <li><a href="#" id="home">Home</a></li>
        <li><a href="#" id="produkte">Produkte</a></li>
        <li><a href="#" id="unternehmen">Unternehmen</a></li>
        <li><a href="#" id="service">Service</a></li>
        <li><a href="#" id="kontakt">Kontakt</a></li>
    </ul> 


</div>

<div id="clear-left"></div>

<div id="inhalt-container">
    <div id="navi-topplatz"></div>

    <div id="navi-inhalt">

    </div>
</div>

<div id="bottom"></div>

</body>
</html>

Aber was ich nicht ganz verstehe: das div "inhalt-container" ist sollte doch das Element sein, an dem sich "navi-inhalt" ausrichtet. Ich meine es funktioniert ja auch mit margin-left.
 

Doitsu

Aktives Mitglied

AW: CSS-Problem: margin-top verschiebt sein Elternelement

Aber was ich nicht ganz verstehe: das div "inhalt-container" ist sollte doch das Element sein, an dem sich "navi-inhalt" ausrichtet.
Nein, sollte es nicht. :) Es ist ja IN diesem Element, warum also daran ausrichten? Wuerde kein Sinn ergeben.

Ich meine es funktioniert ja auch mit margin-left.
Das ist was anderes - es funktioniert ja auch auto bei left & right - bei top & bottom nicht. Es macht ich nur schlecht, Abstaende nach Links / Rechts zu bekommen, ohne gleich ein ganzen Float-Model zu bauen.. Nach oben & unten ist das was anderes.

evtl. etwas verwirrend, aber gut so.

Ansonsten bleibt noch zu sagen:
* es gibt keine leeren div-Cointainer, du musst noch ein '&nbsp;' rein schreiben. (das ist auch dein Fehler)
* Das 'position: relative;' ist ziemlich Sinnlos.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.636
Beiträge
1.538.496
Mitglieder
67.559
Neuestes Mitglied
hanuta
Oben