一、了解CSS
1.1 CSS概念
CSS指Cascading Style Sheets,即层叠样式表。CSS可以用来定义页面元素的样式,包括设置字体、颜色、位置、大小、添加动画效果等。
1.2 CSS工作流程
当浏览器加载html文档并完成解析之后,浏览器一方面利用解析结果构建DOM树,另一方面加载CSS并解析,将解析所得的样式添加到DOM树的节点,由此构成的DOM树用于进一步渲染展示页面。
1.3 选择器
选择器用于找出页面中的元素以为其设置样式。选择元素的方式有多种,有按照标签名、类名或id进行选择,按照属性进行选择,按照DOM树中位置进行选择。除了基本的通配选择器、标签选择器、id选择器、类选择器、属性选择器外,还有伪类选择器、组合选择器、选择器组。
1.4 颜色
颜色编码的方式有很多,最常用的两种是RGB和HSL。许多颜色有单独的名称,以便记忆和沟通。除此之外,通过设置alpha值可以控制透明度。
1.5 字体
课程介绍了若干种类的通用字体族与它们的适用情况。介绍了web font的使用方法和建议的罗列顺序(英文字体在前,中文字体在后)。除此之外,用例介绍了字体属性的控制效果。
1.6 调试
CSS的调试,可以利用浏览器的「检查」功能,在Windows下快捷键为Ctrl+Shift+I,在Mac下为Cmd+Opt+I。
二、深入CSS
2.1 选择器的特异度
CSS中,同一个标签可能可以匹配到多条不同的样式规则,因此,标签最终的样式由选择器的特异度又称优先级决定。最基本的,以下优先级依此递增:类型选择器,类选择器,ID选择器;除此之外,一些保留字如!important也会影响到最终生效的样式对应的选择器。
2.2 继承
每一个直接作用于元素的CSS规则总是会接管该元素从祖先元素继承而来的规则,即继承父元素的计算值,除非显示地指定一个值。通过inherit保留字可以显示地继承样式;每个属性都具有初始值,使用initial关键字可以将属性重置为初始值。
2.3 CSS求值过程
在解析出DOM树和样式规则后,首先通过选择器匹配、属性有效、媒介符合等方式对规则进行筛选,取得声明值;根据选择器优先级比较,得出优先级最高的属性值,即层叠过程;当层叠值为空时,使用继承值或初始值,由此产生了必不为空的指定值;接着,在解析步骤中将部分相对值或关键字转化为绝对值,并在规格化步骤中进一步转化直到所有值成为绝对值;最后,绝对值中的浮点数被转化为整型以供渲染。
2.4 布局
布局是指确定内容的大小和位置的算法,它依据元素、容器、兄弟节点和内容等信息进行计算。前端常用的布局方式包括floats、position、flexbox、gird、流式布局等,每一种方式都有诸多细节,要正确应用和调试需要仔细了解其特性和区别。
2.5 进一步学习
青训营的课程时间有限,要更深入地了解并熟练掌握CSS,需要后期再下苦工。要进一步学习CSS,可以充分利用 MDN 和 W3C CSS 规范,要保持探索欲,充分利用浏览器的开发者工具来在实践中加深了解,更要紧跟社区和业界发展,持续学习,更新自己的知识和技能,了解并运用CSS层出不穷的新特性。
创建型设计模式
封装对象创建过程,将对象的创建和使用解耦
单例模式
应用场景
处理资源访问冲突、用来创建全局唯一类。
解决方案
- 懒汉式:用到的时候才创建(场景:不一定需要用到、创建代价大、延迟加载、需要快速启动系统)。
- 饿汉式:系统启动时创建(场景:必定用到、临时创建影响响应速度)。
- 多例:同一类的固定个数相同实例。
工厂模式
应用场景
用来创建继承同一父类、实现同一接口的子类对象,由给定的类型参数创建具体的对象。