许多网站有很多页面,但所有这些网页通常称呼只有一个样式表。服务只有一个样式表是一个很好的做法,以尽量减少HTTP请求,让页面在浏览器中加载更快。
然而,会有包含在是不必要的,一些网页的样式表一堆样式规则。这样岂不是巨大的,如果我们能够将一组样式规则仅适用于特定的网页,同时仍保持一个样式表?
这个想法将成为可能的新建议的标准的CSS在规则叫做@文件。这条规则是最初提出的一部分CSS3但由于几个问题,它被推迟,并可能包含在CSS的4级。
让我们来看看它是如何工作的,好吗?
推荐阅读: 如何自动编译LESS样式表
基本用法
@文件允许我们指定样式规则仅针对特定的网页。正如指出的提案,它主要设计用于用户样式表。因此,用户可以执行以下操作来定制自己(喜欢)的网站:
-
@document domain("facebook.com") {
-
- body {
-
- background-color: yellow;
- }
- a {
- color: red;
- }
- img {
- border-radius: 100%;
- }
- }
- @document domain("twitter.com") {
- body {
- background-color: red;
- }
- a {
- color: pink;
- }
- }
您可以访问UserStyles.org用户样式表的一些伟大的例子。
我们作为网站的作者,也可以利用@文件,以在我们的网站控制的样式。比方说,我们希望有一个特别上应用我们的样式规则的页面上我们的网站。要做到这一点,我们可以封装样式规则与@文件,像这样:
-
@document url("http://www.hongkiat.com/blog/about-us/") {
-
- h1 {
- font-size: 50em;
- color: green;
- }
- p {
- color: red;
- }
- a {
- color: blue;
- }
- }
之间的差额域() (从第一个例子), ),网址(是域()会影响所有被托管在指定域的页面,而URL()将只在样式规则应用到指定的URL;其它的URL(或页面)等均不受影响。
您可以使用URL前缀()来指定样式规则来开头的URL,例如CSS。
-
@document url-prefix("http://www.hongkiat.com/blog/category/") {
-
- h2 {
- font-family: "Georgia";
- }
- div {
- background-color: blue;
- color: #fff;
- }
- }
使用正则表达式()函数,我们可以去更深入地与正则表达式(正则表达式)。下面的例子是来自W3C的派生,而正则表达式开头的URL匹配http://www.w3.org/TR/,其次是4位数组成,并与8位数字结尾。
-
@document regexp("http://www.w3.org/TR/\\d{4}/[^/]*-CSS2-\\d{8}/") {
-
- body {
- transform: rotate(90deg);
- }
- }
结论
好吧,我们已经看到了一些使用的可能性@文件的规则。但如前所述,它是目前搁置CSS4,而Firefox的是,已与实施的唯一浏览器@ -万盎司文件前缀。尽管如此,我们将保持对开发标签@文件规则,看看它是如何去的未来。