CSS 的顶层样式表由两种规则组成的规则列表构成,一种是 at 规则,另一种是普通规则。
at 规则
- @charset
- @import
- @media
- @page
- @counter-style
[@keyframes](https://www.w3.org/TR/css-animations-1/)
- @fontface
- @support
-
@charset
@charset 用于提示 CSS 文件使用的字符编码方式,它如果被使用,必须出现在最前面。
这个规则只在给出语法解析阶段前使用,并不影响页面上的展示效果@charset "utf8"
@import
@import 用于引入一个 CSS 文件,除了 @charset 规则不会被引入, @import 可以引入另一个文件的全部内容。
@import "mystyle.css";
@import url("mystyle.css");
另外还支持 supports 和 media query 形式。
@media
能够对设备的类型进行一些判断。
@media print {
body { font-size: 10pt }
}
@page
用于分页媒体访问网页时的表示设置,页面是一种特殊的盒模型结构,除了页面本身,还可以设置它周围的盒。
@page {
size: 8.5in 11in;
margin: 10%;
@top-left {
content: "Hamlet";
}
@top-right {
content: "Page " counter(page);
}
}
@counter-style
产生一种数据,用于定义列表项的表现
@counter-style triangle {
system: cycle;
symbols: ▲;
suffix: " ";
}
@keyframes
@keyframes 规则用于创建动画,在 @keyframes 中规定某项 CSS 样式,就能创建由当前样式逐渐改为新样式的动画效果。
@keyframes diagonal-slide {
from {
left: 0;
top: 0;
}
to {
left: 100px;
top: 100px;
}
}
@fontface
用于定义一种字体,icon font技术就是利用这个特性来实现的. ```css @font-face { font-family: Gentium; src: url(http://example.com/fonts/Gentium.woff); }
p { font-family: Gentium, serif; } ```
@support
@namespace
用于跟 XML 命名空间配合的一个规则,表示内部的 CSS 选择器全部带上特定命名空间。
@viewport
用于设置视口的一些特性,不过兼容性目前不是很好,多数时候被 html 的 meta 代替。
@layer
普通规则
- 选择器
- 声明列表
- 属性
- 值
- 值的类型
- 函数