CSS:你未必知道的@规则

翻译 2015年07月07日 11:32:45

at-rule是一个声明,为CSS提供执行或怎么表现的指令。每个声明以@开头,后紧跟一个可用的关键字,这个关键字充当一个标识符,用于表示CSS该做什么。这是一个通用的语法,尽管每个at-rule有其它语法变体。

常规规则

常规规则遵循下面的语法:

@[KEYWORD] (RULE);

@charset
这个规则定义了浏览器使用的字符集,如果样式表包含非ASCII characters (e.g:UTF-8)。注意,被放在HTTP头部的字符集将会覆盖@charset规则

@charset "UTF-8";

@import
这个规则指示请求样式表,在这一行,如果内容是正确的,就会引入一个外部的CSS文件。

@import 'global.css';

虽然流行的CSS预处理器都支持@import,但是应该指出的是,它们的工作原理不同于原生的CSS:预处理器会抓取CSS文件并将它们处理成一个CSS文件,对原生CSS,每一个@import都是一个独立的HTPP请求。
@namespace
对于将CSS应用在XML HTML(XHTML),这个规则是非常有用的,因为XHTML元素能在CSS中被作为一个选择器使用。

/* Namespace for XHTML */
@namespace url(http://www.w3.org/1999/xhtml);

/* Namespace for SVG embedded in XHTML */
@namespace svg url(http://www.w3.org/2000/svg);

嵌套规则

嵌套规则包含了额外的子集声明,其中一些声明只能用于特定情况。

@[KEYWORD] {
  /* Nested Statements */
}

@document
这个规则为样式表指定了条件:只能应用于特定页面。举个粟子,我们提供一个URL,然后为这个特定的页面自定义样式,在其他页面中,这些样式会被忽略。

@document 
  /* Rules for a specific page */
  url(http://css-tricks.com/),

  /* Rules for pages with a URL that begin with... */
  url-prefix(http://css-tricks.com/snippets/),

  /* Rules for any page hosted on a domain */
  domain(css-tricks.com),

  /* Rules for all secure pages */
  regexp("https:.*")
{

  /* Start styling */
  body { font-family: Comic Sans; }

}

@font-face
这个规则允许在web页面上加载自定义字体,对自定义字体有不同程度的支持,但是这个规则接受语句创建和提供这些字体。

@font-face {
  font-family: 'MyWebFont';
  src:  url('myfont.woff2') format('woff2'),
        url('myfont.woff') format('woff');
}

@keyframes
在诸多CSS属性中,这个规则是关键帧  动画的基础,并允许我们标记动画开始和结束的标志。

@keyframes pulse {
  0% {
    background-color: #001f3f;
  }
  100% {
    background-color: #ff4136;
  }
}

@media
这个规则包含条件声明,可用于为特定屏幕指定样式,这些声明可以包含屏幕大小,在适屏样式中会很有用.

/* iPhone in Portrait and Landscape */
@media only screen 
  and (min-device-width: 320px) 
  and (max-device-width: 480px)
  and (-webkit-min-device-pixel-ratio: 2) {

    .module { width: 100%; }

}

或者只在文档打印时运用样式

@media print {

}

@page
这个规则为将要打印的单独页面定义样式。特别的是,它能为页面伪元素设置外边距::first:left:right

@page :first {
  margin: 1in;
}

@supports
这个规则可测试浏览器知否支持某个特性/功能,如果满足条件,将会为这些元素应用特定样式。有点像Modernizr,但确实是CSS属性。

/* Check one supported condition */
@supports (display: flex) {
  .module { display: flex; }
}

/* Check multiple conditions */
@supports (display: flex) and (-webkit-appearance: checkbox) {
  .module { display: flex; }
}

浏览器对@supports的支持情况:

Chrome Safari FireFox Opera IE Android IOS
28+ No 31+ 12.1+ No 4.4+ No

for more information of @supports,click here:@supports

总结

at-rule可以使CSS做一些疯狂有趣的事情。尽管文章中的示例很基础,但是可以看到,对于特定的条件,它们是如何使用样式的,从而创建匹配特定场景的用户体验和交互。

译文出处:http://www.ido321.com/1595.html

10个你未必知道的CSS技巧

本文作者是:Trenton Moss。 发表网站是:http://www.webcredible.co.uk/。本翻译并未得到作者或网站授权。一切权利都归原作者及原网站所有。如果你得到原作者或原发表网...
  • nop90
  • nop90
  • 2006年12月04日 13:59
  • 421

10个你未必知道的CSS技巧 

1.CSS字体属性简写规则一般用CSS设定字体属性是这样做的:font-weight:bold;font-style:italic;font-varient:small-caps;font-size:...
  • paolei
  • paolei
  • 2009年02月03日 11:06
  • 571

你未必知道的CSS技巧

 本文作者是:Trenton Moss。 发表网站是:http://www.webcredible.co.uk/。本翻译并未得到作者或网站授权。一切权利都归原作者及原网站所有。如果你得到原作者或原发表...
  • JOHNCOOLS
  • JOHNCOOLS
  • 2006年05月14日 17:05
  • 611

你未必知道的css小知识

1:当按百分比设定一个元素的宽度时,它是相对于父容器的宽度计算的,但是,对于一些表示竖向距离的属性,例如padding-top,padding-bottom,margin-top,margin-bot...
  • qianqianyixiao1
  • qianqianyixiao1
  • 2014年12月30日 11:51
  • 482

你未必知道的10个CSS技巧

  • zgqtxwd
  • zgqtxwd
  • 2008年04月30日 23:29
  • 217

10个你未必知道的CSS技巧

1.CSS字体属性简写规则一般用CSS设定字体属性是这样做的:font-weight:bold;font-style:italic;font-varient:small-caps;font-size:...
  • shanxing
  • shanxing
  • 2006年06月10日 16:12
  • 464

10个你未必知道的CSS技巧

转:http://blog.csdn.net/zxmcl/archive/2007/08/04/1726502.aspx 1.CSS字体属性简写规则一般用CSS设定字体属性是这样做的:font-wei...
  • zhengzhichen
  • zhengzhichen
  • 2008年11月17日 10:08
  • 314

你未必知道的CSS技巧

本文作者是:Trenton Moss。 发表网站是:http://www.webcredible.co.uk/。本翻译并未得到作者或网站授权。一切权利都归原作者及原网站所有。如果你得到原作者或原发表网...
  • greatbag
  • greatbag
  • 2006年05月15日 12:24
  • 500

你未必知道的CSS故事:揭开leading的面纱

点击打开原文链接 几乎所有CSS书在讲到line-height属性的时候,都会提到传统排版中的一个术语——leading。这个leading到底指什么,它在汉字排版中叫什么,...
  • qq_34482827
  • qq_34482827
  • 2016年07月17日 11:38
  • 185

CSS3你可能不知道的冷知识

可能我们在看一些网页的源码时 会发现自己从来没见过的属性或用法 今天我就来总结一下 CSS3的冷知识 样式计算在CSS中也可以进行简单的计算 通过calc函数可以实现 这样还可以使我们的元...
  • q1056843325
  • q1056843325
  • 2016年12月02日 22:05
  • 2391
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CSS:你未必知道的@规则
举报原因:
原因补充:

(最多只允许输入30个字)