Stefan: Seltsamer Fehler beim CSS-Validator des W3C!

Hallo,

mein derzeites Projekt "Profi-Dozent" http://plagge.vol4u.de/test/index.htm
ist fast fertig, und beim überprüfen einer CSS kam es zu einem seltsamen Fehler:

(Auszug aus dem Ergebnis des W3C:)
"Fehler
URI : http://plagge.vol4u.de/test/css/net4.css
Zeile: 0
Unbekanntes Pseudoelement oder Pseudoklasse"

Jetzt kann ich damit leider nichts anfangen, denn ich habe dort kein Pseudoelement bzw. Pseudoklasse.

Hat jemand Erfahrung mit dem Validator, und kann vielleicht bestätigen, dass dieser Fehler in der CSS gar nicht exisitiert?
Immerhin erwähnt er Zeile 0, und dort steht nur "body ("!

Mit
http://plagge.vol4u.de/test/css/format.css
hatte ich ja auch keine Probleme.

Danke, und Gruß,
            Stefan

  1. Hi,

    mein derzeites Projekt "Profi-Dozent" http://plagge.vol4u.de/test/index.htm
    ist fast fertig, und beim überprüfen einer CSS kam es zu einem seltsamen Fehler:

    Das einzig seltsame daran ist die Zeilennummer.

    Unbekanntes Pseudoelement oder Pseudoklasse"

    a.auswahl:activ {

    Das ist der Übeltäter. Das ist denglisch, weil wie im Englischen mit c, aber wie im Deutschen ohne e.

    Ach ja, id und class sollten kein _ enthalten, da dies erst in den Errata zugelassen wurde - Netscape 4 hat damit Probleme.

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.mud-guard.de/
    1. Hi Andreas,

      a.auswahl:activ {

      Das ist der Übeltäter. Das ist denglisch, weil wie im Englischen mit c, aber wie im Deutschen ohne e.

      Ja, das war der Fehler. Habs korrigiert. Das war bestimmt der "Sobig"-Wurm (bloß nix zugeben!). ;-)

      Eigentlich hätte ich das selbst finden müssen - war aber verwirrt, da es hieß: Zeile 0", und im Netscape 4.7-Browser kein Fehler erkennbar war. vielen Dank!

      Ach ja, id und class sollten kein _ enthalten, da dies erst in den Errata zugelassen wurde - Netscape 4 hat damit Probleme.

      Was ist "Errata"? Auf jeden Fall sind bisher keine Probleme mit Netscape 4.78 aufgetreten.

      Gruß,
        Stefan

      1. Hallo Stefan,

        Ach ja, id und class sollten kein _ enthalten, da dies erst in den
        Errata zugelassen wurde - Netscape 4 hat damit Probleme.

        Was ist "Errata"?

        Der Plural von 'Erratum'. Das wiederum bedeutet soviel wie 'Fehler'.
        Die 'Errata' sind also die Fehler, wird heute hauptsaechlich im
        Buchwesen noch gebraucht.

        Auf jeden Fall sind bisher keine Probleme mit Netscape 4.78
        aufgetreten.

        Warte ab, bis JS ins Spiel kommt... ;) Ne, im Ernst. Guter Rat: lass
        die _ weg, wenn der NN4 ins Spiel kommt.

        Gruesse,
         CK

        --
        Sein oder nicht sein, das ist hier die Frage!
      2. Hallo,

        Was ist "Errata"?

        "Korrekturen", "Nachbesserungen", "nachtraegliche Flickschusterei".

        Gibt's uebrigens auch hier fuer SelfHTML 8.0:
        http://aktuell.de.selfhtml.org/extras/errata.htm ;-)

        Die Errata der W3C-Specifications finde ich peinlich und problematisch.

        Es handelt sich schliesslich um "Standards", und wenn diese ploetzlich
        durch "Errata" geaendert werden, ist das muehsam fuer alle Beteiligten,
        hier z.B. die Autoren und auch die Browserhersteller.

        Auf jeden Fall sind bisher keine Probleme mit Netscape 4.78 aufgetreten.

        Ganz einfach: Dein Netscape 4 ist zu aktuell. ;-)

        Die potentiellen Probleme von alten Browsern wie Netscape 4.0
        mit Klassennamen, welche Underscores ("_") enthalten, werden
        verstaendlich, wenn man die Monate und Jahre anschaut,
        in denen die CSS Specifications und die Browser-Versionen
        erschienen.

        In CSS Level 1 (Dezember 1996) war der Underscore nicht erlaubt:
        http://www.w3.org/TR/REC-CSS1-961217#forward-compatible-parsing
          "in CSS1, selectors (element names, classes and IDs)
          can contain only the characters A-Z, 0-9, and
          Unicode characters 161-255, plus dash (-);
          they cannot start with a dash or a digit; [...]"

        Netscape 4.0 Final erschien gemaess
        http://www.blooberry.com/indexdot/history/browsers.htm
        im Juni 1997.

        Auch in der urspruenglichen Fassung der CSS 2 Specification (Mai 1998)
        war der Underscore in Klassennamen noch nicht erlaubt:
        http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#q4
          "In CSS2, identifiers (including ... classes, and IDs ...) can contain
          only the characters [A-Za-z0-9] and ISO 10646 characters 161 and higher,
          plus the hyphen (-); they cannot start with a hyphen or a digit."
        (Dort steht also auch, dass Zahlen am Anfang eines Klassennamens
        nicht erlaubt sind - ein beliebter Fehler.)

        Netscape 4.0 Final erschien gemaess obigem Link im Oktober 1998.

        Der Underscore wurde erst im Juli 2001 in den "Errata" zu CSS 2
        hinzugefuegt (Punkt 4.1.3):
        http://www.w3.org/Style/css2-updates/REC-CSS2-19980512-errata.html#known-errors

        Auch in der CSS 2.1 Specification (Working Draft September 2003)
        ist der Underscore enthalten:
        http://www.w3.org/TR/CSS21/syndata.html#q6

        Diese nachtraeglichen Korrekturen konnten alte Netscape 4-Versionen
        allerdings gar nicht mehr mitkriegen...

        Es waere also logisch, dass Netscape 4.0 Klassennamen mit
        Underscores ignoriert, da sie ja gemaess den damals geltenden
        CSS Spezifikationen nicht erlaubt waren.

        Es koennte aber auch sein, dass er sie aus Gruenden der
        Fehlertoleranz seit jeher trotzdem beachtete.

        N.B. Ob es mit Netscape 4.0 oder anderen fruehen Netscape 4.x Versionen
        effektiv Probleme wegen Klassennamen mit Underscores gibt, oder ob es sich
        hier nur um einen endlos wiedergekaeuten Aberglauben von
        Webpublishern handelt, kann ich nicht abschliessend beurteilen. ;-)

        (Es ist mir ehrlich gesagt egal. Und Netscape 4.x kriegt bei mir
        sowieso kein CSS mehr zu Gesicht.)

        ---

        Ich empfehle, fuer Klassennamen nur die Kleinbuchstaben a - z benutzen
        (sowie allenfalls - ab dem zweiten Zeichen - die Zahlen 0 - 9).
        Man macht sich das Leben einfacher und ist "auf der sicheren Seite".

        (Gemaess der Specifications waeren ja auch die Zeichen
        jenseits von 161 erlaubt, also AFAICT auch uncodierte Umlaute.
        Das kann aber IMHO zu Problemen fuehren.)

        Gruesse,

        Thomas

        P.S. Sogar hier in der SelfHTML-FAQ hat es dummerweise
        ein Beispiel mit Underscores im Klassennamen:
        http://selfhtml.teamone.de/navigation/faq.htm#abweichende_verweisfarben

        1. Hallo,

          Sorry, hier noch ein Erratum zu meinem Posting:

          Netscape 4.0 Final erschien gemaess
          http://www.blooberry.com/indexdot/history/browsers.htm
          im Juni 1997.
          [...]
          Netscape 4.0 Final erschien gemaess obigem Link im Oktober 1998.

          Letzteres sollte heissen:
          Netscape 4.5 Final erschien gemaess obigem Link im Oktober 1998.

          mfg
          Thomas

        2. Hallo Thomas,

          Was ist "Errata"?

          "Korrekturen", "Nachbesserungen", "nachtraegliche Flickschusterei".

          Genau das Gegenteil *g*

          Auf jeden Fall sind bisher keine Probleme mit Netscape 4.78
          aufgetreten.

          Ganz einfach: Dein Netscape 4 ist zu aktuell. ;-)

          Leider nicht. Spaetestens beim Einsatz von JS werden Unterstriche in
          Klassen- und Elementnamen wenigstens problematisch.

          Gruesse,
           CK

          --
          Der Verstand ist der Hausherr, der Koerper sein Gast.
          1. Hallo,

            Was ist "Errata"?
            "Korrekturen", "Nachbesserungen", "nachtraegliche Flickschusterei".
            Genau das Gegenteil *g*

            Danke fuer die Korrektur meines Irrtums ;-)

            Sprachlich hast Du recht - in der Praxis sind die "Errata" von CSS
            natuerlich nicht bloss eine Auflistung der Fehler, sondern eben auch
            der entsprechenden Korrekturen...

            Leider nicht. Spaetestens beim Einsatz von JS werden Unterstriche in
            Klassen- und Elementnamen wenigstens problematisch.

            Wer sich die Kombination CSS + JS + Netscape 4 heute noch antut,
            ist ein Masochist.
            Und somit hier im falschen Forum. Alternativen gibt's zuhauf:
            http://dmoz.org/Adult/World/Deutsch/Gesellschaft/BDSM/Chats_und_Foren/
            ;-)

            Gruesse,

            Thomas

            --
            Dank /my/ automatisch ausgeblendet: JavaScript, ASP.
            Manuell "ausgeblendet": Threads mit Frames, Iframes und Scrollbalken im Subject...
            Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
        3. hi,

          Die Errata der W3C-Specifications finde ich peinlich und problematisch.

          Es handelt sich schliesslich um "Standards", und wenn diese ploetzlich
          durch "Errata" geaendert werden, ist das muehsam fuer alle Beteiligten,
          hier z.B. die Autoren und auch die Browserhersteller.

          klar bringen nachträgliche änderungen einer definition immer probleme mit sich - aber was willst du sonst machen? konzeptionelle fehler drin lassen, nur damit sich die browserhersteller keine zusätzliche arbeit machen müssen?

          wenn der grossteil der user ein bisschen update-freundlicher wäre (und einige gewisse browserhersteller etwas schneller beim korrigieren ihres codes), dann würde das heute doch gar kein problem mehr darstellen ...

          gruss,
          wahsaga

          1. Hallo,

            klar bringen nachträgliche änderungen einer definition immer probleme mit sich - aber was willst du sonst machen? konzeptionelle fehler drin lassen, nur damit sich die browserhersteller keine zusätzliche arbeit machen müssen?

            Fehler (IMHO selbst Tipfehler) duerften bei solchen Standards
            (wie z.B. bei Gesetzen) gar nicht erst vorkommen.

            Sie sind IMHO ein Zeichen dafuer, dass der Entstehungsprozess
            ungenuegend strukturiert ist, oder dass die (zahlreichen!)
            Beteiligten unsorgfaeltig gearbeitet haben.

            Besonders nervig finde ich Dinge wie border-collapse:

            CSS 2.0 (Original - level 2, 12. May 1998)
            http://www.w3.org/TR/1998/REC-CSS2-19980512/tables.html#propdef-border-collapse
            'border-collapse'
            Value:   collapse | separate | inherit
            Initial: collapse

            Errata zu CSS 2.0 (Eintrag vom 3. Oktober 2001)
            http://www.w3.org/Style/css2-updates/REC-CSS2-19980512-errata.html#s-17-6
              "Section 17.6 Borders
              Several popular browsers assume an initial value
              for 'border-collapse' of 'separate' rather than 'collapse'
              or exhibit behavior that is close to that value, even
              if they do not actually implement the CSS table model.
              Therefore the CSS WG proposes to change the initial value
              to 'separate', in the expectation that it better matches
              what users expect it to be."

            CSS 2.1 ("korrigiert" - level 2 revision 1, Working Draft 15. September 2003)
            http://www.w3.org/TR/CSS21/tables.html#propdef-border-collapse
            'border-collapse'
            Value:   collapse | separate | inherit
            Initial: separate

            Hier wird also der Standard nachtraeglich den Browsern angepasst.

            Auch eine Methode, Theorie und Praxis aneinander anzugleichen... ;-(

            wenn der grossteil der user ein bisschen update-freundlicher wäre (und einige gewisse browserhersteller etwas schneller beim korrigieren ihres codes), dann würde das heute doch gar kein problem mehr darstellen ...

            Da hast Du allerdings recht. ;-)

            Gruesse,

            Thomas

            --
            Dank /my/ automatisch ausgeblendet: JavaScript, ASP.
            Manuell "ausgeblendet": Threads mit Frames, Iframes und Scrollbalken im Subject...
            Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
            1. Hi,

              Besonders nervig finde ich Dinge wie border-collapse:
              CSS 2.0 (Original - level 2, 12. May 1998)
              Initial: collapse
              CSS 2.1 ("korrigiert" - level 2 revision 1, Working Draft 15. September 2003)
              Initial: separate

              Das ist eigentlich auch nur ein Argument dafür, sich NIE auf irgendwelche voreingestellten Werte zu verlassen, wenn man für eine Eigenschaft einen bestimmten Wert haben will.

              Nicht nur, daß sich das im Standard ändern könnte, es könnte ja auch im Browser-Stylesheet oder im User-Stylesheet anders gesetzt worden sein.

              cu,
              Andreas

              --
              MudGuard? Siehe http://www.mud-guard.de/
      3. Hallo.

        Das war bestimmt der "Sobig"-Wurm (bloß nix zugeben!).

        Der hat dich auch in die Zitatesammlung eingetragen ;-)
        MfG, at

  2. Hallo,

    Zeile: 0

    Mit den Zeilennummern scheint er in der Tat Probleme zu haben.

    Unbekanntes Pseudoelement oder Pseudoklasse

    Es gibt keine Pseudoklasse :activ, dafür aber :active

    Viele Grüße
    Carsten

    1. Hi,

      Zeile: 0
      Mit den Zeilennummern scheint er in der Tat Probleme zu haben.

      Abschreiber! ;-)

      Unbekanntes Pseudoelement oder Pseudoklasse
      Es gibt keine Pseudoklasse :activ, dafür aber :active

      Abschreiber! ;-)

      cu,
      Andreas

      --
      MudGuard? Siehe http://www.mud-guard.de/
      1. Hallo,

        Abschreiber! ;-)
        Abschreiber! ;-)

        Quatsch. Du bist Hellseher und hast meine Gedanken gelesen. Und beim Tippen warst Du dann auch noch schneller... ;-)

        Viele Grüße
        Carsten

        1. Hi,

          Abschreiber! ;-)
          Abschreiber! ;-)

          Quatsch. Du bist Hellseher

          MudGuard != wahsaga

          ;-)

          cu,
          Andreas

          --
          MudGuard? Siehe http://www.mud-guard.de/
  3. Hallo Stefan,

    [...]

    Der Fehler liegt hier:

    a.auswahl:activ {

    es muss

    a.auswahl:active {

    heissen.

    Gruesse,
     CK

    --
    Die Stärke des Geistes ist unendlich, die Muskelkraft dagegen ist begrenzt.
  4. Immerhin erwähnt er Zeile 0, und dort steht nur "body ("!

    wenn das dort steht so wie du das geschrieben hast, hätte er auch einen grund so komisch zu reagieren. (man beachte die klammer!)

  5. Hallo!

    An alle:
    Fehler bereits korrigiert! "MudGuard" hats sehr schnell herausgefunden.

    Danke,
        Stefan