blob: 0f15af0f551ba286b7a18d6176c25107acb02a75 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
---
title: '@document'
slug: Web/CSS/@document
tags:
- CSS
- 参考
translation_of: Web/CSS/@document
---
<div>{{CSSRef}} {{ SeeCompatTable}}</div>
<p><code>@document</code> <a href="/zh-CN/docs/Web/CSS">CSS</a> <a href="/zh-CN/docs/Web/CSS/At-rule">at-rule</a> 根据文档的 URL 限制其中包含的样式规则的作用范围。它主要是为用户定义的样式表(UserStyle)而设计的,但也可以在作者定义的样式表上使用。</p>
<pre class="brush: css no-line-numbers">@document url("https://www.example.com/") {
h1 {
color: green;
}
}
</pre>
<h2 id="语法">语法</h2>
<p><code>@document</code> 规则可以指定一个或多个匹配函数。如果任何功能适用于给定的 URL,则该规则将对该URL生效。可用的函数如下:</p>
<ul>
<li><code>url()</code>,匹配整个 URL。</li>
<li><code>url-prefix()</code>,匹配文档的 URL 是否以参数指定的值开头。</li>
<li><code>domain()</code>,匹配文档的域名是否为参数中指定的域名或者为它的子域名。</li>
<li><code>regexp()</code>,匹配文档的 URL 是否和参数中指定的<a href="/zh-CN/JavaScript/Guide/Regular_Expressions">正则表达式</a>匹配。该表达式必须匹配整个 URL。</li>
</ul>
<p>提供给 <code>url()</code>、<code>url-prefix()</code>,和 <code>domain()</code> 函数的参数可以不使用引号括起来。但提供给 <code>regexp()</code> 函数的参数必须用引号括起来。</p>
<p>提供给 <code>regexp()</code> 函数的正则表达式中的转义字符必须再次进行一次 CSS 转义。例如,一个点号(<code>.</code>),在正则表达式中匹配任意换行符之外的字母.如果想要匹配一个正真的点号,必须首先按照正则表达式的规则转义一次(变为 <code>\.</code>)然后在使用CSS的规则再转义一次(转换为<code>\\.</code>)。</p>
<h2 id="例子">例子</h2>
<pre class="brush: css">@document url(http://www.w3.org/),
url-prefix(http://www.w3.org/Style/),
domain(mozilla.org),
regexp("https:.*")
{
/* 该条CSS规则会应用在下面的网页:
+ URL为"http://www.w3.org/"的页面.
+ 任何URL以"http://www.w3.org/Style/"开头的网页
+ 任何主机名为"mozilla.org"或者主机名以".mozilla.org"结尾的网页
+ 任何URL以"https:"开头的网页 */
/* 让上述网页变得超级丑 */
body {
color: purple;
background: yellow;
}
}
</pre>
<h2 id="规范">规范</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">文档</th>
<th scope="col">状态</th>
<th scope="col">注释</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{ SpecName('CSS3 Conditional', '#at-document', '@document') }}</td>
<td>{{ Spec2('CSS3 Conditional') }}</td>
<td></td>
</tr>
</tbody>
</table>
<h2 id="浏览器兼容性">浏览器兼容性</h2>
<p>{{Compat("css.at-rules.document")}}</p>
<h2 id="参见">参见</h2>
<ul>
<li><a class="external" href="http://lists.w3.org/Archives/Public/www-style/2004Aug/0135">Per-site user style sheet rules</a> on the www-style mailing list.</li>
<li>The file <code><a class="external" href="http://www.mozilla.org/support/firefox/edit#content">userContent.css</a></code> is a user stylesheet on Gecko-based browsers.</li>
</ul>
|