2021-03-21(css技术总结)

1浏览器的渲染原理


第一步首先根据html构建三棵树1 dom树 2cssom 3 rendertree

第二步前面两颗树合并为一颗渲染树

第三步根据渲染树来计算(文档流,盒模型,计算大小和位置)

第四步paint绘制(把边框颜色,文字颜色,阴影画出来)

第五步compose合成(根据层叠关系展示)

有三种不同的渲染方式

1js/css>样式>布局>绘制>合成

2js/css>样式>绘制>合成

3js/css>样式>合成

2css动画的两种做法

1transform

常用的四种属性:translate、scale、rotate、skew

一般都要配合transtion过渡,inline元素不支持transform,需要先变成block

2animation

首先添加animation:时长|过渡方式|延迟|次数|方向|填充模式|是否暂停|动画名;

时长:1s或者1000ms

过渡方式:跟transition取值一样,如linear

次数:3或者2.4或者iinfinite

方向:reverse|alternate|alternate-reverse

填充模式:none|forward|backwards|both

是否暂停:paused|running

声明关键帧,添加动画

声明@keyframe关键帧比如

@keyframe xxx{

0%{};

66%{};
}

3文档流、盒模型

文档流Normal Flow、块、内联、内联块

流动方向

flow中的文档流动方向:1从左到右2从上到下

从左到右lnline元素,到最右边才换行。从上到下block元素,每个都另起一行。

inline-block也是从右到左

新的标准不会区分块级元素和内联元素,只要加上了display+样式(inline或block)

inline-block也是从左到右,但是不会分割元素

宽度

span元素不接受宽度,span元素是由它内联元素的总和决定的

block的默认宽度是auto而不是100%,大部分情况永远不要写width:100%

inline-block结合前两者特点,可用width

高度

inline高度由line-height间接决定,和height无关,具体就是根据字体的类型不同,所占据的高度也不同

block高度由内部文档流元素决定,可以设height,加入position:absolute可以脱离文档流

inline-block和block类似,可以设height。

overflow

overflow超出文档流,属性:scroll,hidden,auto,如果有滚动条,内联元素按照原来的板式显示

脱离文档流

如何让元素脱离文档流

1.position:absolute/fixed

2float:left

css核心概念:盒模型

1.内容盒模型

中心content,内边距padding,边距border,外边距

2边距盒模型

包含border

margin合并

孩子和孩子之间会合并margin,第一个孩子和最后一个孩子会和父母合并,只有上下会重叠,左右不会重叠

取消合并的方式:1在父元素中加border2在父元素中加padding3在父元素中加overflow:hidden

基本单位

长度单位

px像素,em为 相对于自身的font-size的倍数

百分数,整数,rem,vm和vh,其他长度单位都用的很少。

颜色

十六进制#FF6600或者#F60

RGBA颜色rgb(0,0,0)或者rgba(0,0,0,1)

hsl颜色hsl(360,100%,100%)

snipaste pro颜色转换工具

border调试法

1.怀疑摸个元素有问题

2.就给这个元素加border

3.border没出现?说明选择器错了或者语法错了

4.border出现了?看看边界是否符合预期

5.bug解决了才可以把border删掉

你可能感兴趣的:(2021-03-21(css技术总结))