理解CSS | 青训营笔记

66 阅读3分钟

0 CSS发展史

image.png

1 基础知识 1.1 层叠,优先级 层叠三大规则:样式表来源,选择器优先级,码源位置(优先级依次递减) 样式表来源优先级:

image.png

选择器类型:

image.png

选择器优先级: 内联(不属于选择器)>id>class=attribute=pseudo-class>type=pseudo-element

源码选择器(总之就是看代码的先后): 1.对于@import的样式,根据@import的顺序 2.对于link和style标签的样式,根据在document中的顺序决定 建议:1.选择器尽量少用id(不利于css的复用,而且选择器优先级较高,影响后序覆盖) 2.尽量不要用!important(级别最高,扩展和灵活被压缩) 3.自己的样式加载在引用库样式的后面

1.2继承

image.png

1.3 css的值和单位 值可划分为:

image.png

单位可划分为:

image.png

1.4 盒模型 盒模型是视觉格式化模型的基础 基于盒模型可以控制如图所示内容:

image.png

由盒模型实现一些展示形式如下图所示:

image.png

image.png

image.png

image.png

关于盒模型的负外边距: padding,border,margin中,只有margin可以设置负值,margin的负值最终减少的是外界可感知的高度,margin不推荐频繁使用,会导致代码可读和复杂度提高,可以局部使用

2 布局

image.png

2.1 常规流布局 常规流布局包括块级格式化上下文和内联格式化上下文 块级格式化上下文:块级元素默认占满一行,排序方式从上到下(BFC:内部形成了一个新的块级格式化上下文,它就是这个块级格式化上下文的根元素) 内联格式化上下文:默认从左到右排列(line box的高度是元素的顶到元素的底之间的距离,line-height垂直居中)

image.png

关于内联级格式化上下文的例子:

image.png

image.png

2.2 外边距塌陷

image.png

image.png

2.3 弹性布局(Flex布局) 弹性盒子的相关属性分为两类:

image.png image.png

作用在父元素上是对父元素内部,所有父元素排列规则,作用在子元素上,是只针对当前这个子元素的大小,位置和显示顺序

2.4 网格布局 Grid布局,由行和列组成的二维布局

image.png image.png

2.5 布局总结

image.png

Grid布局在大面积或整体布局中推荐使用,在小面积,组件或Grid Item中使用Flex做灵活布局

2.6 定位

image.png

3 层叠上下文 新的层叠上下文渲染时与浏览器渲染时的render layer是一一对应的 形成层叠上下文的方式:

image.png

层叠上下文元素间的顺序:

image.png

image.png

4 transfrom

image.png image.png

4.1 transition

image.png

4.2 animation

image.png

4.3 性能相关 image.png

5 响应式设计 响应式设计遵循的原则:

image.png

5.1媒体查询

image.png

5.2 设备像素(物理像素) 设备像素与本身硬件相关,屏幕出厂后固定不变 DPI与PPI:

image.png

5.3 css像素

image.png image.png

参考像素永远不会等于物理像素

DPR像素比:

image.png

5.4 移动端的viewport 关于布局视口:

image.png

移动端的meta标签中的属性(在pc上不存在): width:宽 height:高 initial-scale:初始放缩系数 minimum-scale:允许用户最小放缩系数 maximum-scale:允许用户最大放缩系数 user-scalable:是否允许用户放缩

image.png

常用移动端设置:

image.png image.png

5.5 相对长度使用

image.png

em:若在font-size上使用1.5会不断放大,不断乘1.5;0.5会不断缩小,不断乘0.5

rem:

image.png

vw和vh: vw:相对于屏幕的宽度;vh:相对于屏幕的高度

image.png

6 css生态相关 6.1 语言增强——css预处理器

image.png

image.png

6.2 语言增强——css后处理器

image.png

主要的后处理框架是postcss postcss机制:

image.png

6.3 工程架构——css模块化

image.png

6.4 工程架构——CSS-in-JS css-in-js:将应用的css样式写在JavaScript文件里,利用js动态生成css

image.png

目前已经抛弃1。

6.5 工程架构——styled-component机制

image.png

6.6 工程架构——CSS-in-JS pros.和cons.

image.png

6.7 工程架构——原子化CSS

image.png

Tailwind: 1.使用工具库优先 2.按需生成 3.支持配置样式规则和自定义插件

原子化css的优缺点:

image.png