Open gnosis23 opened 5 years ago
根据 MDN 上所说,will-change
会提示浏览器元素的某些属性会发生变化。浏览器会在元素变化前进行优化。这些优化能预先进行。
will-change
,否则会让页面变慢重叠上下文
当我们要改变一个元素的 opacity
or transform
时候,修改 will-change 属性
.box {
will-change: opacity, transform;
}
引用自 https://time.geekbang.org/column/article/141842
浏览器渲染引擎生成图像分几个阶段:重排、重绘、合成。其中重排和重绘都是在渲染进程的主线程上执行,比较耗时;而合成线程是在渲染进程的合成线程上执行,执行速度快,且不占用主线程。
will-change 能提前告诉浏览器元素的哪些属性需要变化,浏览器能单独为元素准备一个独立层,变化的时候让合成线程去处理,不会涉及主线程。顺带一提,这也是 css 动画比 JavaScript 动画高效的原因。
裁剪路径,提供了多个裁剪函数可供选择
指定四个角的位置
clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
用法和作用同 box-shadow,区别是
一种降饱和度的橙黄色染色效果...
另一种饱和度滤镜...
inset
: 控制光向上还是向下打offset-x
offset-y
: 阴影的偏移blur-radius
: 模糊半径,>= 0,越大越模糊spread-radius
: 展开半径??,正值让阴影变大,负值让阴影缩小。.one-edge-shadow {
box-shadow: 0 8px 6px -6px black;
}
.multiple-border {
box-shadow:
inset 5px 5px 10px #000000,
inset -5px -5px 10px blue;
}
可以让属性变化时平滑地过度显示过度。
transition-property
transition-duration
transition-timing-function
: ease | ease-in | ease-out | ease-in-out | cubic-bezier(n,n,n,n)transition-delay
问:from
(即0%), to
(即100%) 的默认值 ?
答:如果不指定,就使用当前元素的style。
@keyframes bounce {
60%, 80%, to {
transform: translateY(350px);
animation-timing-function: ease;
}
70% { transform: translateY(250px);}
90% { transform: translateY(300px);}
}
CSS 3