Können CSS-Bezeichner mit zwei Bindestrichen beginnen?

CSS 2.1 definiert Bezeichner wi

In CSS, Bezeichner darf nur die Zeichen [a-zA-Z0-9] und ISO 10646-Zeichen U + 00A0 und höher sowie den Bindestrich (-) und den Unterstrich (_) enthalten; Sie dürfen nicht mit einer Ziffer, zwei Bindestrichen oder einem Bindestrich gefolgt von einer Ziffer beginnen. Bezeichner können auch maskierte Zeichen und beliebige ISO 10646-Zeichen als numerischen Code enthalten.

Deshalb,-- sollte ein ungültiger Bezeichner sein und somit#-- sollte das Element nicht mit @ auswählid="--":

body { color: black }
#-- { color: red }
<p id="--">I should be black.</p>

Imattribute selectors,

Attributwerte müssen Bezeichner oder Zeichenfolgen sein.

Aber-- scheint als Bezeichner für Attributwerte zu funktionieren, zumindest in Firefox:

body { color: black }
[id=--] { color: red }
<p id="--">I am red on Firefox.</p>

Außerdem,CSS.escape wurde geändert, um @ zuzulass--:

Minor-Änderungen wurden in Firefox 32 vorgenommen, um der Spezifikation und der Entwicklung der CSS-Syntax zu entsprechen. Der Bezeichner kann jetzt mit @ beginn-- und der zweite Bindestrich dürfen nicht maskiert werden.

Laut dem Wayback Machine, die Änderung erfolgte zwischen dem 19. und 30. April 2014:

6 Feb 2014 Redaktionsentwurf, gespeichert am 19. April 2014.

Wenn das Zeichen das zweite Zeichen und "-" (U + 002D) ist und das erste Zeichen auch "-" ist, dann ist das maskierte Zeichen.

30 Apr 2014 Redaktionsentwurf, gespeichert am 4. Mai 2014.

Wenn das Zeichen "-" (U + 002D) ist, [...] dann das Zeichen selbst.

So, hat ein neues CSS3-Modul die Definition von Bezeichnern geändert, so dass sie manchmal mit @ beginnen könn--, oder was genau passiert hier?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage