@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 hauptsächlich für benutzerdefinierte Stylesheets konzipiert (siehe userchrome.org für weitere Informationen), kann aber auch in autordefinierten Stylesheets verwendet werden.
Syntax
@document url("https://www.example.com/")
{
h1 {
color: green;
}
}
Eine @document-Regel kann eine oder mehrere passende Funktionen spezifizieren. Wenn eine der Funktionen auf eine gegebene URL zutrifft, wird die Regel auf diese URL angewendet. Die verfügbaren Funktionen sind:
url()-
Passt zu einer exakten 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 gemäß dem String im Parameter an, einer von
video,image,pluginoderall. regexp()-
Passt, wenn die Dokument-URL durch den angegebenen regulären Ausdruck übereinstimmt. Der Ausdruck muss die gesamte URL abgleichen.
Die in den Funktionen url(), url-prefix(), domain() und media-document() angegebenen Werte können optional in einfache oder doppelte Anführungszeichen eingeschlossen werden. Die an die regexp()-Funktion übergebenen Werte müssen in Anführungszeichen eingeschlossen sein.
Escape-Werte, die an die regexp()-Funktion übergeben werden, müssen zusätzlich aus dem CSS herausgefluchtet werden. Zum Beispiel: Ein . (Punkt) entspricht jedem Zeichen in regulären Ausdrücken. Um einen tatsächlichen Punkt abzugleichen, müssten Sie ihn zuerst mit regulären Ausdrücken regeln (zu \.), dann diesen String mit CSS-Regeln (zu \\.) escapen.
@document wird derzeit nur von Firefox unterstützt; wenn Sie versuchen möchten, eine solche Funktionalität in Ihrem eigenen Nicht-Firefox-Browser zu replizieren, könnten Sie dieses Polyfill von @An-Error94 verwenden, das eine Kombination aus einem Benutzerskript, data-* Attributen und Attributselektoren verwendet.
Hinweis:
Es gibt eine -moz-Präfix-Version dieser Eigenschaft — @-moz-document. Diese wurde auf die Verwendung nur in Benutzer- und UA-Stylesheets in Firefox 59 in Nightly und Beta beschränkt — ein Experiment, das darauf abzielt, 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
@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, jedoch anschließend entfernt.
Browser-Kompatibilität
Siehe auch
- Regeln für benutzerspezifische Stylesheets pro Seite auf der www-style Mailingliste.