CSS IE Inkompatibilität

te one

Lt. Commander
Registriert
Apr. 2009
Beiträge
1.255
Hallo zusammen,
habe ein kleines Problem.
Und zwar habe ich eine Seite erstellt bei der das Menü links immer fest an seiner Position bleibt (also auch beim Scrollen immer sichtbar bleibt).
Im Firefox klappt das ganze super.
Im IE (IE 9) funktionert es aber nicht. Und ich weiß nicht woran es liegt.

Das ganze ist eines meiner ersten CSS-Tests und deshalb sicherlich ausbaubar ;)
Trotzdem möchte ich es auch im IE zum laufen bringen.

Ich hänge mal die beiden Screenshots (Firefox und IE) an.
Der grobe Aufbau der Seite ist wie folgt:
HTML:
<div id="wrapper">
   <div id="left">
      <div id="login"></div>
      <div id="menu"></div>
      <div id="footer"></div>
   </div>
   <div id="main">
      <div id="content">
          <div id="debug"></div>
      </div>
   </div>
</div>

CSS-Stylesheet ist folgendes:
Code:
@charset "utf-8"; 
/**
 * Homepage xyz
 *
 * @link    ...
 * @version 1.0
 */

/**
 * Globale Einstellungen und Bugfixes
 * 
 * @section Browser-Reset
 */

/* Zur&uuml;cksetzen der Innen- und Au&szlig;enabst&auml;nde */
* {
  margin: 0;
  padding: 0;
}

/**
 * Schriftgr&ouml;e kontrollieren
 */
body, td, th { font: normal 75%/167% Georgia, Palatino, "Times New Roman", serif; }
td, th { f\ont-size: 100.01%; }

/* Farben und Hintergr&uuml;nde setzen */
html, body {
  color: #3b2b20;
  background-color: white; 
}
body {
  width: 100%;
}
div#wrapper {
width: 100%;
float: left;
}
div#left {
background: url(images/menu.png) top center no-repeat;
position: fixed;
height: 100%;
width: 250px;
float: left;
z-index:100;
}
div#main {
/*width: 100%;*/
z-index:0;
float: right;
padding-left: 250px;
}
div#content {
background: white;
width: 90%;
padding-top: 20px;
z-index:0;
}
p#content {
text-align:left;
clear:both;
}

/* Farben: #263147 und #1F273C */
#left ul{
  left: 10px;
  position: absolute;
  margin: 0;
}
#left ul li {
  list-style: none;
  margin: 0 0 0 0;
}
#left ul a,
#left ul strong {
  /* background: url(images/button1.png) bottom left repeat-x; */
  text-transform: uppercase;
  text-decoration: none;
  font-weight: bold;
  color: white;
  padding: .8em;
  display: block;
  font-size: 16;
}
#left ul a:hover,
#left ul a:focus,
#left ul a:active,
#left ul strong {
  /* background: url(images/button2.png) bottom left repeat-x; */
  text-decoration: underline;
}

#debug {
color: red;
}

#login table {
text-align: center;
}

#footer ul {
bottom: 20px;
}

Wo liegt der Fehler, dass der IE das nicht blickt?
Wie man auf dem angehängten Bild sehen kann, schneidet er das linke Menü einfach ab und rückt den Text rechts zu weit ein.

Außerdem bleibt das Menü beim Scrollen nicht da stehen wo es ist...

Wie oben beschrieben funktioniert das alles im Firefox

Und noch ne kleine Zwischenfrage:
Welches Tool nimmt man am besten wenn man solche Sachen entwickelt zum Debuggen?
Für den Firefox hab ich "Firebug", aber was soll ich für den IE nehmen? Vielleicht könnte ich dann das Problem selbst lösen
 

Anhänge

  • Firefox.PNG
    Firefox.PNG
    138,2 KB · Aufrufe: 166
  • IE.PNG
    IE.PNG
    81,4 KB · Aufrufe: 222
Im IE9 und IE8 gibt es die Entwicklertools; erreichbar über F12. Es wäre nicht ganz verkehrt, das gesamte HTML-Dokument zu sehen (auch wegen Doctype etc.).

P.S. was sollen denn in Kommentaren die Ersetzungsausdrücke für Umlaute? Kommentare ignoriert der Browser ;)
 
