@document
已弃用: 不再推荐使用该特性。虽然一些浏览器仍然支持它,但也许已从相关的 web 标准中移除,也许正准备移除或出于兼容性而保留。请尽量不要使用该特性,并更新现有的代码;参见本页面底部的 兼容性表格 以指导你作出决定。请注意,该特性随时可能无法正常工作。
非标准: 该特性是非标准的,请尽量不要在生产环境中使用它!
@document
CSS
At 规则
根据文档的 URL 限制其中包含的样式规则的作用范围。它主要是为用户定义的样式表而设计的,但也可以在开发者定义的样式表上使用。
@document url("https://www.example.com/")
color: green;
语法
@document
规则可以指定一个或多个匹配函数。如果其中的任何函数适用于给定的 URL,则该规则将对该 URL 生效。可用的函数如下:
url()
匹配完全相符的 URL。
url-prefix()
匹配文档的 URL 是否以参数指定的值开头。
domain()
匹配文档的域名是否为参数中指定的域名或者为它的子域名。
media-document()
根据参数中的字符串匹配媒体查询,匹配其中之一:
video
、
image
、
plugin
或
all
。
regexp()
匹配文档的 URL 是否和参数中指定的 正则表达式 匹配,该表达式必须匹配整个 URL。
提供给
url()
、
url-prefix()
、
domain()
和
media-document()
函数的参数可以不使用引号括起来。但提供给
regexp()
函数的参数
必须
用引号括起来。
提供给
regexp()
函数的正则表达式中的转义字符必须再次进行一次 CSS 转义。例如,一个句号(
.
)在正则表达式中匹配任何字符。如果想要匹配一个真正的句号,必须首先按照正则表达式的规则转义一次(变为
\.
)然后再使用 CSS 规则对该字符串进行转义(转换为
\\.
)。
@document
目前只在 Firefox 火狐浏览器中支持。如果你想在非 Firefox 火狐浏览器中使用此功能,你可以尝试使用由 @An-Error94 提供的
polyfill
,它使用了用户脚本、
data-* 属性
和
属性选择器
的组合。
-moz-
的前缀版本——
@-moz-document
。在 Firefox 火狐浏览器 59 的 Nightly 和 Beta 版本中,此版本已被限制仅在用户和 UA 样式表中使用——这是一个旨在减轻潜在的 CSS 注入攻击的实验性特性。(请参阅
Firefox bug 1035091
)。