CSS4文档规则概览
2014-02-27 14:15:02

许多网站有很多页面,但所有这些网页通常称呼只有一个样式表。服务只有一个样式表是一个很好的做法,以尽量减少HTTP请求,让页面在浏览器中加载更快。

然而,会有包含在是不必要的,一些网页的样式表一堆样式规则。这样岂不是巨大的,如果我们能够将一组样式规则仅适用于特定的网页,同时仍保持一个样式表?

这个想法将成为可能的新建议的标准的CSS在规则叫做@文件。这条规则是最初提出的一部分CSS3但由于几个问题,它被推迟,并可能包含在CSS的4级。

让我们来看看它是如何工作的,好吗?

推荐阅读: 如何自动编译LESS样式表

基本用法
@文件允许我们指定样式规则仅针对特定的网页。正如指出的提案,它主要设计用于用户样式表。因此,用户可以执行以下操作来定制自己(喜欢)的网站:

  1. @document domain("facebook.com") {  
  2.  
  3.     body {  
  4.  
  5.         background-coloryellow;  
  6.     }  
  7.     a {  
  8.         colorred;  
  9.     }  
  10.     img {  
  11.         border-radius: 100%;  
  12.     }  
  13. }  
  14. @document domain("twitter.com") {  
  15.     body {  
  16.         background-colorred;  
  17.     }  
  18.     a {  
  19.         color: pink;  
  20.     }  
  21. }  

您可以访问UserStyles.org用户样式表的一些伟大的例子。

我们作为网站的作者,也可以利用@文件,以在我们的网站控制的样式。比方说,我们希望有一个特别上应用我们的样式规则的页面上我们的网站。要做到这一点,我们可以封装样式规则与@文件,像这样:

  1. @document url("http://www.hongkiat.com/blog/about-us/") {  
  2.  
  3.     h1 {  
  4.  
  5.         font-size: 50em;  
  6.         colorgreen;  
  7.     }  
  8.     p {  
  9.         colorred;  
  10.     }  
  11.     a {  
  12.         colorblue;  
  13.     }  
  14. }  

之间的差额域() (从第一个例子), ),网址(是域()会影响所有被托管在指定域的页面,而URL()将只在样式规则应用到指定的URL;其它的URL(或页面)等均不受影响。

您可以使用URL前缀()来指定样式规则来开头的URL,例如CSS。

  1. @document url-prefix("http://www.hongkiat.com/blog/category/") {  
  2.  
  3.     h2 {   
  4.  
  5.         font-family"Georgia";  
  6.     }  
  7.     div {  
  8.         background-colorblue;  
  9.         color#fff;  
  10.     }  
  11. }  

使用正则表达式()函数,我们可以去更深入地与正则表达式(正则表达式)。下面的例子是来自W3C的派生,而正则表达式开头的URL匹配http://www.w3.org/TR/,其次是4位数组成,并与8位数字结尾。

  1. @document regexp("http://www.w3.org/TR/\\d{4}/[^/]*-CSS2-\\d{8}/") {  
  2.  
  3.     body {   
  4.  
  5.         transform: rotate(90deg);  
  6.     }  
  7. }  

结论
好吧,我们已经看到了一些使用的可能性@文件的规则。但如前所述,它是目前搁置CSS4,而Firefox的是,已与实施的唯一浏览器@ -万盎司文件前缀。尽管如此,我们将保持对开发标签@文件规则,看看它是如何去的未来。