Nikolai: Stylesheet abhängig von Fensterbreite

Beitrag lesen

Hallo zusammen,

angeregt durch den Artikel "Multiples Webdesign" von PISKE & BRAUN in c't 1/2006 und der entsprechenden Demonstrationsseite
http://www.heise.de/ct/Redaktion/heb/multidesign.html
habe ich versucht, so etwas für die Website unseres DRK-Ortsvereins zu erreichen.

Das Prinzip sieht folgendermaßen aus:

Ein zentrales Stylesheet regelt die Formatierung, fünf weitere Stylesheets die Positionierung einzelner Elemente je nach Fensterbreite des Browsers. Für Besucher ohne aktiviertes Javascript ist ein Standard-Positionierungs-Stylesheet vorgesehen; bei Besuchern mit aktiviertem Javascript fragt ein Script die Fensterbreite ab:

<head>
...
<style type="text/css"><!-- @import
 url(./layout/formate.css); --></style>
<style type="text/css"><!-- @import
 url(./layout/position3.css); --></style>
</head>
<body>
<script type="text/javascript"
 src="./layout/multidesign.js"></script>
...

Das Script multidesign.js sieht nun so aus:

var stylesheet, breite;

if (window.innerWidth) {
 breite = window.innerWidth;
} else {
 breite = document.body.clientWidth;
}

if (breite<=608) {
 stylesheet = 'position1.css'
}
else if (breite<=760) {
 stylesheet = 'position2.css';
}
else if (breite <=960) {
 stylesheet = 'position3.css';
}
else if (breite <=1200) {
 stylesheet = 'position4.css';
}
else {
 stylesheet = 'position5.css';
}

document.writeln('<style type="text/css"><!-- @import url(multidesign/' + stylesheet + '); --> </style>');

// Zum Umschalten per Link
function demo(x, y) {
 window.resizeTo(x, y);
 location.reload();
}

Mein Fehler bei der ganzen Chose: Ich habe von Javascript so ziemlich gar keine Ahnung und habe das aus dem Artikel und von der Multidesign-Seite abgeguckt. Rächt sich prompt durch Nichtfunktionieren. Es wird immer auf das Standard-Positionierungs-Styesheet position3.css zurückgegriffen, nicht entsprechend der Fensterbreite ggf. auf eines der anderen.
Getestet sowohl online als auch offline auf drei verschiedenen Windows-Systemen (2000, XP, Vista) und mit verschiedenen Browsern (IE 5, 6 u. 7, Opera 9.27, Firefox 1.5 u. 2, Netscape 4.75 u. 9).

So, wie ich die Javascript-Einführung in SELFHTML verstehe, ist JS eine Browserangelegenheit, also auch nicht davon abhängig, daß serverseitig JS unterstützt wird.

Findet jemand den Fehler? Ich bin überfragt; und die Idee, im JS den Pfad für die Stylesheets zu konkretisieren, hatte ich auch schon, ohne Erfolg.
(Also so:
if (breite<=608) {
 stylesheet = './layout/position1.css'
}
usw.)

Die online-Variante meines Versuchs findet sich derzeit unter
http://www.drk-linz.de/test/
(nur für die ersten drei Seiten sind auch schon die Bilder hochgeladen).

Freundliche Grüße,
Nikolai