CSS Eigenschaften von Body nicht kompatibel mit IE6/7

Pelzameise

Sachse
Registriert
Apr. 2008
Beiträge
5.221
Hi Leute,
Schaut euch mal den Anfang meines Werkes an: Tipps sind gerne gesehen, bin grade am anfangen.

HTML:
Code:
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
	<title>Ampelschaltung</title>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <link rel="stylesheet" href="format.css" />
	<script language="JavaScript" type="text/javascript">
<!--
function BilderVorladen()
{
    ampelbilder = new Array();

    if(document.images){
        
            ampelbilder[0] = new Image();
            ampelbilder[0].src = "bilder/rot.jpg";

            ampelbilder[1] = new Image();
            ampelbilder[1].src = "bilder/rotgelb.jpg";

            ampelbilder[2] = new Image();
            ampelbilder[2].src = "bilder/gelb.jpg";

            ampelbilder[3] = new Image();
            ampelbilder[3].src = "bilder/gruen.jpg";

            ampelbilder[4] = new Image();
            ampelbilder[4].src = "bilder/fussrot.jpg";

            ampelbilder[5] = new Image();
            ampelbilder[5].src = "bilder/fussgruen.jpg";			
    }
}



//-->
</script>

</head>
<body onload="BilderVorladen(), zaehler();">

<script language="JavaScript" type="text/javascript">
<!--
var x=0;

function zaehler()
{
  x = x + 1;
  if(x==5) alert("faettisch");
  setTimeout("zaehler()", 2000);
}


//-->
</script>

  
  <div id="bg">
  <img src="bilder/strasse.jpg" width="1" height="1" alt="Bildhintergrund" id="hintergrund" />
  </div>
  <div id="tabelle">
  <table>
 <tr>
  <td>text1</td>
  <td>text</td>
  <td></td>
  <td>text</td>
  <td>text</td>
 </tr>
 <tr>
  <td>text1</td>
  <td>text</td>
  <td><div align="center"><img align="center" src="bilder/gruen.jpg"></div></td>
  <td>text</td>
  <td>text</td>
 </tr>
 <tr>
  <td>text1</td>
  <td><div align="center"><img align="center" src="bilder/gruen.jpg"></div></td>
  <td>text</td>
  <td><div align="center"><img align="center" src="bilder/gruen.jpg"></div></td>
  <td>text</td>
 </tr>
 <tr>
  <td>text1</td>
  <td>text</td>
  <td><div align="center"><img align="center" src="bilder/gruen.jpg"></div></td>
  <td>text</td>
  <td>text</td>
 </tr>
 <tr>
  <td>text1</td>
  <td>text</td>
  <td>text</td>
  <td>text</td>
  <td>text</td>
 </tr>
</table>
</div>
</body>
</html>

CSS:
Code:
html {
width:100%;
height:100%;
}

body {
width:100%;
height:100%;
overflow:hidden;
}

img#hintergrund {
position: fixed;
top: 0em;
left: 0em;
width: 100%;
height: 100%;s
}

table{
width:100%;
height:100%;
padding:0px;
margin:0px;

}

div#tabelle {
position: absolute;
top: 0em;
left: 0em;
right: 0em;
bottom: 0em;
overflow: auto;
padding: 2em;
}

td{
width:20%;
height:20%;
border:1px solid #ffffff;
}

tr{
height:20%;
}

Bitte das Javascript nicht beachten, das war nur zum Ausprobieren (übrigens geht das Script von IE4 aufwärts :) )

Das Problem:
Der IE7 und abwärts zeigt die Tabelle nicht in voller Höhe an, sondern nur so, als ob hight:100% in table und body nicht da wären.

Auch wird overflow:hidden vom IE7 nicht unterstützt, d.h. es sind Scrollbalken vorhanden.

Könnt ihr mir Alternativen dazu sagen? Wichtig ist, dass das Hintergrundbild immer über das ganze Fenster gestreckt wird. (Strassenkreuzung von oben)
 
Kannst du mal den Link posten?
 
Sorry, ist nur auf meiner Platte, wird auch nur ein Schulprojekt. Kann aber ein .rar oder .7z anhängen, wenn du willst.
 
Mit Auto kommen ja dei Scrollbalken wieder. Und deshalb kann man dann die Tabelle immer etwas verschieben auf dem Bild. Das ist aber nicht so schlimm, mich stört eher, dass die Tabelle im IE nur über die halbe Seite geht. Firefox machts übrigens schon mit der Version 1.0 richtig.

Mit scrolling="no" im Bodytag gehts auch nicht.
 
Zuletzt bearbeitet:
Hmm, bei mir kommen gar keine "scroll"-Balken:



Irgend ein Attribut wird wohl im IE6/IE7 nicht richtig erkannt, bzw funktioniert zu 100%.

Mal die Attribute durchsehen.
 
Zuletzt bearbeitet:
Außerdem gibts in diesem Block
HTML:
img#hintergrund {
position: fixed;
top: 0em;
left: 0em;
width: 100%;
height: 100%;s
}
2 Probleme. Zum Einen wird der Wert fixed nicht vom IE6 unterstützt und nach height hat sich ein "s" eingeschlichen.

Es reicht auch wenn man bei Angaben mit 0 nur eine 0 schreibt (ohne Dimension -> top:0; ).
 
Das s ist entfernt, position:fixed auskommentiert. Jetzt kann ich im IE nicht mehr die Tabelle verschieben, hab aber in allen Browsern einen ekligen weißen Rand. Mal schauen, welche Alternative ich nehme.

@ volcem:
Mit welcher Version des IE hast du das gemacht?


Habt ihr keine Idee wegen der Tabelle?
 
im IE8 ist es ja auch kein Problem. Es geht hier um die früheren Versionen.
 

Anhänge

Also der Weiße Rand wird durch diesen Code hier verursacht:


HTML:
td{
width:20%;
height:20%;
border:1px solid #ffffff;
}

Einfach border:1px solid #ffffff; auskommentieren oder 0px setzen.

Leider kann ich IE6/7 nicht wirklich testen, vielleicht kannst du ja eine CSS schreiben die nur für IE6 ist.

Einbinden tust du es so :

HTML:
<!--[if lte IE 6]>
        <link rel="stylesheet" href="ie6.css" type="text/css" charset="utf-8" />
    <![endif]-->

Bzw if lte IE 7.

*edit*

Ahh Problem liegt wohl an der % Anzeige -.-

So wie ich das sehe, kann der IE6 keine % angaben in table { }
Mach mal bitte folgendes :

Tausche folgenden Code gegen diesen hier:

HTML:
div#tabelle {
position: absolute;
top: 0em;
left: 0em;
right: 0em;
bottom: 0em;
overflow: auto;
padding: 2em;
}

td{
width:20%;
height:20%;
border:1px solid #ffffff;
}

Gegen diesen hier:

HTML:
div#tabelle {
height:100%;
position: absolute;
top: 0em;
left: 0em;
right: 0em;
bottom: 0em;
overflow: auto;
padding: 2em;
}

td{
width:20%;
height:20%;
border:0px solid #ffffff;
}

Sollte dann ohne Probleme funktionieren.
 
Zuletzt bearbeitet:
Ich teste meine Seiten im virtuellen XP-Computer, wo ich IE3 bis IE7 installiert habe, sowie Firefox 1-3.

zum Thema:
Sieht auf jeden Fall besser aus, werde die extra IE-CSS datei machen. Mit overflow:hidden in div#tabelle bleibt beim Scrollen die Tabelle wenigstens dort, wo sie vorher war, deshalb ist das besser.

Kann man das mit dem if lte IE 7 auch für IE 3 bis 7 machen?
 
Noch ein Tipp, es lohnt sich nicht mehr für IE v < 6 zu entwickeln. Wenns im 6er läuft ist es schon gut, außer es wird gefordert - was ich aber bezweifle :)

Du kannst Conditional Comments ab dem IE5 verwenden, wobei wie gesagt, für IE5 zahlt es sich auch nicht mehr aus.
 
Uff, dass kann ich dir so nicht sagen, weiß nicht wie weit zurück der IE das implantiert hat.
Habe immer nur aus verschiedenen Gründen den IE 6 mit rein genommen.

Aber es wird wohl keiner mehr IE 3 - 5 benutzen, aber probieren geht über studieren, einfach versuchen.

Kannst aber ohne Probleme zwei oder mehrere css Dateien festlegen:

HTML:
<!--[if lte IE 6]>
        <link rel="stylesheet" href="ie6.css" type="text/css" charset="utf-8" />
    <![endif]--> 
<!--[if lte IE 7]>
        <link rel="stylesheet" href="ie7.css" type="text/css" charset="utf-8" />
    <![endif]-->

*edit*

Da war jemand satte 4Minuten schneller als ich...
 
Ich war jetzt auch eher auf den IE6 aus, bei den anderen gibt es aber fast keine Unterschiede in der Darstellung meiner Seite, deshalb hab ich das so hingeschrieben.

Code:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head  scrolling="no">
	<title>Ampelschaltung</title>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <link rel="stylesheet" href="format.css" />
	<script language="JavaScript" type="text/javascript">

So sieht der erste Teil meiner Datei aus. Wo soll ich das reinschreiben? Das ist ja ein Kommentar.
 
Mh, geht, obwohl es ein Kommentar ist. Versteh ich nicht.

Aber die Lösung ist gut.
 
Zurück
Oben