Hallo,
meines Wissens interpretieren neuere Browser, die ::after verstehen, auch die eigentlich falsche Schreibweise mit nur einem Doppelpunkt wie gewünscht. Es ist dann eher ein didaktischer Spagat, sich einzureden, dass man der Rückwärtskompatibilität zuliebe absichtlich einen formalen Fehler macht.
Nein, man macht keinen formalen Fehler. Die Schreibweise aus Level 2 bleibt auch weiterhin aus Gründen der Rückwärtskompatibilität gültig.
ja, sie bleibt gültig, bezeichnet aber eine Pseudoklasse, kein Pseudoelement. Das ist der formale Fehler, den man hier akzeptieren würde, weil man weiß, dass die Browser den Bezeichner für die nicht existierende Pseudoklasse :after automatisch als Bezeichner für das Pseudoelement interpretiert.
Euch beiden hätte ich eigentlich zugetraut, mal einen Blick in die Spec zu werfen.
Ja und? Da heißt es im ersten Abschnitt:
"For compatibility with existing style sheets, user agents must also accept the previous one-colon notation for pseudo-elements introduced in CSS levels 1 and 2."
Also genau, was ich sagte: Richtig wäre die Schreibweise mit zwei Doppelpunkten, der Kompatibilität zuliebe wird aber die Schreibweise mit nur einem Doppelpunkt ebenfalls akzeptiert.
Welche Schreibweise also verwenden? Ich würde sagen, dass Browser, die Level 3 nicht verstehen, inzwischen irrelevant sind.
Keine Ahnung, welche das noch sein könnten.
Wenn man also weitgehend abwärtskompatibel sein will, muss man die Kreuze und Kreise sowieso als richtigen Inhalt in die
td
-Elemente setzen.
Das halte ich ebenso wie Matthias im vorliegenden Beispiel sowieso für semantisch richtiger. Denn sie repräsentieren ja die Spielsteine, die beim klassischen Tic-Tac-Toe ja auch noch physisch auf das Spielfeld gelegt wurden.
So long,
Martin