大家好我是落尘,一名新进晋级的菜鸟小编,也是一名前端开发攻城狮,从今天起带大家重新理解前端,重新学习前端,让大家有新的理解,每天都会更新些前端知识,如果小主们觉得还可以那就关注一下吧!
今天我们进入 CSS 的学习。CSS 是前端工程师几乎每天都要用的技术了,不过 CSS 的学习资料却是最糟糕的,这是因为 CSS 并没有像 HTML 和 JavaScript 那样的一份标准文档。
如果我们到 W3C 的网站上搜索看看,可以得到一些信息:
https://www.w3.org/TR/?title=css
在这里,我们一共看到了 98 份 CSS 相关的标准,它们各自从一些角度规定了 CSS 的特性。
这里我们暂且去掉 Working Draft 状态的标准,可以得到 22 份候选标准和 6 份推荐标准。
既然我们的专栏内容强调去系统性学习 CSS,于是,面对这 22+6 份标准,我们就又需要一条线索,才能把这些离散的标准组织成易于理解和记忆的形式。
在这样的需求下,我找到的线索就是 CSS 语法,任何 CSS 的特性都必须通过一定的语法结构表达出来,所以语法可以帮助我们发现大多数 CSS 特性。
CSS 语法的最新标准,你可以戳这里查看:
https://www.w3.org/TR/css-syntax-3/
这篇文档的阅读体验其实是非常糟糕的,它对 CSS 语法的描述使用了类似 LL 语法分析的伪代码,而且没有描述任何具体的规则。
这里你就不必自己去阅读了,我来把其中一些有用的关键信息抽取出来描述一下,我们一起来看看。
我们拿到这份标准可以看到,去除空格、HTML 注释等无效信息,CSS 的顶层样式表由两种规则组成的规则列表构成,一种被称为 at-rule,也就是 at 规则,另一种是 qualified rule,也就是普通规则。
at-rule 由一个 @ 关键字和后续的一个区块组成,如果没有区块,则以分号结束。这些 at-rule 在开发中使用机会远远小于普通的规则,所以它的大部分内容,你可能会感觉很陌生。
这些 at 规则正是掌握 CSS 的一些高级特性所必须的内容。qualified rule 则是指普通的 CSS 规则,也就是我们所熟识的,由选择器和属性指定构成的规则。
at 规则
好了,现在我们已经知道了,CSS 语法的整体结构,接下来我们要做的是一个体力活,从所有的 CSS 标准里找到所有可能的 at-rule(不用谢,我已经帮你找好了,如果页面定位不准,你可以打开页面搜索关键字)。
@charset :https://www.w3.org/TR/css-syntax-3/
@import :https://www.w3.org/TR/css-cascade-4/
@media :https://www.w3.org/TR/css3-conditional/
@page :https://www.w3.org/TR/css-page-3/
@counter-style :https://www.w3.org/TR/css-counter-styles-3
@keyframes :https://www.w3.org/TR/css-animations-1/
@fontface :https://www.w3.org/TR/css-fonts-3/
@supports :https://www.w3.org/TR/css3-conditional/
@namespace :https://www.w3.org/TR/css-namespaces-3/
这里的每一种 @规则背后,都是一组 CSS 的知识。在我们的课程中,有些会重点介绍,不过,为了先给你建立起一个整体的认知,我们这里会给所有的 @规则提供一些简单的例子和介绍。
@charset
@charset 用于提示 CSS 文件使用的字符编码方式,它如果被使用,必须出现在最前面。这个规则只在给出语法解析阶段前使用,并不影响页面上的展示效果。
@charset "utf-8";