Hallo Thomas,
In der Spezifikation habe ich dazu nichts gefunden.
Einfach mal in die formale Grammatik von CSS gucken. @media-Statements dürfen nur innerhalb der Produktion stylesheet vorkommen. Innerhalb der geschweiften Klammern einer @media-Produktion darf nur die Produktion ruleset (0 oder mehr) vorkommen; ruleset dagegen besteht nur aus dem bekannten Deklarationen, kein @media-Statement.
Dies gilt auch noch in CSS 3 Syntax. Und Media Queries macht natürlich keine Aussage dazu, weil es sich nicht darauf bezieht.
Mir geht es nicht um die Sinnhaftigkeit diese Beispiels, sondern um die Gültigkeit.
Sprich: Darf nicht.
Muss das interne @media ignoriert oder verarbeitet werden, bzw. ist dies sogar ein Fehler ?
Gute Frage. Rein nach der Grammatik ist es ein Fehler. CSS 2.1 dokumentiert und spezifiziert etwas die Fehlerbehandlungsroutinen. Das kann nun zweifach als Fehler auftreten:
• Entweder interpretiert der UA das "@media screen" als kaputten Selektor; schließlich befindet er sich schon in einem @media-Block und erwartet nach Grammatik nur Rulesets. Das @media-Statement wäre also ein invalided Ruleset-Statement, in dem das "@media screen" dann der Selektor wäre. Invalide Rulesets müssen ignoriert werden.
• Oder aber der Parser erkennt auch in Bereichen, in denen @-rules nicht auftauchen dürfen die @-rule und stellt fest, dass die hier nicht hingehört. Invalide @-rules müssen ignoriert werden.
(CSS 2.1, Abschitt 4.2: Rules for handling parsing errors)
Tim