Zuletzt bearbeitet:
Oh die Tools sehen ja fast so aus wie Firebug^^
Genau das hab ich gesucht...

Hier der HTML-Code (den Content-Text hab ich etwas gekürzt, der war nur zum Testen so lange):

HTML:
<html>
  <head>
    <title>XYZ</title>
    <link rel="stylesheet" href="default.css" type="text/css" media="screen, projection" />
  </head>
  <body>
<div id="wrapper">
<!-- Logo -->
<div id="left">

    <h1><img src="images/logo.png" alt="Logo: XYZ" width="225" height="150" /></h1>
<!-- Login -->
<div id="login"><form action='' method='post'>
<table><tr><td>
<input type='hidden' name='login' value='true'> 
	Benutzername:</td></tr><tr><td><input type='text' name='username' size='15'></td></tr>
	<tr><td>Passwort:</td></tr><tr><td><input type='password' name='password' size='15' ></td></tr><tr><td>     
	<input type='submit' value='Anmelden' class='button'></td></tr></table>
</form></div>
<!-- Menu -->
<div id="menu"><ul>
<li><strong title="Hier befinden Sie sich gerade.">Main</strong></li><li><a href="/homepage/index.php?site=test.php">Test</a></li></ul>

</div>
<div id="footer">
<ul><li><a href="/homepage/index.php?site=impressum.php">Impressum</a></li></ul></div>
</div>

<!-- Main -->
  <div id="main">
  <div id="content"><h1>Willkommen auf meiner Homepage!</h1>
 
     
    <p>Dieser Internetauftritt ist noch in Bearbeitung.</p>
     
    <p>Bitte versuchen Sie es sp&auml;ter erneutBitte versuchen Sie es sp&auml;ter erneutBitte versuchen Sie es sp&auml;ter erneut</p>

    <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />123<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />123<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />123<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />  <div id="debug"><p>DEBUG an:<br><br>$_GET:<br>Array
(
    [site] => main.php
)
<br><br>$_POST:<br>Array
(
)
<br><br>$_COOKIE:<br>Array
(
    [PHPSESSID] => 19oc59s3tgqvcf8epseb660m96
)
<br><br>$_SESSION:<br>Array
(
)
</p></div>
  </div>

  </div>
  </div>
  </body>
</html>

Hab den DEBUG-Modus an, deshalb sieht man unten Arrays wie zB Session usw.
Also das einfach nicht beachten.

Und warum dort die Umlaute ersetzt sind:
Das macht Weaverslave entweder überall vollautomatisch oder eben nicht. Ich habs so eingestellt, dass er sie ersetzt. So kann ich zB HTML-Output mit Umlauten einfach tippen und er ersetzt sie sofort.
Schön ists nicht, ich weiß...


edit:
Mit folgender Änderung bleibt im IE das Menü abgeschnitten aber der rechte "Content"-Text fängt genau rechts neben dem Menü an:
Code:
div#left {
background: url(images/menu.png) top center no-repeat;
position: fixed;
height: 100%;
width: 250px;
float: left;
z-index:100;
}
div#main {
/*width: 100%;*/
z-index:0;
float: right;
padding-top: 20px;
/*padding-left: 250px;*/
left: 250px;
}
div#content {
background: white;
/*width: 90%;*/
/*padding-left: 0px;*/
z-index:0;
}

Allerdings schiebt sich der rechte Text dann im Firefox unter das Menü :(

edit2: Die Menüpunkte scheinen auch im IE vorhanden zu sein. Wenn man alles markiert sieht man, dass es nur weißer Text auf weißem Grund ist.
Wenn ich mir mit den Entwicklertools dann das Layout ansehe, seh ich, dass das Layout vom div "left" nur 288 px hoch ist. Wenn ich das erhöhe, dann zeigt er mir den Hintergrund auch an...eigentlich steht aber beim left-div die Höhe 100%...

edit3: Also hab das Problem weshalb sich der Text im IE nach rechts verschiebt gefunden. Im IE zeigt er mir noch ein Offset von 254px an, was es im Firefox gar nicht gibt.
Gibts die möglichkeit dieses Offset auf 0 zu setzen oder so?
 
Zuletzt bearbeitet:
Nimm das float:right da raus, das <div> nach dem float:left schiebt sich automatisch daneben bzw. überlappt den floatended. Und schon mal was von margin gehört? warum eigentlich fixed auf den ersten container? viel zu umständlich alles.
 
*staun*
float:left rausgemacht, und der Haupttext passt schonmal in beiden Browsern...

Hab padding genommen weil ich sowieso keinen rahmen vorhatte. Aber du hast natürlich Recht, ich habs jetzt auch auf margin geändert. Wieso schlampig machen, wenns auch gescheid geht.

fixed is aufm ersten Container weil das die Menüleiste auf der linken Seite ist. Und die soll immer angezeigt werden. (Also soll beim scrollen mitrutschen)

Das ganze ist so nach und nach gewachsen, kenn mich auch kaum noch aus. Find es auch total umständlich^^
Aber bin froh dass ich es soweit zum laufen gebracht habe...
Hätt ich das ganze komplett anders aufbauen sollen?

Wenn jetzt noch jemand weiß, warum er das Menü im IE links nur 288 pixel hoch macht und das position:fixed nicht funktioniert, wäre ich fürs erste glücklich ;)

Vielen Dank für die Hilfe an euch beide. Es wird.
 
Poste mal den aktuellen Code HTML+CSS oder noch besser eine temporäre Seite, sowas muss man sich live anschauen um zu sehen was dem IE da jetzt nicht schmeckt.
Hast du einen DocType angegeben? ich weiß ja nicht wie der IE9 reagiert "hab keinen" wenn dieser fehlt, meistens arbeiten die IEs mit DocType ganz anders als ohne. Und viele Probleme lösen sich dann auch von selbst auf. Merke, IMMER mit DocType arbeiten auch wenns nur eine Testseite ist.

Float+fixed ist keine gute Mischung, manche Browser reagieren agrressiv auf sowas. Eventuell machst du für die IEs eine extra CSS, denn viele Sachen wirst du nie so hinbekommen das sie in allen Browsern gleich intepretiert werden. Meistens betrifft das die IE bzw. wenns bei denen gut ausssieht, sieht es in FF, Opera oder Chrome bes...aus. Doch eigentlich sollte es derartige Probleme ab IE8 nicht geben wenn das Markup vernünftig ist. IE7 dagegen braucht für das eine oder andere schon eine Extrabehandlung.
 
Zuletzt bearbeitet:
So hab mal schnell mein XAMPP umgebastelt damit man von außen drauf kommt.
Allerdings schreibe ich aus Sicherheitsgründen
http://178.10verschiedene.69.224:12Wörter345/Homepage
in die Adresse ;)
Mach einfach die beiden Wörter raus und es sollte gehen (das Logo hab ich auch mal entfernt)

Ps: Macht euch keine Hoffnungen, es läuft nur diese eine Seite drauf. phpmyadmin hab ich runter und Kennwörter sind auch geändert ;)

Falls du noch irgendwas brauchst, sag Bescheid.

DocType hab ich nix drin...werd ich mal noch reinmachen, wusste nicht dass das sooo wichtig für den Test ist.
Eigentlich wollte ich mit einem Style für alle auskommen. Allerdings werde ich dann auch was einblenden, dass man sich nen gescheiden Browser runterladen soll, wenn man Probleme hat (falls man eben IE uralt oder so noch hat)
Ergänzung ()

Ach du meine Sch***

das is mir jetzt weng peinlich, aber mit DocType läufts...
Das Problem hattest du aber schon öfters oder? Weil du die Fehler gleich erkannt hast :)

Dankeschön ohne dich hätte das die ganze nächste Woche in Anspruch genommen
 
Ja sicher hatte ich so ein ähnliches Problem auch mal. Das merkst du aber auch nur sobald ein IE ins spiel kommt. Dann steht man meistens wie du da und weiß nicht was man falsch macht wobei EIGENTLICH alles richtig ist. Wenn du beim IE keinen DocType angibst schaltet der gute in den QuirksMode, das kannst du 1. entweder mit dem DocType verhindern oder 2. als Meta angeben in welchen Modus der IE das Document parsen soll, also sowas "bin mir aber bei 2. nicht 100% sicher:

<meta http-equiv="X-UA-Compatible" content="IE9" />
oder
<meta http-equiv="X-UA-Compatible" content="IE8" />
oder
<meta http-equiv="X-UA-Compatible" content="IE7" />
u.s.w

Damit kannst du deine Seiten auch unter allen diesen IEs testen, auch einen
IE5/6 kannst du simulieren..

<meta http-equiv="X-UA-Compatible" content="IE5" />

und dann natürlich weinen :D
Auf der ganz sicheren Seite bist du immer mit einem DocType.

Zu deinem Code, hiermit..ganz einfach, das was du vorhast. Das einzige was du hier jetzt noch machen musst ist mit MARGIN auf den text Conatiner spielen um die Abstände so wie du sie haben möchtest einzustellen.
Oder das Menü noch zu positionieren oder oder ...

HTML:
#text {
  margin-left: 150px
 }
#menu { 
 position:fixed; 
 width:150px; 
 height:150px
 }
#wrapper {
 width: 600px
 }
 
<div id="wrapper">
 <div id="menu">Menu</div>
  <div id="text">
   <p>Text</p>
  </div>
 </div>
 
Zuletzt bearbeitet:
Ich dachte in dem Fall, dass mehr mehr ist.
Deshalb auch so viele divs...Man weiß ja nie, was noch kommt.

Interessant. Ich frag mich gerade wo man sowas lernt^^ :freak:

Ich vereinfache das ganze gleich mal ein bisschen. Weil ich merk ja selbst, dass ich nixmehr durchblicke...

edit: Port hab ich wieder geschlossen, hoffe das nicht noch jemand gerade am anschauen meiner Seite ist.
 
Nein, du musst immer schauen und überlegen, wie du etwas mit so wenig Markup wie nur möglich machen kannst.
 
Also gut.
Bin noch am umbauen, aber ich denk jetzt komm ich erstmal nen ganzes Stück weiter.

Hatte davor leider noch nicht viel mit Webdesign usw. zu tun.
hässliches PHP mit ein bisserl HTML ist absolut kein Problem. Nur wenns eben schön werden soll, dann bin ich aufgeschmissen :lol:

Das letzte CSS-Tutorial ist leider auch schon wieder lange her, deshalb tu ich mir da recht schwer (hab CSS noch nie "richtig" benutzt).
Mal sehen wann ich das nächste mal die Hilfe dieses netten Forums in Anspruch nehmen muss...

Danke für die Hilfe
Ergänzung ()

So jetzt hab ich eben nochmal das probiert was ich schonmal machen wollte, was aber damals nicht hingehaut hat^^
Und zwar oben noch eine Leiste (fixed) hin.

Allerdings entsteht dann auf der linken Seite im Firefox (diesmal passts im IE) ein weißes Eck.
Wenn man statt Vollbild den Firefox im Fenstermodus offen hat, dann verschiebt sich das ganze noch ein kleines bisschen mehr (sieht man oben ganz leicht. Das dürfte nur eine Reihe von Pixeln sein).

CSS hierzu:
Code:
div#wrapper {
  width: 100%;
  float: left;
}
div#left {
  background: url(images/menu.png) top center no-repeat;
  position: fixed;
  height: 100%;
  width: 250px;
  float: left;
  z-index:100;
}
div#main {
  z-index:0;
  margin-top: 20px;
  margin-left: 250px;
}
div#header {
  position: fixed;
  height: 20px;
  width: 100%;
  float: left;
  z-index:99;
  background-color: red;
  padding-left: 250px;
}

Denn Aufbau hab ich jetzt vereinfacht, so wie du vorgeschlagen hast:
HTML:
<div id="wrapper">
 <div id="left">linkes Menu</div>
 <div id="header">rote Leiste oben</div>
  <div id="main">
   <p>Haupttext</p>
  </div>
 </div>

Kann mir das nicht erklären, warum dieses weiße Eck mit der gleichen Höhe wie die rote Leiste entsteht...
 

Anhänge

  • Fenster.PNG
    Fenster.PNG
    79,5 KB · Aufrufe: 153
  • Vollbild.PNG
    Vollbild.PNG
    77,8 KB · Aufrufe: 157
Sehe jetzt nicht was du genau meist, mach mal ein Pfeil an der Stelle rein.

Frage: Warum zum Teufel floatest du einen <div> Container mit 100% Breite? der dann auch noch der Hauptwrapper ist.

Mach dich mal über float schlau und wofür das gebraucht wird, mir scheint nämlich das du einfach was nutzt weils gut klingt :)

