• Ich habe mal eine Frage an die XHTML-Spezialisten. Ich bin gerade dabei meine erste Seite in XHTML zu schreiben. Dabei habe ich folgendes Benutzt:

    Code
    <style type="text/css">
      <!--
       @import url(layout_test.css);
      //-->
    </style>

    Nachdem ich die Seite mit Tidy validiert hatte stand folgendes da:

    Code
    <style type="text/css">
     /*<![CDATA[*/
      <!--
       @import url(layout_test.css);
      //-->
     /*]]>*/
    </style>

    Ich habe dann ein bisschen rumgesucht und gefunden, daß man in XHTML Script- und Stylebereiche mit <![CDATA[ ... ]]> umschließen muß. Wenn ich aber die Kommentarzeichen /* ... */ lösche, es also so aussieht, wie in der XHTML-Spezifikation, kennt kein Browser mehr das Stylesheet und wenn es auskommentiert ist, was hat es dann noch für einen Sinn? Und benötigt man zusätzlich auch noch die HTML-Kommentarzeilen <!-- ... //--> ?

    Ich wäre auch für einen Link zu einer guten Dokumentation dankbar. Ich habe da bisher nichts besonders aufschlußreiches gefunden, z.B. darüber welche Tags und Attribute in XHTML Strict noch verwendet werden dürfen.

  • Warum bindest du die css-Datei nicht im Head-Bereich ein?

    Code
    <link rel="stylesheet" media="all" href="layout_test.css" />

    Ist nach XHTML 1.1 valid!

    Micro$oft is not the answer - it's the question. And the answer is NO!

    Mozilla/5.0 (X11; U; Linux i686; de-DE; rv:1.7.6) Gecko/20050512 Firefox/1.0

  • Weil davor mit so einer normalen Einbindung ein Stylesheet für Netscape 4 und andere Antiquitäten steht. Die können @import nicht interpretieren. So spare ich mir eine Browserweiche auf Javascriptbasis.

  • Ja, das werde ich wohl machen. Ich habe mich nur über die durch Tidy gemachten Veränderungen gewundert und wollte der Sache auf den Grund gehen. Ich mag es nicht, Dinge zu benutzen, die ich nicht verstanden habe oder deren Grund ich nicht kenne.

    Jedenfalls vielen Dank für die Auskunft.

  • Also, auf Antiqitäten wie den Netscape 4 würd ICH keine Rücksicht mehr nehmen. Wer sowas noch benutzt, ist weißgott selber schuld. Ich weiß, es halten sich nach wie vor und unverständlicherweise hartnäckige 1,8% Netscape-4-User, aber wie gesagt ...

  • Nunja. Wenn man aber so einbindet dass die css-dateien vor dem netscape versteckt wird, kann man mit dem die seite trotzdem ansehen, weil das css ihn nicht umbringt. insofern.... ist doch klasse?

    immer regel 1: möglichst offen (funktionabel) für alle sein ; )

  • Die Netscape 4-Nutzer sehen die Site so, wie sie ein reiner Textbrowser sehen würde. Sie können also die Links zwischen den Seiten nutzen und den Inhalt lesen. Schließlich will ich Information zur Verfügung stellen, die jeder lesen können soll, und nicht Internetseiten als Selbstzweck machen.

  • Nichtsdestotrotz kann man nicht auf jede Krücke Rücksicht nehmen. Ich für meinen Teil hab auf den Websites, die ich mache (okay, da sind's halt nur 1000 Klicks pro Monat oder so ...) in den letzten drei Jahren keinen einzigen Klick eines Netscapes gehabt. Außer ... was war das? Version 8 oder so? Aber auch nur ein einziges Mal. Jedenfalls kein Netscape 4.
    Und wenn's denn UNBEDINGT sein muß, dann kann man doch auch ne kleine "Browserweiche" mit php machen. Wenn halt dann in $_SERVER['HTTP_USER_AGENT'] "Netscape 4" drinsteht, dann wird halt nix ausgegeben, ansonsten link-rel-css-Kram. Ich wüßte nichtmal, wo ich nen Nertscape-4-User-Agent-String herbekommen sollte, um mir den mal anzuschauen ...

  • Ich glaub du hast uns nicht verstanden.

    Wenn du die css-dateien mit

    Code
    <link rel="stylesheet" media="all" href="layout_test.css" />


    einbinden würdest, würde netscape4 explodieren. du sperrst ihn damit also aus.

    wenn du die css-datei so einbindest:

    Code
    <style type="text/css">
      <!--
       @import url(layout_test.css);
      //-->
    </style>


    erkennt netscape4 die datei nicht. da er dann die datei nicht interpretiert (wobei er normalerweise zu 99,9% verrecken würde) , kommt es zu keinen fehlern. die seite wird dann angezeigt, als wenn keine css-datei eingebunden würde. wie ein textbrowser (bzw. wie firefox es würde wenn du Ansicht->Webseiten-Stil->Keinen wählst). du sperrst ihn also nicht aus. alle informationen sind erreichbar.

    und das ganze ohne irgendwelche browserweichen. ; )

  • Also, lieber bugcatcher,
    das stimmt so nicht ganz. Der Netscape 4 kann nicht nur kein gescheites CSS, sondern auch kein media="all". Insofern würde der bei dem oberen Vorschlag nicht explodieren, sondern das CSS auch ignorieren.

    Allerdings ist das beim IE4 und anderen Relikten keine Hilfe, deshalb muss man doch wieder zu dem @import greifen - wobei ich dabei auch immer die CDATA-Variante verwende:

    <style type="text/css">
    /* <![CDATA[ */
    <!--
    @import url(stylesheet.css);
    -->
    /* ]]> */
    </style>


    ..and some might argue that the earth is flat
    ..and some might argue that smoking is not harmful
    ..and some might argue that even Windows XP has become stable

  • Der versteht media="all" leider und versucht deshalb, das CSS zu interpretieren. Hab ich doch geschrieben! ;)


    ..and some might argue that the earth is flat
    ..and some might argue that smoking is not harmful
    ..and some might argue that even Windows XP has become stable