第1章 CSS体系结构概述
原创声明。未经许可,不得转载,作者:小步教程。
从零开始学习CSS技术。
本章主要内容:体系结构概述、CSS思维方式、知识点概述、项目目标、MDN与w3c。
单纯学CSS属性无法掌握CSS技术。
CSS技术学习常见痛点:
(1)学了很多CSS属性,还是无法形成一套有效的页面布局知识体系。
(2)做了多个项目,CSS编码思路仍然混乱,调试没有形成一套系统的方法,或者认为CSS无法调试。
(3)使用CSS很久,还是无法完全理解某些知识点,也无法准确表达,“反正就这样用”。
(4)初学者遇到问题不知道如何提问,只能问“这个显示怎么不正常”。
CSS技术的根本是布局模型。本教程从六方面内容,体系的、透彻的讲解CSS基础,包括六方面内容:
(1)语法包含基础语法与语法级特性,解决“属性值是什么”,没有设置CSS属性或设置CSS属性都不一定是最终应用属性值。
(2)模型与规范规则是CSS技术的根本,解决“属性值如何显示”,每种模型内部包含相应规范规则,模型之间存在关联,CSS属性服务于模型,CSS属性存在于各项规范规则。
(3)浏览器工作原理描述页面显示过程,开发者工具能够查看每一步骤的结果,两者共同解决“页面显示过程是什么与如何调试每个步骤”。
(4)开发者工具提供5种基础面板对应查看浏览器工作原理各步骤的结果。
(5)项目开发包括明确的设计方法与编码步骤,同时综合运用上述内容,整理各种场景与设计实现方法。
(6)布局基本概念需要准确理解,大多概念准确表达CSS技术的设计意图与开发人员的设计方法。
综合所述,CSS属性服务于模型,模型是根本,规范规则是细节,语法是基础,开发者工具是调试利器,浏览器工作原理是完全掌握开发者工具的基础,大多数的布局基本概念代表着分析与设计方法。
1.1.1 教程大纲
第1篇介绍体系结构与开发环境搭建,第2篇对应体系结构的“一、语法”,第3篇对应体系结构的“二、模型与规范规则”,第4章对应体系结构的“六、项目开发”,体系结构的“三、浏览器工作原理”、“四、开发者工具调试”、“五、关键概念”这三部分内容穿插于各章节。
1.1.2 常用布局模型
模型体系结构示意图
常用布局模型包括:盒子模型、display模型、flow模型、BFC模型、IFC模型、定位模型等。
盒子模型是众多模型的基本单元,display模型是众多模型的顶级模型,流式布局模型是众多模型的枢纽。本教程不单独讲解CSS属性,具体CSS属性的学习放在相应模型讲解。
(1)盒子模型
(2)display模型
(3)流式布局与BFC模型
BFC模型之margin折叠
(4)IFC模型
IFC完整模型
bounds模型
(5)定位模型
absolute定位
float定位
(6)flex模型
1.1.3 模型的CSS属性
(1)盒子模型。width、height、padding、border、margin、box-sizing。
(2)display模型。display、<display-outside>、<display-inside>。
(3)流式布局。<display-inside>: flow。
(4)BFC模型。<display-outside>: block。
(5)IFC模型与bounds模型。<display-outside>: inline、font-family、font-size、line-height、vertical-align。
(6)定位模型。position、float,坐标属性left、top、right、bottom。
(7)flex模型。display: flex、flex-direction、flex-grow、flex-shrink、flex-basis、flex、flex-wrap、flex-flow、justify-content、align-items、align-content、row-gap、column-gap、gap、align-self、order。
(8)溢出模型。overflow-x、overflow-y、overflow、text-overflow。
(9)层叠模型。z-index、position。
(10)其它模型与属性略。
一个属性可能服务于多个模型,一个元素可能同时属于多个模型。
1.1.4 五个基础语法
(1)标签
<开始标签>标签内容体</结束标签>
(2)标签属性
<标签 标签属性1="值1" 标签属性2="值2" …>标签内容体</标签>
(3)CSS属性
<标签 style="CSS属性1:值1;CSS属性2:值2;…CSS属性n:值n;">标签内容体</标签>
(4)选择器
选择器名{ /*样式定义*/ }
(5)CSS引入方式
内嵌样式
<标签 style="CSS属性1:值1;CSS属性2:值2;…CSS属性n:值n;">标签内容体</标签>
内部样式
<body>
<style>
选择器名称{
CSS属性1:值1;
…
CSS属性n:值n;
}
</style>
</body>
外部样式
<link rel="stylesheet" href="test.css">
1.1.5 层叠性的计算过程
CSS语法级特性—层叠性包括8类值,以及对应6个子特性:CSS属性初始默认性、标签样式默认性、继承性、选择器优先级(覆盖性)、计算性(绝对化、约束化)、无效性。这些特性与语法一样重要,它们对应CSS属性的最终结果值的生成。
1.1.6 浏览器工作原理
具体过程包括:请求响应、解析HTML代码、解析CSS代码、合并生成盒子树(渲染树)、layout计算、paint绘制。
1.1.7 开发者工具调试
浏览器工作原理的6个步骤结果分别对应开发者工具的5个调试面板。
(1)网络面板。查看请求响应。
(2)元素面板。解析元素结构。
(3)样式面板。解析匹配样式。
(4)计算样式面板。查看层叠性处理后的最终实际值。
(5)盒子的页面显示。
1.1.8 项目开发
(1)页面3要素。包括:结构、样式、交互。
HTML代码代表的元素结构是页面的骨架与基础,CSS代码代表的样式设计合理的前提是合理的结构,JS代码代表的交互设计合理的前提是合理的结构与合理的样式。
(2)元素结构示意图示例
元素结构示意图用于不写HTML与CSS代码就能进行分析设计,方便教学。