Webdesign in Siegen

Problem mit Abstand zwischen Div-Containern

Fragen zum Thema HTML und CSS können hier gestellt werden

Moderatoren: Basti, Ingo

Problem mit Abstand zwischen Div-Containern

Beitragvon SilentStormer am 15.04.2006, 23:44

Hi Leute!

Ich habe ein Design in Photoshop erstellt und auch in HTML implementiert, allerdings wollen die schwarzen Abstände zwischen den Div-Containern nicht verschwinden.

http://img505.imageshack.us/my.php?imag ... ler2ts.jpg

Kann sich das mal einer ansehen? Der Abstand zwischen den einzelnen-Div-Containern sollte eigentlich durch Nullsetzung von padding, margin und border eliminiert werden, oder?

Ich weiß einfach nicht mehr weiter!

HTML-Teil:
Code: Alles auswählen
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/Transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
  <head>
    <title>_,.-+* BlackRose Design *+-.,_</title>
    <link rel="stylesheet" type="text/css" href="blackrose_style.css" media="all" />
  </head>
  <body style="direction: ltr;">
    <div class="main">
      <div class="header">&</div>
      <div class="nav">
        <ul id="Navigation">
         <li><a href="index.php">
      <img name="startseite" id="startseite" src="Bilder/startseite.jpg" width="244" height="37" border="0" alt="" /></a></li>
         <li><a href="news.php">
      <img name="news" id="news" src="Bilder/news.jpg" width="244" height="19" border="0" alt="" /></a></li>
         <li><a href="archiv.php">
      <img name="archiv" id="archiv" src="Bilder/archiv.jpg" width="244" height="21" border="0" alt="" /></a></li>
         <li><a href="tutorials.php">
      <img name="tutorials" id="tutorials" src="Bilder/tutorials.jpg" width="244" height="22" border="0" alt="" /></a></li>
           <li><a href="links.php">
      <img name="links" id="links" src="Bilder/links.jpg" width="244" height="33" border="0" alt="" /></a><div></div></li>
       </ul>
     </div>
      <div class="menu">
        <ul id="Navigationw">
          <li><img src="Bilder/rundung_oben.jpg" border="0" alt="&" /></li>
          <li><img src="Bilder/space_linksoben.jpg" border="0" alt="&" /></li>
          <li><a href="index.php">
      <img name="home" id="home" src="Bilder/home.jpg" width="128" height="39" border="0" alt="" /></a></li>
           <li><a href="about.php">
      <img name="about" id="about" src="Bilder/about.jpg" width="113" height="39" border="0" alt="" /></a>/<li>
           <li><a href="projects.php">
      <img name="projects" id="projects" src="Bilder/projects.jpg" width="117" height="39" border="0" alt="" /></a></li>
           <li><a href="references.php">
      <img name="references" id="references" src="Bilder/references.jpg" width="142" height="39" border="0" alt="" /></a></li>
           <li><a href="guestbook.php">
      <img name="guestbook" id="guestbook" src="Bilder/guestbook.jpg" width="156" height="39" border="0" alt="" /></a></li>
        </ul>
      </div>
      <div class="links"><div class="rundung">&</div></div>
      <div class="content">Inhalt...</div>
      <div class="footer">
        <p style="text-align:center;">& Copyright 2006 & BlackRose Design & Alle Rechte vorbehalten & v1.0</p>
      </div>
      <br style="clear:both;" />
    </div>
  </body>
</html>


CSS-Teil:
Code: Alles auswählen
body {
    font-family: Verdana,Arial,sans-serif;
    font-size: 12px;
    color: #000000;
    background-color: #000000;
    margin: 0px;
  }

  ul#Navigation {
    margin: 0px;
    padding: 0px;
    border: 0px;
  }
  ul#Navigation li {
    list-style: none;
    display: inline;
    margin: 0px;
    padding: 0px;
    border: 0px;
  }
  ul#Navigation a, ul#Navigation span {
    float: left;
  }
  * html ul#Navigation a, * html ul#Navigation span {  /* Korrektur fuer IE 5.x */
    width: 8em;
    w\idth: 6em;
  }
  ul#Navigation div {
     clear: left;
  }

