at-rule 由一個 @ 關鍵字和后續的一個區塊組成,如果沒有區塊,則以分號結束
- **@chartset**:用于提示 CSS 文件使用的字符編碼方式,如果被使用,必須出現在最前面
```css
@chartset 'utf-8';
```
- **@import**:用于引入一個 CSS 文件,除了 @chartset 規則不會被引入,@import 可以引入另一個文件的全部內容
```
@import 'common.css'
@import url('base.css');
```
- **@media**:媒體查詢,能夠對設備的類型,瀏覽器窗口大小進行判斷。在 @media 的區塊中,是普通規則列表
```css
@media print {
body { font-size: 14pt; }
}
```
- **@keyframes**:用于定義動畫關鍵幀
```css
@keyframes move {
from { left: 0; top: 0; }
to { left: 100px; top: 100px; }
}
```
- **@fontface**:用于定義一種字體,iconfont 技術就是利用這個特性來實現的
```css
@font-face {
font-family: Gentium;
src: url(http://example.com/fonts/Gentium.woff);
}
h1 {
font-family: Gentium, serif;
}
```
- **@page**:用于頁面打印的時候修改頁面的 CSS 屬性
```css
@page {
margin: 20px;
}
```
- **@counter-style**:用于定義列表的表現
```css
@counter-style triangle {
system: cyclic;
symbols: ?;
suffix: ' ';
}
```
- **@support**:檢查環境的特性,它與 @media 比較類似
- **@namespace**:用于跟 XML 命名空間配合的一個規則,表示內部的 CSS 選擇器全部帶上特定的命名空間
- **@viewport**:用于設置視口的一些特性,不過兼容性目前不是很好,多數時候被 HTML 的 meta 代替
- 其他:除了以上這些,還有目前不太推薦使用的 at 規則
- @color-profile:是 SVG1.0 引入的 CSS 特性,但是實現狀況不怎么好
- @document:還沒討論清楚,被推遲到了 CSS4 中
- @font-feature-values