CSS 的顶层样式表由两种规则组成的规则列表构成,
- @规则(at-rule)
 
@规则由@+相关区块内容组成
- 普通规则( qualified rule)
 
at-rule
@charset
@charset用于提示css文件使用字符编码方式,如果使用必须写在前面
@charset "utf-8"
@import
import 用于引入一个 CSS 文件除了 @charset 规则不会被引入,@import 可以引入另一个文件的全部内容
@import [ <url> | <string> ][ supports( [ <supports-condition> | <declaration> ] ) ]? <media-query-list>? ;
@import url("css path")
使用 @import 引入的 CSS 文件,会在本 CSS 文件加载时,给服务器发一个 http 请求被 import 的 CSS 文件。
经常有个建议是:少用 @import ,因为会增加 http 的请求数量。
@media
利用媒体查询可以对设备的视口大小进行判断,从而实现响应式执行某些样式。
/*媒体查询*//*当页面大于1200px 时,大屏幕,主要是PC 端*/@media (min-width: 1200px) {}/*在992 和1199 像素之间的屏幕里,中等屏幕,分辨率低的PC*/@media (min-width: 992px) and (max-width: 1199px) {#adver .center {width: 50%;margin: -10px 0 0 -25%;}main .center h2 {font-size: 40px;}}/*在768 和991 像素之间的屏幕里,小屏幕,主要是PAD*/@media (min-width: 768px) and (max-width: 991px) {#adver .center {width: 60%;margin: -10px 0 0 -30%;}#adver .search, #adver .button {font-size: 20px;}main .center h2 {font-size: 35px;}}
@page
page 规则定义样式表中页面框的尺寸,方向和页边距,用于打印预览和从浏览器打印Web文档。
通常,在此构造中,各种CSS属性(如大小,页面和边距)用于指定页面框的尺寸,方向,边距等
页面框是一个矩形区域,其中包含两个区域:
- 该页面区域。页面区域包括该页面上布置的框。第一页区域的边缘建立了矩形,该矩形是文档的初始包含块。画布背景被绘制在其中并覆盖页面区域。
 - 在边缘区域,围绕页面区域。页边距区域是透明的。
 
// 使用规则如下@page [:left | :right | :first] {/* print-specific rules */}
// 使用方式@page {margin: 2in; /* default for all pages */}@page :left {margin: 1in; /* margin on left page */}@page :right {margin: 3in; /* margin on right page */}@page :first {margin-top: 5in; /* top margin on first page */}
@counter-style
counter-style 产生一种数据,用于定义列表项的表现
// 语法@counter-style <counter-style-name> {system: <counter system> // 指定一个算法,用于将计数器的整数值转化为字符串表示symbols: <counter symbols> // 定义一个符号,用于标记的表示。符号可以包含字符串,图片或自定义的识别码additive-symbols: <additive-symbols>negative: <negative symbol> // 指定一个符号,当计数器表示的值为负的时候,把这个符号加在值的前面或后面prefix: <prefix> // 指定一个符号,加在标记表示符的前面。前缀在最后阶段才会被加上,所以在计数器的最终表示中,它在negative前suffix: <suffix>range: <range>pad: <padding>speak-as: <speak-as>fallback: <counter-style-name>}
如果system的值是fixed,那么symbols属性指定的固定的N个符号,将被用来表示计数器的前N个值。用完了前N个符号后,列表里剩下的值将使用fallback定义的样式来表示
/* 下面的 @counter-style 规则使用图片而不是字符标记 */@counter-style winners-list {system: fixed;symbols: url(gold-medal.svg) url(silver-medal.svg) url(bronze-medal.svg);suffix: " ";}
- 把无序列表的小点,换成 字母序号 ```javascript @counter-style circled-alpha { system: fixed; symbols: Ⓐ Ⓑ Ⓒ Ⓓ Ⓔ Ⓕ Ⓖ Ⓗ Ⓘ Ⓙ Ⓚ Ⓛ Ⓜ Ⓝ Ⓞ Ⓟ Ⓠ Ⓡ Ⓢ Ⓣ Ⓤ Ⓥ Ⓦ Ⓧ Ⓨ Ⓩ; suffix: “ “; }
 
.items { list-style: circled-alpha; }
```// 在页面的展示结果Ⓐ OneⒷ TwoⒸ ThreeⒹ FourⒺ FIve.......Ⓨ Twenty FiveⓏ Twenty Six
@key-frames
key-frames产生一种数据,用于定义动画关键帧
@keyframs myanimate{form {}to {}}
@fontface
fontface 用于定义一种字体,iconfont 是利用这个 css 特性来实现的
@support
support 检查环境特性与 media 比较类似
@namespace
用于和 xml 命名空间配合一个规则
普通规则
选择器
- id选择器: 
#xxx - 类选择权: 
.xxx - 标签选择器: 
div span.... - 相邻选择器:
h1+p - 子代选择器:
xx > xxx - 后代选择器: 
xx xxx - 通配符选择器: 
* - 属性选择器: 
a[xx="xxx"] - 伪类选择器:
xxx:hover - 伪元素选择器:
xxx::after声明区块
 
图片
filter:滤镜
background:背景
conic-gradien()linear-gradient()radial-gradient()shape()
