Seltsamer Fehler beim CSS-Validator des W3C!
Stefan
- css
0 MudGuard0 Stefan0 Christian Kruse0 Thomas Luethi0 at
0 CarstenP0 Christian Kruse0 Chris0 Stefan
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
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
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
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
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
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
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
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
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
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
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
Hallo.
Das war bestimmt der "Sobig"-Wurm (bloß nix zugeben!).
Der hat dich auch in die Zitatesammlung eingetragen ;-)
MfG, at
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
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
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
Hi,
Abschreiber! ;-)
Abschreiber! ;-)Quatsch. Du bist Hellseher
MudGuard != wahsaga
;-)
cu,
Andreas
Hallo Stefan,
[...]
Der Fehler liegt hier:
a.auswahl:activ {
es muss
a.auswahl:active {
heissen.
Gruesse,
CK
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!)
Hallo!
An alle:
Fehler bereits korrigiert! "MudGuard" hats sehr schnell herausgefunden.
Danke,
Stefan