Wenn du möchtest das alles in dem Wrapper nach links ausgerichtet wird, das wird es automatisch. Das ist Standard. Das float steht da jetzt für nix, ausser das es dir im weiteren Verlauf Probleme machen kann, wie gesagt lese dich mal irgendwo durch denn ein float muss ggf. auch wieder aufgehoben werden sonst stehst du wieder da und weißt nicht was los ist.

Float wirklich nur da benutzen wo es nicht anders geht, und auch nur mit Kopf denn dieser sollte auch wieder aufgehoben werden damit alles wieder normal wird, denn...der IE wird dir irgendwann wenn du weiter bist wieder Probleme machen.

CSS:Float http://www.css-technik.de/css-examples/219_9/
IElayout http://onhavinglayout.fwpf-webdesign.de/
 
Zuletzt bearbeitet:
Bin gerade nicht an meinem Rechner, deshalb kann ich das mit dem Pfeil nicht machen.
Aber guck dir mal das zweite Bild an. Und dann von unten nach oben mal die linke Kante anschauen. Links oben wirst du statt dem blauen Hintergrundbild mal ein kleines Eck weiß sehen, welches nur durch diesen oberen "Header"-Div entsteht (liegt sicher nur dadran, wenn ichs wegmache gehts).
Und wenn man das Fenster vom Firefox verkleinert (erstes Bild) dann entsteht auch über dem Menühintergrund ein kleiner weißer Streifen.
Mit Firebug sieht man leider auch nichts auffälliges...

Das float steht da noch von früher. Werds rausmachen und mir deine Links zu Herzen nehmen. (Hab jetzt schon die CSS-Datei um viele viele Zeilen gekürzt)
 
Jetzt hab ichs gesehen:

Das wird an den ganzen floats liegen, ich habe das jetzt mal mit Farben gemacht und da gibt es diese Kante nicht. Ich habe ja auch dieses BG-Bild nicht um das damit zu testen aber ich denke das wird schon passen.

HTML:
* { margin: 0px; padding: 0px }
 
div#wrapper {
  width: 100%
}
 
div#left {
  background: #096;
  position: fixed;
  height: 100%;
  width: 250px;
  z-index:100
}
 
div#main {
 z-index:0;
 margin-left: 250px;
 background: #09C
}
 
div#header {
  position: fixed;
  height: 20px;
  width: 100%;
  z-index:99;
  background-color: red;
  padding-left: 250px
}
 
Werds morgen gleich mal testen.

Also am Bild an sich dürfte es nicht liegen (höchstens allgemein daran, dass ich halt ein Bild benutzt habe und keine Hintergrundfarbe).
Aber vielleicht war es wirklich mein float-durcheinander.

Ich melde mich morgen ob es geklappt hat oder nicht.
Ergänzung ()

So ich habs eben ausprobiert.
Wenn ich alle floats die du rausgenommen hast auskommentiere, dann verschwindet schonmal dieses weiße Eck.
Allerdings rutscht dann die ganze Seite 20px runter und oben ist ein 20px hoher weißer Rand.

Im Firefox sieht man, dass dieser Rand auf jeden Fall nicht durch padding o. Ä. des Wrappers entstanden ist. Der weiße Rand ist einfach da und gehört nicht zu irgendeinem div.

Im IE verhält sich das ähnlich. Der weiße Rand entsteht auch, allerdings seh ich in den Entwicklertools, dass der Wrapper oben ein Offset von 20px hat...

Was mach ich jetzt?^^

margin und padding steht für * auch auf 0... Aber wenns das wäre, würde ichs ja auch als padding, margin oder so sehen.
Ergänzung ()

Hab das Problem mit der weißen 20px Leiste gefunden.
Hab doch auf deinen Rat hin alles (alles hätte ich nicht machen sollen, ich weiß^^) von padding auf margin gemacht.
Dadurch hatte ich oben keine 20px padding sondern margin (für den Hauptteil, der 20px weiter unten anfängt weil ja oben die rote Leiste 20px hoch sein soll)

Also das weiße Ding ist weg.

Allerdings bleibt jetzt das weiße Eck links oben...
Ich häng mal nen Screen an von der aktuellen Lage und hier der CSS-Teil:

Code:
@charset "utf-8"; 
/**
 * Homepage ...
 *
 * @link    ...
 * @version 1.0
 */

/**
 * Globale Einstellungen und Bugfixes
 * 
 * @section Browser-Reset
 */

/* Zur&uuml;cksetzen der Innen- und Au&szlig;enabst&auml;nde */
* {
  margin: 0;
  padding: 0;
}

/**
 * Schriftgr&ouml;e kontrollieren
 */
body, td, th { font: normal 75%/167% Georgia, Palatino, "Times New Roman", serif; }
td, th { f\ont-size: 100.01%; }

/* Farben und Hintergr&uuml;nde setzen */
html, body {
  color: #3b2b20;
  background-color: white; 
}
body {
  width: 100%;
}


/*DIVs*/
div#wrapper {
  width: 100%;
  /*float: left;*/
}
div#left {
  background: url(images/menu.png) top center no-repeat;
  position: fixed;
  height: 100%;
  width: 250px;
  /*float: left;*/
  z-index:100;
}
div#main {
  z-index:0;
  padding-top: 40px;
  padding-left: 250px;
}
div#header {
  position: fixed;
  height: 20px;
  width: 100%;
  /*float: left;*/
  z-index:99;
  background-color: red;
  padding:2px;
  padding-left: 250px;
}


/*LEFT*/
/* Farben: #263147 und #1F273C */
#left ul {
  left: 10px;
  position: absolute;
  margin: 0;
  text-transform: uppercase;
  padding: .8em;
}
#left ul li {
  list-style: none;
  margin: 0 0 0 0;
  /*color: white;*/
  left: 10px;
  color: white;
  padding: .8em;
}
#left ul a,
#left ul strong {
  /* background: url(images/button1.png) bottom left repeat-x; */
  color: white;
  text-decoration: none;
  font-weight: bold;
  display: block;
  font-size: 16;  
}
#left ul a:hover,
#left ul a:focus,
#left ul a:active,
#left ul strong {
  /* background: url(images/button2.png) bottom left repeat-x; */
  text-decoration: underline;
}
#left table {
margin-left:20px;
}

#header ul {
list-style-type: none;
}
#header ul li {
float:left;
margin-right: 10px;
}


/*DEBUG*/
#debug {
color: red;
}
Hab das weiße Eck nochmal mit roten Pfeilen gekennzeichnet.
Das Eck ändert sich auch oben mit der Header-Leiste.
Wenn die höher wird, dann wird auch das Eck höher...
Ab irgendwo zwischen 300 und 400px Höhe der Leiste verschwindet das weiße Eck dann aber und alles ist gut (bis auf dass die Leiste dann viel zu hoch ist^^)
 

Anhänge

  • weisseseck.PNG
    weisseseck.PNG
    202,8 KB · Aufrufe: 115
Zuletzt bearbeitet:
Kann ich nicht reproduzieren. Bei mir gibt es das Eck nicht, getestet in IE, FF, Opera, Chrome.

Nimm mal testweise die bg Grafik raus.

Nutzt ja auch nix wenn ich dir hier versuche was zu erklären du aber trotzdem ein Haufen unnötiges Zeug in die CSS packst. Da bringt die Hilfe ja nix, ich investiere hier Zeit, du investierst Zeit und am Schluss sind wir immer noch da wo wir waren.

Schaue erst das du CSS etwas verstehst ansonsten bringt das wirklich nichts z.B. oben steht
* { margin:0px; padding:0px } das heisst, alle Elemente haben 0 padding und 0 margin, und es werden auch nicht mehr, weiter unten schreibst du dann aber wieder margin: 0 0 0 0;
Auch hatte ich gestern gesagt da du float hier absolut nicht benötigst, trotzdem hast du es wieder eingefügt gehabt. Padding ist für INNENABSTÄNGE, Margin für AUSSENABSTÄNDE, das ist kein Rahmen, einen Rahmen machst du mit Border, doch das hat mit padding und margin recht wenig zutun.

Zum Bsp. wenn du eine <div> Box hast die 150px breit ist, du dieser noch einen Aussenabstand von z.B. 5px gibst, also so: margin-left: 5px; margin-right: 5px dann ist diese Box 160px breit, wenn du aber genau 150px benötigst aber auf den Aussenabstand nicht verzichten kannst, dann muss du die Breite auf 140px ändern, macht 140px width + 5px margin left + 5px margin right = 150px netto.

Bei padding ist das anders, die Breite bleibt immer 150px es ändert sich nur der Innenraum, heisst,
die Box ist 150px, innen wie auch aussen. Machst du jetzt ein padding-left: 5px; padding-right: 5px
dann hast du innen in dieser Box nur noch eine nutzbare Breite von 140px, die Box ist aber immer noch 150px breit.

Und Border musst du immer dazu addieren. Wenn der Rahmen also 2px; ist dann ist die Box 152px, um wieder auf 150px zu kommen musst du entweder margin oder width um 2px verringern.


Nutze nicht etwas wo du nicht weißt was es macht und anrichten kann, frage vorher.
 
Zuletzt bearbeitet:
margin: 0 0 0 0; kommt daher, dass ich das aus irgendeinem Tutorial mal kopiert habe. Dass das * für alles gilt is mir klar.

float hab ich doch überall raus...
4 mal ist es im Text.
3mal auskommentiert und das 4te mal ist es damit die Liste nicht untereinander sondern nebeneinander angezeigt wird.
Weiß nicht wo das jetzt ein float stören sollte.

Auch was der Unterschied zwischen padding und margin ist weiß ich. Allerdings befindet sich der Rahmen genau zwischen padding und margin (is ja logisch, Border ist zwischen Innen- und Außenabstand). Habe nur gestern eben alles geändert (per suchen und ersetzen^^) und dann hatte es ja super funktioniert (dank den vielen floats...). Ohne die Floats entstand dann eben dieser weiße Rand (margin). Das hab ich aber ja mittlerweile gelöst/geändert.

Mathe Nachhilfe :D Ist mir bewusst, dass das so ist.

Aber jetzt zurück zum eigentlichen Problem:
Das doppelt-gemobelte margin (war mehrmals sogar hab ich gesehen) hab ich rausgemacht.
Und mit Hintergrundfarbe statt Grafik hab ich auch eben getestet. Das Phänomen ist ganz komisch:
-nur Grafik: Weißes Eck, Rest passt
-Grafik UND Hintergrundfarbe (der rechte Teil der Grafik ist ja durchsichtig): Das weiße Eck verschwindet. Das Eck hat aber nicht etwa die Hintergrundfarbe sondern es ist tatsächlich der fehlende Schnippsel der Grafik. Leider kann ich das nicht so lassen, weil rechts vom Menü eben was durchsichtig ist, dann würde der Hintergrund auch über der oberen roten Leiste liegen.
-nur Hintergrundfarbe: Weißes Eck ist auch weg. Alles hat natürlich die Hintergrundfarbe

Ich hängt nochmal ein Bild mit Hintergrundfarbe UND Grafik an^^
Code:
div#left {
  background: url(images/menu.png) top center no-repeat;
  background-color: black;
  position: fixed;
  height: 100%;
  width: 250px;
  /*float: left;*/
  z-index:100;
}

Das gibts doch garnet...
 

Anhänge

  • Grafik+Hintergrund.PNG
    Grafik+Hintergrund.PNG
    49 KB · Aufrufe: 182
Ich sehe nix, hast du das Problem jetzt beseitigt? falls nicht, gib mir mal die Grafik als Download.
 
Wenn ich als Hintergrund noch zusätzlich schwarz angebe (sieht man ja auf dem Bild), dann ist dieses weiße kleine Eck weg.
Lass ichs aber so wie ich es will (also ohne zusätzlichen schwarzen Hintergrund), dann ist dieses weiße Eck wieder da...

edit: Hab es bei so nem Hoster hochgeladen.
http://www.speedshare.org/download.php?id=763B01BA11
Unten ist einer kleiner Button zum Download (schmudelige Werbung nicht beachten ;) )
 
Zuletzt bearbeitet:
Also dann stimmt bei dir was nicht, aber hier:

Test

Ich glaube das ist so ungefähr wie du das haben wolltest. Eins sollten dir dabei aber klar sein. Unter IE7 muss du da Layout ändern bzw. für die Browser anpassen weil die das so nicht verstehen.
Und dann noch, solltest du das linke Menü mal ganz voll machen wollen, denke daran, nach ca. 700px Höhe werden die meisten Notebook Surfer den Rest nicht sehen können. Deshalb überlege dir genau ob du so ein Layout beibehalten möchtest.
 
Zurück
Oben