什么是CSS
-
层叠样式表或级联样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML或XML等文件样式的计算机语言。
-
CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。
-
CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页样式编辑的能力。
-
将页面的内容与表现形式相分离。
-
层叠就是浏览器对多个样式来源进行叠加,最终确定结果的过程。CSS 之所以有“层叠”的概念,是因为有多个样式来源
css历史
- 从HTML被发明开始,样式就以各种形式存在。不同的浏览器结合它们各自的样式语言为用户提供页面效果的控制。最初的HTML只包含很少的显示属性。
- 随着HTML的成长,为了满足页面设计者的要求,HTML添加了很多显示功能。但是随着这些功能的增加,HTML变的越来越杂乱,而且HTML页面也越来越臃肿。于是CSS便诞生了。
- 1994年哈坤·利提出了CSS的最初建议。而当时伯特·波斯(Bert Bos)正在设计一个名为Argo的浏览器,于是他们决定一起设计CSS。
- 其实当时在互联网界已经有过一些统一样式表语言的建议了,但CSS是第一个含有“层叠”丰意的样式表语言。在CSS中,一个文件的样式可以从其他的样式表中继承。读者在有些地方可以使用他自己更喜欢的样式,在其他地方则继承或“层叠”作者的样式。这种层叠的方式使作者和读者都可以灵活地加入自己的设计,混合每个人的爱好
- 1995年初,W3C内组织了专门管CSS的工作组
- 1996年12月,CSS1.0 发布
- 1998年5月,CSS2.0 发布
- 2001年5月,CSS3.0 发布
DIV+CSS布局
- DIV+CSS是WEB设计标准,它是一种网页的布局方法。
- 与传统中通过表格(table)布局定位的方式不同,它可以实现网页页面内容与表现相分离。提起DIV+CSS组合,还要从XHTML说起。XHTML是一种在HTML(标准通用标记语言的子集)基础上优化和改进的新语言,目的是基于XML应用与强大的数据转换能力,适应未来网络应用更多的需求。
- “DIV+CSS”其实是错误的叫法,而标准的叫法应是XHTML+CSS。因为DIV与Table都是XHTML或HTML语言中的一个标记,而CSS只是一种表现形式。也许其提出者本意并没有错,但是跟风者从表现曲解了其意思,认为整个页面就应当是DIV+CSS文件的组合。
浏览器渲染流程
- 浏览器开始解析目标HTML文件,执行流的顺序为自上而下。
- HTML解析器将HTML结构转换为基础的DOM(文档对象模型),构建DOM树完成后,触发DomContendLoaded事件。
- CSS解析器将CSS解析为CSSOM(层叠样式表对象模型),一棵仅含有样式信息的树。
- CSSOM和DOM开始合并构成渲染树(render Tree),每个节点开始包含具体的样式信息。浏览器就是根据render tree来绘制页面的
- 计算渲染树中个各个节点的位置信息,即布局阶段。
- 将布局后的渲染树显示到界面上。
css阻塞渲染
- 根据浏览器的流程,当CSSOM还没构建完成时,页面是不会渲染到浏览器界面的,这也是为什么当CSS下载过慢时,会出现白屏的现象
- CSS 被视为阻塞渲染的资源,这意味着浏览器将不会渲染任何已处理的内容,直至 CSSOM 构建完毕。