Hans: Endung der CSS-Datei egal?

Hallo,

eine kurze Frage: Ist es egal, welche Dateiendung eine CSS-Datei hat, oder muss sie immer mit *.css enden?

Danke,
Hans

  1. Hi,

    eine kurze Frage: Ist es egal, welche Dateiendung eine CSS-Datei hat, oder muss sie immer mit *.css enden?

    Im Prinzip ist es egal, da bei http der Inhaltstyp über den content-type header festgelegt wird.

    Aber:
    1. richtet sich diese Content-Type-Header-Angabe bei den meisten Webservern nach der Dateiendung (und bei .css wird dann eben text/css geschickt)
    2. gibt es da einen sehr weit verbreiteten Browser, der alles mögliche beachtet, aber keine Standards - und da kann es bei falscher Endung durchaus passieren, daß er das stylesheet dann als HTML-Code oder als Javascript fehlinterpretiert...

    Was spricht denn Deiner Meinung nach gegen die Endung .css?

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    1. Hallo,

      eine kurze Frage: Ist es egal, welche Dateiendung eine CSS-Datei hat, oder muss sie immer mit *.css enden?
      Im Prinzip ist es egal, da bei http der Inhaltstyp über den content-type header festgelegt wird.
      Aber:

      1. gibt es da einen sehr weit verbreiteten Browser, der alles mögliche beachtet, aber keine Standards - und da kann es bei falscher Endung durchaus passieren, daß er das stylesheet dann als HTML-Code oder als Javascript fehlinterpretiert...

      Einem gerade absolvierten Test mit MSIE5.5, Opera6.05 und Netscape7 unter WinNT4.0 und einer mit
      <link rel="stylesheet" href="css/screen.txt" media="screen" type="text/css">
      referenzierten CSS-Datei entsprechend, heißt dieser, keine Standards interpretierende, Browser Netscape7.
      Hattest Du den gemeint? ;-))

      viele Grüße

      Axel

      1. Hi,

        1. gibt es da einen sehr weit verbreiteten Browser, der alles mögliche beachtet, aber keine Standards - und da kann es bei falscher Endung durchaus passieren, daß er das stylesheet dann als HTML-Code oder als Javascript fehlinterpretiert...
          Einem gerade absolvierten Test mit MSIE5.5, Opera6.05 und Netscape7 unter WinNT4.0 und einer mit
          <link rel="stylesheet" href="css/screen.txt" media="screen" type="text/css">
          referenzierten CSS-Datei entsprechend, heißt dieser, keine Standards interpretierende, Browser Netscape7.
          Hattest Du den gemeint? ;-))

        Welchen Content-Type hattest Du im header der CSS-Datei mitgeschickt?

        Wenn Du Deinen Server nicht umkonfiguriert hast, dürfte das text/plain gewesen sein.

        Wie hat welcher Deiner Browser darauf reagiert?

        cu,
        Andreas

        --
        Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
        http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
        1. Hallo,

          Welchen Content-Type hattest Du im header der CSS-Datei mitgeschickt?
          Wenn Du Deinen Server nicht umkonfiguriert hast, dürfte das text/plain gewesen sein.
          Wie hat welcher Deiner Browser darauf reagiert?

          Ja, prinzipiell hast Du recht. Allerdings kann man es auch so sehen:
          Alle angegebenen Browser, außer Netscape7, waren so fehlertolerant, eine im HTML als type="text/css" referenzierte Datei auch als CSS zu interpretieren, es zumindest zu versuchen.

          Damit das nicht als nächstes Argument kommt: Das Interpretieren von fehlerhaftem Code gehört für mich _nicht_ zur Fehlertoleranz. Das tolerieren eines abweichenden Content-Type, wenn der "gewünschte" Content-Type angegeben ist, sehe ich allerdings als Fehlertoleranz, nicht unbedingt als Fehlerhaftigkeit.

          viele Grüße

          Axel

          1. Hi,

            Damit das nicht als nächstes Argument kommt: Das Interpretieren von fehlerhaftem Code gehört für mich _nicht_ zur Fehlertoleranz. Das tolerieren eines abweichenden Content-Type, wenn der "gewünschte" Content-Type angegeben ist, sehe ich allerdings als Fehlertoleranz, nicht unbedingt als Fehlerhaftigkeit.

            Wenn der IE das nur in diesen Fällen machen würde...

            siehe auch oben bereits genanntes Beispiel: http://test.andreas-waechter.de/contenttype.gif

            cu,
            Andreas

            --
            Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
            http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
            1. Hallo,

              Damit das nicht als nächstes Argument kommt: Das Interpretieren von fehlerhaftem Code gehört für mich _nicht_ zur Fehlertoleranz. Das tolerieren eines abweichenden Content-Type, wenn der "gewünschte" Content-Type angegeben ist, sehe ich allerdings als Fehlertoleranz, nicht unbedingt als Fehlerhaftigkeit.
              Wenn der IE das nur in diesen Fällen machen würde...

              Andere Fälle sind anders zu betrachten;-))

              siehe auch oben bereits genanntes Beispiel: http://test.andreas-waechter.de/contenttype.gif

              Ja, ein image/gif als HTML zu interpretieren ist Unsinn. Das macht ja auch nur der IE.

              Naja, zumindest kann Hans hieran sehen, was er sich mit dem Umbenennen der CSS-Dateien einhandeln kann.

              viele Grüße

              Axel

          2. Hi,

            Damit das nicht als nächstes Argument kommt: Das Interpretieren von fehlerhaftem Code gehört für mich _nicht_ zur Fehlertoleranz. Das tolerieren eines abweichenden Content-Type, wenn der "gewünschte" Content-Type angegeben ist, sehe ich allerdings als Fehlertoleranz, nicht unbedingt als Fehlerhaftigkeit.

            Nachtrag: noch ein Beispiel:

            um ein Codebeispiel zu haben, richte ich es so ein, daß eine HTML-Seite absichtlich als text/plain geschickt wird.

            Ist es hier zu tolerieren, daß ein Browser dennoch das HTML interpretiert? Ich meine: nein.

            cu,
            Andreas

            --
            Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
            http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
      2. Hi Axel,

        Einem gerade absolvierten Test mit MSIE5.5, Opera6.05 und Netscape7 unter WinNT4.0 und einer mit
        <link rel="stylesheet" href="css/screen.txt" media="screen" type="text/css">
        referenzierten CSS-Datei entsprechend, heißt dieser, keine Standards interpretierende, Browser Netscape7.
        Hattest Du den gemeint? ;-))

        Eigentoooooooooor. *g*

        Natürlich nimmt der NN7 sie nicht, denn Windoof liefert sie ja als text/plain aus.
        Du musst deinem Browser (am besten mit einem content-type-Header) schon sagen, dass da text/css drin ist...

        Fabian

        1. Hi,

          Natürlich nimmt der NN7 sie nicht, denn Windoof liefert sie ja als text/plain aus.

          Was bitte hat Windows (ein Betriebssystem) damit zu tun?
          Es hängt vom Webserver ab.

          cu,
          Andreas

          --
          Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
          http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
          1. Hi Andreas,

            Natürlich nimmt der NN7 sie nicht, denn Windoof liefert sie ja als text/plain aus.

            Was bitte hat Windows (ein Betriebssystem) damit zu tun?

            Die Datei muss nciht vom Webserver abgerufen werden, sondern kann auch über das file-Protokoll angefordert werden. In dem Falle wird als Content-Type text/plain für .txt geliefert.

            Es hängt vom Webserver ab.

            Wenn einer verwendet wird, ja.

            Fabian

      3. Hi,

        Einem gerade absolvierten Test mit MSIE5.5, Opera6.05 und Netscape7 unter WinNT4.0 und einer mit
        <link rel="stylesheet" href="css/screen.txt" media="screen" type="text/css">
        referenzierten CSS-Datei entsprechend, heißt dieser, keine Standards interpretierende, Browser Netscape7.
        Hattest Du den gemeint? ;-))

        Mach doch mal folgenden Test: http://test.andreas-waechter.de/contenttype.gif

        Was kriegst Du in welchem Browser angezeigt?

        cu,
        Andreas

        --
        Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
        http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
        1. Hi Andreas

          Mach doch mal folgenden Test: http://test.andreas-waechter.de/contenttype.gif

          Was kriegst Du in welchem Browser angezeigt?

          Opera 6.03: Platzhalter für ein GIF-Image
          Netscape 7.0: Platzhalter für ein GIF-Image
          Netscape 4.77: Platzhalter für ein GIF-Image
          Konqueror 2.2.2: Platzhalter für ein GIF-Image
          Aber ViewSource zeigt bei allen den HTML-Quelltext an.
          Von Lynx kommt immerhin die Nachricht "display: Not a GIF Image file" und es wird ImageMagick als Bildbetrachter mit dessen Logo geöffnet.
          wget sagt: HTTP request sent, awaiting response... 200 OK
          Length: 323 [image/gif]

          Verwirrte Grüße

          Johannes

          --
          Drop Bush - not bombs
          ss:| zu:) ls:[ fo:) de:] va:) ch:] sh:( n4:& rl:( br:^ js:| ie:{ fl:( mo:|
          Selfcode bei http://emmanuel.dammerer.at/selfcode.html
          1. Hi,

            Opera 6.03: Platzhalter für ein GIF-Image
            Netscape 7.0: Platzhalter für ein GIF-Image
            Netscape 4.77: Platzhalter für ein GIF-Image
            Konqueror 2.2.2: Platzhalter für ein GIF-Image

            Richtig. Es wird ein image/gif übertragen, das aber nicht das korrekte gif-Format hat (die Ressource enthält den Sourcecode einer HTML-Seite).

            fehlt noch: IE 5.0, IE 5.5, IE 6.0: es wird die HTML-Seite angezeigt!

            Aber ViewSource zeigt bei allen den HTML-Quelltext an.

            Klar, der Inhalt der Ressource ist HTML-Text.

            Von Lynx kommt immerhin die Nachricht "display: Not a GIF Image file" und es wird ImageMagick als Bildbetrachter mit dessen Logo geöffnet.

            Gleiches Verhalten wie die anderen Browser (es kommt ein image/gif an...)

            wget sagt: HTTP request sent, awaiting response... 200 OK
            Length: 323 [image/gif]

            Verwirrte Grüße

            Wieso verwirrt? Ich habe eine HTML-Datei als .gif abgespeichert, damit sie als gif ausgeliefert wird.

            IE zeigt die Ressource fehlerhafterweise als HTML an.

            cu,
            Andreas

            --
            Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
            http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
            1. Hi Andreas

              fehlt noch: IE 5.0, IE 5.5, IE 6.0: es wird die HTML-Seite angezeigt!

              Konnt ich unter Linux nicht ausprobieren.

              Verwirrte Grüße

              Wieso verwirrt? Ich habe eine HTML-Datei als .gif abgespeichert, damit sie als gif ausgeliefert wird.

              Darüber, was die Browserhersteller sich einfallen lassen. Mein selbstprogrammierter (rein hypothethischer) Browser würde mich fragen ob er die Datei als GIF interpretieren soll bzw. die Voreinstellungen abfragen.
              Oder er würde einen Übertragunsfehler melden *g*

              Schöne Grüße

              Johannes

              --
              Drop Bush - not bombs
              ss:| zu:) ls:[ fo:) de:] va:) ch:] sh:( n4:& rl:( br:^ js:| ie:{ fl:( mo:|
              Selfcode bei http://emmanuel.dammerer.at/selfcode.html
              1. Hi

                Darüber, was die Browserhersteller sich einfallen lassen. Mein selbstprogrammierter (rein hypothethischer) Browser würde mich fragen ob er die Datei als GIF interpretieren soll bzw. die Voreinstellungen abfragen.

                Damit meine ich natürlich, dass er fragt ob die Fehlerhafte Datei trotzdem noch als GIF interpretiert wird.
                Außerdem ist es IMHO unlogisch, wenn die Datei als GIF angezeigt wird, die Optione ViewSource zuzulassen. Bei sonstigen Grafiken kann ich das ja auch nicht.

                Schöne Grüße

                Johannes

                --
                Drop Bush - not bombs
                ss:| zu:) ls:[ fo:) de:] va:) ch:] sh:( n4:& rl:( br:^ js:| ie:{ fl:( mo:|
                Selfcode bei http://emmanuel.dammerer.at/selfcode.html
              2. Hi,

                fehlt noch: IE 5.0, IE 5.5, IE 6.0: es wird die HTML-Seite angezeigt!
                Konnt ich unter Linux nicht ausprobieren.

                Läuft der nicht unter Wine? ;-) ;-) ;-)

                Darüber, was die Browserhersteller sich einfallen lassen. Mein selbstprogrammierter (rein hypothethischer) Browser würde mich fragen ob er die Datei als GIF interpretieren soll bzw. die Voreinstellungen abfragen.
                Oder er würde einen Übertragunsfehler melden *g*

                Nein, einen Übertragungsfehler zu melden wäre falsch - die Übertragung hat ja einwandfrei geklappt.
                Korrekt wäre, einen Bildformat-Fehler zu melden.

                cu,
                Andreas

                --
                Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
                http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
                1. Hallo Andreas,

                  Läuft der nicht unter Wine? ;-) ;-) ;-)

                  Ja: http://www.christian-seiler.de/temp/iexplore.png

                  Du erinnerst mich gerade daran, dass ich mal probieren wollte, alle drei Versionen (5.0, 5.5, 6.0) parallel zum Laufen zu bringen... (unter wine)

                  Viele Grüße,
                  Christian

                  --
                  Hast Du einen Beitrag? Nur her damit!
                  http://aktuell.de.selfhtml.org/tippstricks/beitrag.htm
                  SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
                  sh:) fo:) ch:] rl:( br:> n4:& ie:% mo:) va:) de:] zu:) fl:( js:| ss:) ls:[
                2. Hi Andreas

                  Läuft der nicht unter Wine? ;-) ;-) ;-)

                  Bei mir nicht *g*. Das bedeutet ich hab ihn nicht installiert. Ich hab auf meiner Platte auch noch Windows, wenn da irgendwas kaputt geht störts mich nicht.

                  Darüber, was die Browserhersteller sich einfallen lassen. Mein selbstprogrammierter (rein hypothethischer) Browser würde mich fragen ob er die Datei als GIF interpretieren soll bzw. die Voreinstellungen abfragen.
                  Oder er würde einen Übertragunsfehler melden *g*

                  Nein, einen Übertragungsfehler zu melden wäre falsch - die Übertragung hat ja einwandfrei geklappt.

                  Deshalb das *g*. Vergleich Erwartetes Format mit Erhaltenem Format: Formate ungleich. Folgerung: Nicht das richtige übertragen.

                  Korrekt wäre, einen Bildformat-Fehler zu melden.

                  Genau, aber dann könnte man sich nicht mehr über die Browserhersteller aufregen.

                  Noch einen schönen Abend

                  Johannes

                  --
                  Drop Bush - not bombs
                  ss:| zu:) ls:[ fo:) de:] va:) ch:] sh:( n4:& rl:( br:^ js:| ie:{ fl:( mo:|
                  Selfcode bei http://emmanuel.dammerer.at/selfcode.html
              3. Hallo,

                Wieso verwirrt? Ich habe eine HTML-Datei als .gif abgespeichert, damit sie als gif ausgeliefert wird.

                Darüber, was die Browserhersteller sich einfallen lassen. Mein selbstprogrammierter (rein hypothethischer) Browser würde mich fragen ob er die Datei als GIF interpretieren soll bzw. die Voreinstellungen abfragen.

                Ich glaube, dieses Feature hättest Du bald satt;-). Das müsste er Dich nämlich dann bei jedem Bild fragen.

                Er bekommt auf Anforderung einen content-type: image/gif vom Server. Er kann Daten empfangen. Er kann die Daten nur nicht als Bild rendern, also zeigt er einen Platzhalter an. Da ist schon in Ordnung so. Das Selbe passiert, wenn Du Bilder im ASCII-Modus auf den Server hochgeladen hast. Nur der IE rendert fälschlicherweise HTML, weil er zu "fehlertolerant" ist.

                Oder er würde einen Übertragunsfehler melden *g*

                Nö. Die Übertragung funktioniert doch.

                viele Grüße

                Axel

                1. Hi Axel

                  Ich glaube, dieses Feature hättest Du bald satt;-). Das müsste er Dich nämlich dann bei jedem Bild fragen.

                  Nein, nur wenn er das Bild nicht anzeigen kann und merkt, dass es eine HTML-Datei ist.

                  Er bekommt auf Anforderung einen content-type: image/gif vom Server. Er kann Daten empfangen. Er kann die Daten nur nicht als Bild rendern, also zeigt er einen Platzhalter an. Da ist schon in Ordnung so. Das Selbe passiert, wenn Du Bilder im ASCII-Modus auf den Server hochgeladen hast. Nur der IE rendert fälschlicherweise HTML, weil er zu "fehlertolerant" ist.

                  Oder er würde einen Übertragunsfehler melden *g*
                  Nö. Die Übertragung funktioniert doch.

                  Das habe ich hier [pref:t=42490&m=232414] schon erklärt.

                  Schöne Grüße

                  Johannes

                  --
                  Drop Bush - not bombs
                  ss:| zu:) ls:[ fo:) de:] va:) ch:] sh:( n4:& rl:( br:^ js:| ie:{ fl:( mo:|
                  Selfcode bei http://emmanuel.dammerer.at/selfcode.html
        2. Hallo,

          Mach doch mal folgenden Test: http://test.andreas-waechter.de/contenttype.gif
          Was kriegst Du in welchem Browser angezeigt?

          MSIE5.5 zeigt HTML
          Opera6.05 zeigt ein Bild
          Netscape7 zeigt ein Bild

          Das ist aber "etwas" anders gelagert. Bei diesem Beispiel fordert der Browser ein Bild an und bekommt einen Content-Type image/gif.

          Beim CSS-Beispiel wird aber ein type="text/css" angefordert. Da kann man es schon als fehlertolerant ansehen, wenn zumindest auch ein daraufhin geliefertes text/plain-Dokument als CSS interpretiert wird. Die Programmierer von Opera sehen das offensichtlich auch so.

          viele Grüße

          Axel

          1. Hi,

            Hallo,

            Mach doch mal folgenden Test: http://test.andreas-waechter.de/contenttype.gif
            Was kriegst Du in welchem Browser angezeigt?

            MSIE5.5 zeigt HTML

            Eben. Das ist falsch.

            Opera6.05 zeigt ein Bild
            Netscape7 zeigt ein Bild

            Korrektes Verhalten. Da der Inhalt der Ressource aber kein korrektes gif-Format ist, wird nur ein Platzhalter angezeigt.

            Bei diesem Beispiel fordert der Browser ein Bild an und bekommt einen Content-Type image/gif.

            Nein. Der Browser fordert kein Bild an. Der Browser fordert eine Ressource an, deren URL zufällig auf .gif endet.

            Das selbe funktioniert auch, wenn die Ressource auf .bla endet und image/gif als content-type hat.
            IE würde das trotzdem als HTML anzeigen (falls .bla auf Deinem Rechner zufällig ein gültiges Bildformat wäre, ersetze .bla durch eine nicht-definierte Endung).

            cu,
            Andreas

            --
            Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
            http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
            1. Moin,

              MSIE5.5 zeigt HTML
              Eben. Das ist falsch.

              Und damit niemand sagen, Microsoft wäre knauserig mit der Doku haben sie diesen Bug der schon seit Version 4 existiert auch ausnehmend gut dokumentiert: http://msdn.microsoft.com/workshop/networking/moniker/overview/appendix_a.asp.

              Und damit niemand sagen kann, derartiges Verhalten wäre vom Standard gedeckt hier noch die passende Stelle aus RFC 2616 Abschnitt 7.2.1 dazu:

              | If and only if the media type is not given by a Content-Type field,
              | the recipient MAY attempt to guess the media type via inspection of
              | its content and/or the name extension(s) of the URI used to identify
              | the resource. If the media type remains unknown, the recipient SHOULD
              | treat it as type "application/octet-stream".

              --
              Henryk Plötz
              Grüße von der Ostsee
  2. Hallo Hans,

    Ist es egal, welche Dateiendung eine CSS-Datei hat, oder muss sie immer mit *.css enden?

    ja, die Datei muss nur mit dem richtigen Content-Type (text/css) ausgeliefert werden.
    Was hast du denn vor?

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. Hi,

      ich wollte mit PHP eine "dynamische" CSS-Datei erzeugen...
      Beispiel:

      <link rel="stylesheet" href="style.php" type="text/css">

      Inhalt der "style.php"-Datei:

      <?

      print '
      body
      {
      background-color:#FFFFFF;
      }';

      So könnte ich eine individuelle Darstellung realisieren...

      Was hältst du davon?

      Gruß,
      Hans

      1. Hi,

        <?
        print '
        body
        {
        background-color:#FFFFFF;
        }';
        So könnte ich eine individuelle Darstellung realisieren...
        Was hältst du davon?

        Kein Problem, Du mußt nur noch den richtigen Content-Type header senden.
        Siehe header-Funktion im PHP-Manual.

        cu,
        Andreas

        --
        Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
        http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/