4.1k Aufrufe
Gefragt in Webseiten HTML von friedel Experte (3.3k Punkte)
Hallo.

Ich habe mal wieder ein Problem, für das ich keine Lösung finde. Ich bastel gerade eine Seite, bei der ein Bild so ins Browserfenster eingepasst werden soll, dass es möglichst groß ist, aber vollständig sichtbar ist. Mein Script hat bei kleinen Fensterbreiten nicht funktioniert und ich habe angefangen, nach und nach alles aus der Seite zu löschen, sodass das Problem gerade noch besteht.

Ich habe jetzt folgende Minimalseite:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title></title>
<script type="text/javascript" src="file.js"></script>
<link rel="stylesheet" type="text/css" href="file.css">
</head>

<body>
</body>
</html>


Die file.css sieht so aus:
* {margin:0;padding:0;}
html, body {width:100%; height:100%;}
Aber ich glaube, die ist nicht relevant.

Die file.js enthält jetzt nur noch:
function init() {
Breite = Fensterbreite();
alert("Breite:"+Breite);
};

window.onload = init;

function Fensterbreite() {
if (window.innerWidth) return window.innerWidth; // Ermitteln der inneren Fensterbreite
else if (document.body.clientWidth) return document.body.clientWidth; // Ermitteln der inneren Fensterbreite für alte IE
else if (document.documentElement.clientWidth) return document.documentElement.clientWidth; // Ermitteln der inneren Fensterbreite für neue IE
};


Der Firefox verarbeitet window.innerWidth, sodass die anderen Zeilen der function Fensterbreite() nicht greifen. Die Alertbox gibt mir auch die korrekte Fensterbreite aus, wenn das Fenster schön breit ist. Wenn ich das Fenster verkleinere und aktualisiere (neu lade) wird ein kleinerer Wert ausgegeben, solange das Fenster mindestens 512px breit ist. Wenn ich das Fenster weiter verkleinere, bleibt der Wert immer bei 512. Bei meinem Notebook (mit gleicher Firefoxversion) passiert genau das gleiche, nur geht es hier bis 343 runter. Egal wie schmal ich das Fenster mache, es bleibt immer bei mindestens 343.

Woran liegt das? Wie kann ich die korrekte innere Fensterbreite ermitteln?

Vielen Dank.
Friedel

11 Antworten

0 Punkte
Beantwortet von
alle Leisten aus: 142px
nur Menüleiste: 104px
nur Symbolleiste: 316px
beide Leisten: 275px
alles bei gleicher (minimaler) Fensterbreite

Fazit: ganz schöner Murks im Programm!
...