online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon elactic vom 30.10.2019, 19:51 Options

zwei verschiedene stylesheets laden

hallo zusammen.
eins im voraus: ich habe ÜBERHAUPT keine ahnung von js !!!
ich benutze js nur um bei einer html basierten hp je nach bildschirmauflösung des users verschieden große bilder einfügen oder ein anderes framset zu erzeugen.
das sieht bei mir dann zb so aus:

function getstartimage()
{
if (screen.width < 1280)
return "<img src='img/beispiel1_small.jpg'>";
return "<img src='img/beispiel1.jpg'>";
}


warscheinlich primitiv - erfüllt aber seinen zweck (wie gesagt ich werde anfangen es zu lernen^^)
jetzt möchte ich je nach auflösung eine anderes stylesheet laden.
normalerweise (also mit nur EINEM css) hab ich das so gemacht:

<head>
<title>Lichtenrader Nudelrunde</title>
<meta name="keywords" content="">
<script language="JavaScript" src="javascript/java.js" type="text/javascript">
<link rel='stylesheet' type='text/css' href='style/style.css'>
</head>


jetzt möchte ich das link rel="stylesheet" ... ersetzen durch einen js befehl der je nach auflösung einen anderen text an diese stelle setzt (also zb style.css oder stylesmall.css)
ich hatte die idee ein script einzubauen, sowas wie

<script language="JavaScript" src="javascript/java.js" type="text/javascript">
document.write(getstyle());
</script>


und in der js steht dann

function getstyle()
{
if (screen.width < 1280)
return '<link rel='stylesheet' type='text/css' href='style/style.css_small'>";
return '<link rel='stylesheet' type='text/css' href='style/style.css'>";
}


soweit die idee. leider bekomme ich nur ein weißen bildschirm.

frage: was is falsch?
ist der ansatz total falsch?
es wäre toll wenn ihr einen vorschlag machen könntet der dieser idee ähnlich ist weil ich wirklich noch garkeine ahnung von js habe und es hasse formeln zu benutzen die ich nicht verstehe.
ich bin aber für alles offen solange es funktioniert.
danke im voraus
elactic


Antwort schreiben

Antwort 1 von JavaScriptler vom 31.10.2019, 09:05 Options

Zitat:
ist der ansatz total falsch?
könnte man sagen!

Wie kommst du auf die Idee, von screen.width auf die Größe des Anzeigebereichs des Browsers zu schließen? Mal abgesehen von virtuellen Bildschirmen, bei denen screen.width wesentlich größere Werte als den reellen Bildschirm liefert, sind die meisten Browser derartig mit Tollbars links rechts oben unten so gespickt, dass für Internetseiten da nicht so viel bleibt. Zumal das Browserfenster an sich ja auch gar nicht Bildschirm-füllend geöffnet sein muss.

zu
<script language="JavaScript" src="javascript/java.js" type="text/javascript">
document.write(getstyle());
</script>


das language-Attribut gibt es gar nicht mehr -> weg damit!

wenn das src-Attribut gesetzt ist wird der Inhalt zwischen <script ...> und </script> ignoriert. Aber wenn du JavaScript auslagerst versteh ich sowieso nicht, wozu du dann einzelne Befehle wieder in die Seite schreibst.

zu
anderes framset
Framesets sind nun wirklich out, sowas findest du in keiner halbwegs seriösen Seite mehr, die Probleme insbesondere mit Suchmaschinen haben dies Konzept sterben lassen.

Wenn du irgendwas per JavaScript ändern willst empfehlen sich Lösungen des DOM und nicht die document.write-Keule. Ich vermute nämlich mal, dass Menschen, die ohne JavaScript surfen, bei dir dadurch gar nix zu sehen bekommen. Dies gilt dann übrigens auch für Suchmaschinen (wie du diesem Märchen entnehmen kannst). DOM-Lösungen lassen sich noch nach dem Laden der Seite ausführen, können zB. auf ein Fenster-Resizing reagieren. Das bedeutet, dass es möglich ist, erst mal eine Standard-Seite zu laden und dann ein paar Änderungen je nach Gegebenheiten des Browsers durchzuführen. ZB.lassen sich dann andere Bilder einfügen mit höherer Auflösung, wenn die verfügbare Browserbreite (nicht die Bildschirmbreite!) sehr groß ist.

Aber einfacher ist es, wenn du flexibel layouten willst, dich mit den CSS-Einheiten em, ex, % anzufreunden und sowas wie px, cm und pt aus deinem CSS zu streichen. Dann erledigt der Browser das Anpassen selbst.

Ähnliche Themen

Accessdaten in zwei verschiedene Exceltabellen
Noldi  16.11.2007 - 65 Hits - 8 Antworten

SP2 für XP Versionen
Opa56  30.01.2008 - 70 Hits - 2 Antworten

kurioses Internetproblem
Fussel  26.05.2008 - 36 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Sun Jan 25 18:15:21 2026