/* ------------- */

  ul#Navigationw {
    margin: 0px;
    padding: 0px;
    border: 0px;
  }
  ul#Navigationw li {
    list-style: none;
    display: inline;
    margin: 0px;
    padding: 0px;
    border: 0px;
  }

  ul#Navigationw a, ul#Navigationw span {
    padding: 0px;
    margin: 0px;
    border: 0px;
  }
  * html ul#Navigationw a, * html ul#Navigationw span {
    width: 1em;    /* nur fuer IE 5.0x erforderlich */
    w/idth: auto;  /* sicherheitshalber fuer IE 6 zurueckgesetzt */
  }

  .main {
    width: 781px;
    margin: 0px auto;
    text-align: left;
    color: #333333;
    background-color: #000000;
    vertical-align: middle;
    border: 0px;
    display: block;
  }
  .header {
    background-image: url('Bilder/header.jpg');
    background-position: left top;
    background-repeat: no-repeat;
    width: 533px;
    height: 132px;
    padding: 0px;
    border: 0px;
    color: #000000;
    display: block;
    background-color: #000000;
    float: left;
  }
  .nav {
    width: 244px;
    height: 132px;
    padding: 0px;
    margin: 0px;
    border: 0px;
    color: #000000;
    background-color: #000000;
    float: right;
    display: block;
    text-align: center;
  }
  .menu {
    color: #000000;
    background-color: #000000;
    width: 807px;
    height: 39px;
    float: left;
    display: block;
    border: 0px;
  }
  .content {
    color: #333333;
    background-color: #000000;
    background-image: url('Bilder/content.jpg');
    width: 739px;
    height: 340px;
    float: right;
    padding-right: 0px;
    padding-left: 0px;
    padding-top: 0px;
    padding-bottom: 0px;
    display: block;
    overflow: auto;
    border: 0px;
  }
  .links {
    background-color: #000000;
    background-image: url('Bilder/seite_links.jpg');
    width: 38px;
    height: 340px;
    float: left;
    padding: 0px;
    display: block;
    vertical-align: middle;
    display: block;
    border: 0px;
  }
  .rundung {
    background-color: transparent;
    background-image: url('Bilder/rundung_unten.jpg');
    background-position: bottom left;
    background-repeat: no-repeat;
    width: 38px;
    height: 340px;
    float: left;
    padding: 0px;
    display: block;
    vertical-align: middle;
    border: 0px;
  }
  .footer {
    color: #FFFFFF;
    background-color: #000000;
    background-image: url('Bilder/footer.jpg');
    background-position: top right;
    background-repeat: no-repeat;
    width: 781px;
    height: 39px;
    font-family: Verdana,Arial,sans-serif;
    font-size: 10px;
    text-align: center;
    overflow: hidden;
    float: right;
    padding: 0px;
    display: block;
    border: 0px;
  }


Wäre sehr dankbar, wenn mir da einer weiterhelfen könnte!
Bild
Benutzeravatar
SilentStormer
Mitglied
 
Beiträge: 384
Registriert: 24.09.2005
Wohnort: Österreich

Beitragvon Manuel am 16.04.2006, 00:35

Also ehrlich gesagt finde ich es teilweise sehr merkwürdig, wie du dir dein Design zusammen bastelst, weil du div-Layer teilweise unnötig verschachtelst und vor allem mind ein div-Layer da ist, der einfach gar nichts macht. (<div></div>)

Hast du die Navi oben rechts mal einfach ohne float probiert bzw. float:left? Denn wenn du float:right zuteilst, dann müssen die Pixelangaben natürlich genau stimmen.

Es sieht zwar wirklich nicht schlecht aus, aber mir wäre das teilweise schon fast wieder zu viel Grafik. Vor allem bekommst du mit dieser Methode einen riesen Spaß, wenn dein Inhalt mal länger wird als der Balken links. Alternative: eine 1-Pixel hohe Grafik und diese mit repeat-y. Nächstes Problem: Du musst zusehen, dass der linke und der Inhalts-Layer immer die gleiche Höhe haben. Das ist meines Erachtens aber noch viel zu umständlich mit CSS und falls eine solche Situation eintritt, verwende sogar ich nur für diesen kleinen Teil eine Tabelle. Es gibt Lösungen, mit denen das in CSS mit Div-Layern klappt, wenn du mehrere gleich hoch haben willst, aber die Lösung ist sowas von umständlich und noch viel viel mehr Quellcode als wenn man eine Tabelle verwendet...daher...aber ich finde es löblich, dass du das so schön mit Layern und Listen machst.

"w/idth:" ist das eigentlich beabsichtigt in der CSS-Datei? ;)

Lg,
Manuel ;-]
Benutzeravatar
Manuel
Site Admin
 
Beiträge: 8922
Registriert: 10.12.2004
Wohnort: Asbach

Beitragvon powerschulzi am 16.04.2006, 02:02

ich denk mal w/idth ist ne gewollte browserweiche ;)

http://img156.imageshack.us/img156/6296 ... 2ts2bg.jpg
hab mal drin rumgewurschdelt =)
also... der grün markierte Teil oben, dem würd ich über css mit ner Klasse eine feste Höhe zuweisen, vllt sogar nur ein divlayer mit nem bild drin. dabei würd ich auch textlinks verwenden oder auf die navi oben drin ganz verzichten.
Dem blau markiertem Teil und den beiden rot markierten Ecken würdsch auch ne feste höhe geben, per CSS-Klasse. Dabei vllt sogar noch die footergrafik einbeziehen ;)
Wie Manu schon gesagt hat, den Streifen an der Seite auf 1px reduzieren und dann mit CSS beliebig verlängern.
Andernfalls dem Gelb markierten Teil ein overflow:auto; geben. Das simuliert einen iFrame, indem es die scrolleiste da positioniert, wo du sie haben willst, nicht über die ganze Länge am rechten Bildschirmrand.
Manus Lösung ist die elegantere und benutzerfreundlichere ;)

Wie gesagt - bei CSS mit Klassen und IDs arbeiten und das ganze schön einfach und übersichtlich halten.
Ich denk, das tut über CSS wäre hier ganz praktisch und anschaulich :)
Benutzeravatar
powerschulzi
Mitglied
 
Beiträge: 1259
Registriert: 18.09.2005
Wohnort: Kösen

Beitragvon SilentStormer am 16.04.2006, 14:42

Erstmal vielen Dank für die gut gemeinten Tipps, auch wenn sie mir bei meinem Problem nicht wirklich weiterhelfen.

Wegen dem Balken links neben dem Inhalt: Er ist deshalb mit einer verschachtelter Div-Ebene gelöst, weil ich im ersten Layer den dynamisch langen Hintergrund eingebaut habe und im zweiten Layer die Rundung den Hintergrund (no-repeat, bottom left) darstellt (anders habe ich das irgendwie nicht hinbekommen - habs schon getestet, funktioniert auch bei längerem inhalt einwandfrei).

Einen Inline-Frame simulieren will ich eigentlich nicht, da dann User mit geringer Auflösung zwei vertikale Scrollbalken haben .... ^^

Ich werden den float-Tipp von @manuel mal probieren und hoffe, dass ich es auch so halbwegs hinbekomme :roll:

PS: das w\idth ist wegen dem IE und der leere Div-Container dient irgendwie dazu, dass das Listenmenü korrekt dargestellt wird ^^
Bild
Benutzeravatar
SilentStormer
Mitglied
 
Beiträge: 384
Registriert: 24.09.2005
Wohnort: Österreich

Beitragvon SilentStormer am 05.05.2006, 20:12

Die Seite sieht nun zumindest in Firefox und Opera so aus, wie ich es mir vorgestellt habe.

Der IE macht wie üblich noch Macken.

Hier ein Screenshot, wie es der IE darstellt:

Bild

Sind im Prinzip 2 Fehler:
1. Der Abstand zwischen den Menüpunkten im Submenü oben (wenn dieser Fehler behoben ist, dürfte auch der Abstand zwischen Header und Hauptmenü weg sein)
2. Der Abstand zwischen Hauptmenü und Inhalt

Hab schon bei diversen CSS-Seiten nachgeschaut, habe aber nichts gefunden.

Kann mir da wer helfen?
Bild
Benutzeravatar
SilentStormer
Mitglied
 
Beiträge: 384
Registriert: 24.09.2005
Wohnort: Österreich

Beitragvon powerschulzi am 05.05.2006, 21:01

Das Problem hab ich auch gehabt.
Lässt sich mit ner CSS-Datei extra fürn IE lösen.
Code: Alles auswählen
   <link rel="Stylesheet" type="text/css" href="style.css" media="screen" />
   <!--[if IE]>
      <link rel="Stylesheet" href="ie.css" type="text/css" />
   <![endif]-->

style.css gilt für alle Browser, ie.css beinhaltet nur die ausnahmen für den IE.
d.h., du schreibst nicht die gesamte style.css nochmal in ie.css, sondern nur das, was im IE anders dargestellt werden soll.
Dann dürfte sich dein Problem auch mit fesgelegten außenabständen lösen lassen. :)
Benutzeravatar
powerschulzi
Mitglied
 
Beiträge: 1259
Registriert: 18.09.2005
Wohnort: Kösen

Beitragvon SilentStormer am 05.05.2006, 21:28

ch müsste zu allererst einmal wissen, woran der Abstand liegt, damit ich das Problem beheben könnte :roll:
Bild
Benutzeravatar
SilentStormer
Mitglied
 
Beiträge: 384
Registriert: 24.09.2005
Wohnort: Österreich


Zurück zu HTML/CSS

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast