Hallo,
<Disclaimer>
Jaaa, ich weiß, Navigationselemente mit Javascript erzeugen ist pfuibäh, aber was will man machen, wenn die Dinger an möglichst viele Bildschirmauflösungen anzupassen sind und übermorgen Deadline ist?
</Disclaimer>
"eigentlich" ganz einfach: Man gibt deren Größe über CSS relativ an, etwa in %, eventuell auch in em, dann sind sie relativ zur Schriftgröße. Und die Bildschirmauflösung hat nun wirklich nichts damit zu tun; was du meinst, ist allenfalls die Fenstergröße.
Vielleicht möchtest du also die fast fertige Javascript-Variante nur als Provisorium sehen, das dringend noch eine JS-freie Fallback-Lösung braucht, eventuell sogar ein komplettes Redesign.
Was mache ich falsch?
Ich sehe mehrere gemeine Fehler.
var w=screen.width;
Wie schon gesagt: Die Größe des Bildschirms interessiert dich eigentlich nicht, was du suchst, ist höchstens die Fensterbreite (body.offseWidth).
var lnk=document.createAttribute("onClick");
Hier hängst du dem document-Objekt ein Attribut namens onClick an. Erstens meinst du wahrscheinlich gar nicht das document-Objekt, sondern eins deiner img-Objekte. Zweitens ist die Vorgehensweise mit setAttribute() problematisch, besser ist <objekt>.<eigenschaft>=<wert>.
Drittens wird sich kein Browser der Welt um eine Eigenschaft namens onClick kümmern - du meinst ganz bestimmt onclick. Javascript ist case-sensitive.
lnk.nodeValue="start-d_text.html";
Hier weist du dem onclick-Handler (ich nehme an, den hast du in Wirklichkeit gemeint) den String "start-d_text.html" zu. Und das ist Unsinn. Ein Eventhandler ist eine Javascript-Funktionsreferenz, kein String, der zufällig aussieht wie eine URL.
So long,
Martin
Küssen ist die schönste Methode, eine Frau zum Schweigen zu bringen.