@document

Veraltet: Diese Funktion wird nicht mehr empfohlen. Obwohl einige Browser sie möglicherweise noch unterstützen, könnte sie bereits aus den relevanten Webstandards entfernt worden sein, in Kürze entfernt werden oder nur noch aus Kompatibilitätsgründen bestehen. Vermeiden Sie die Verwendung und aktualisieren Sie vorhandenen Code, falls möglich; siehe die Kompatibilitätstabelle am Ende dieser Seite, um Ihre Entscheidung zu unterstützen. Beachten Sie, dass diese Funktion jederzeit aufhören könnte zu funktionieren.

Nicht standardisiert: Diese Funktion ist nicht standardisiert. Wir raten davon ab, nicht-standardisierte Funktionen auf produktiven Webseiten zu verwenden, da sie nur von bestimmten Browsern unterstützt werden und sich in Zukunft ändern oder entfernt werden können. Unter Umständen kann sie jedoch eine geeignete Option sein, wenn es keine standardisierte Alternative gibt.

Die @document CSS At-Regel schränkt die darin enthaltenen Stilregeln basierend auf der URL des Dokuments ein. Sie ist in erster Linie für benutzerdefinierte Stylesheets gedacht (siehe userchrome.org für weitere Informationen), kann aber auch in autorendefinierten Stylesheets verwendet werden.

Syntax

css
@document url("https://www.example.com/") { h1 { color: green; } } 

Eine @document-Regel kann eine oder mehrere passende Funktionen angeben. Wenn eine der Funktionen auf eine bestimmte URL zutrifft, wird die Regel auf diese URL angewendet. Die verfügbaren Funktionen sind:

url()

Passt auf eine genaue URL.

url-prefix()

Passt, wenn die Dokument-URL mit dem angegebenen Wert beginnt.

domain()

Passt, wenn die Dokument-URL auf der angegebenen Domain (oder einer Subdomain davon) liegt.

media-document()

Passt die Medien entsprechend der Zeichenkette im Parameter an, eine von video, image, plugin oder all.

regexp()

Passt, wenn die Dokument-URL mit dem angegebenen regulären Ausdruck übereinstimmt. Der Ausdruck muss mit der gesamten URL übereinstimmen.

Die Werte, die den Funktionen url(), url-prefix(), domain() und media-document() übergeben werden, können optional in einfache oder doppelte Anführungszeichen eingeschlossen werden. Die den regexp()-Funktionen übergebenen Werte müssen in Anführungszeichen eingeschlossen werden.

Escape-Werte, die an die regexp()-Funktion übergeben werden, müssen zusätzlich aus dem CSS entkommen. Beispielsweise stimmt ein . (Punkt) in regulären Ausdrücken mit jedem Zeichen überein. Um einen tatsächlichen Punkt zu finden, müssten Sie ihn zunächst mit regulären Ausdruckregeln entkommen (zu \.), dann diesen Zeichenfolge mit CSS-Regeln entkommen (zu \\.).

@document wird derzeit nur in Firefox unterstützt; wenn Sie ähnliche Funktionen in einem anderen Browser als Firefox nachbilden möchten, können Sie versuchen, dieses Polyfill von @An-Error94 zu verwenden, das eine Kombination aus einem Benutzer-Skript, data-* Attributen, und Attributselektoren verwendet.

Hinweis: Es gibt eine -moz-präfixierte Version dieses Eigenschafts — @-moz-document. Diese wurde auf die Verwendung nur in Benutzer- und UA-Sheets in Firefox 59 in Nightly und Beta beschränkt – ein Experiment, um potenzielle CSS-Injektionsangriffe zu mildern (siehe Firefox bug 1035091).

Formale Syntax

@document [ <url> | url-prefix(<string>) | domain(<string>) | media-document(<string>) | regexp(<string>) ]# { <group-rule-body> } 

Beispiele

Dokument für CSS-Regel spezifizieren

css
@document url("http://www.w3.org/"), url-prefix("http://www.w3.org/Style/"), domain("mozilla.org"), media-document("video"), regexp("https:.*") { /* CSS rules here apply to: - The page "http://www.w3.org/" - Any page whose URL begins with "http://www.w3.org/Style/" - Any page whose URL's host is "mozilla.org" or ends with ".mozilla.org" - Any standalone video - Any page whose URL starts with "https:" */ /* Make the above-mentioned pages really ugly */ body { color: purple; background: yellow; } } 

Spezifikationen

Ursprünglich in Level 3, wurde @document auf Level 4 verschoben, aber dann anschließend entfernt.

Browser-Kompatibilität

Siehe auch