1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

<style> im <noscript> Tag nicht valide

Dieses Thema im Forum "HTML & XHTML" wurde erstellt von gio, 22. August 2006.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. gio

    gio Grünschnabel

    Hallo,

    im Header-Block meiner Homepage steht unter anderem folgende Anweisung:

    Code (HTML5):
    1. <script language="JavaScript" type="text/javascript">
    2. if (screen.width <= 800)
    3. document.write("<link href='800.css' rel='styleSheet' type='text/css'>");
    4.  
    5. if (screen.width > 800)
    6. document.write("<link href='layout.css' rel='styleSheet' type='text/css'>");
    7.  
    8. <style type="text/css" title="currentStyle" media="screen">
    9.  @import "layout.css";
    Ist JavaScript deaktivert, soll „layout.css“ (Standardlayout) geladen werden. Beim validieren erhalte ich jedoch die Meldung, dass <style ....> im HTML-TAG noscript nicht erlaubt ist.

    Hat jemand eine Idee, wie ich das lösen kann, damit die Seiten valide werden?

    Besten Dank für Euere Hilfe
  2. Maik

    Maik Gast

    Verwende mal diese Reihenfolge zum Einbinden des Stylesheets:

    Code (HTML5):
    1.  
    2. <style type="text/css" title="currentStyle" media="screen">
    3. @import "layout.css";
    4.  
    5. <script language="JavaScript" type="text/javascript">
    6. if (screen.width <= 800)
    7. document.write("<link href='800.css' rel='styleSheet' type='text/css'>");
    8.  
    9. if (screen.width > 800)
    10. document.write("<link href='layout.css' rel='styleSheet' type='text/css'>");
    11.  
    Ist Javascript im Browser aktiviert, wird das zunächst geladene Stylesheet vom Script überschrieben und die entsprechende CSS-Datei in das Dokument geladen.

    Ist Javascript deaktiviert, wird lediglich die layout.css über das style-Element in das Dokument eingebunden, und gut ist.
  3. gio

    gio Grünschnabel

    Hallo Maik,

    diesen Ansatz hatte ich auch, doch er führt leider nicht zum gewünschten Ergebnis.

    Kommt jemand mit 800*600 Pixel auf die Homepage, wird erst „layout.css“ geladen und anschließend durch „800.css“ ersetzt. Soweit so gut, doch die Vorgaben bzw. IDs, welche in der layout.css hinterlegt sind aber in der 800.css nicht existent sind, bleiben bestehen und führen dann bei 800*600 Pixel punktuell zu einer falschen Darstellung.

    VG
  4. Maik

    Maik Gast

    Und was ist, wenn der User mit 800*600px und deaktiviertem Javascript auf deine Seite kommt?

    Dann müssen die Vorgaben bzw. IDs aus der layout.css doch auch für das Dokument passen.
  5. gio

    gio Grünschnabel

    Da hast Du natürlich recht! Das ist auch der einzigste Wehrmutstropfen bei der Sache. Dort passt es eben nicht mehr 100%ig. Doch ich wäre bereit, diesen Kompromiss zu gehen. 800*600 Pixel Besucher sind schon jetzt äußerst selten, doch dass diese wenigen Besucher auch noch Javascript deaktivert haben, dass kam bislang eigentlich nicht vor (habe GoogleAnalytics im Einsatz). Na ja, sollten die Seiten auf diesem Wege nicht valide zu bekommen sein, muss ich wohl nach einem anderen Weg suchen. Doch vielleicht hast Du oder jemand anderes noch einen weiteren Tipp.

    Viele Grüße
  6. Maik

    Maik Gast

    Wenn da etwas nicht 100%ig passt, dann stimmt wohl eher mit deinen CSS-Dateien etwas nicht.
  7. gio

    gio Grünschnabel

    O.K., nach Deiner leisen Kritik am Aufbau meiner CSS Dateien ;) , habe ich die 800.css noch einmal geprüft und konnte die Datei dahin gehend bearbeiten, dass ich den zu Anfangs beschriebenen Lösungsansatz jetzt verwenden kann.

    Abschließend hierzu habe ich jedoch noch eine Frage: Reicht es bei dieser Variante nicht sogar aus, auf die zweite IF Anweisung ganz zu verzichten? Immerhin wurde ja bereits im Vorfeld die layout.css geladen!?

    Habe ich hier einen Denkfehler oder müsste es auch so gehen

    Viele Grüße und besten Dank für Deine Geduld
  8. Maik

    Maik Gast

    Meines Erachtens kannst du es dabei belassen ;)
  9. gio

    gio Grünschnabel

    Super, jetzt passt alles und die Dokumente sind valide :)

    Ich "schließe" diesen Thread zugleich.

    VG und nochmals besten Dank
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen