CSS 知识总结

198 阅读1分钟

浏览器渲染步骤

  • 构建HTML树(DOM)

  • 有样式的元素构建CSS树(cssom)

  • 两颗树合并渲染树(render tree)(隐藏不需要渲染的分支)

  • layout布局(文档流,盒模型,大小位置)(无更改可略过)

  • paint绘制(边框文字颜色,阴影)(无更改可略过)

  • Compose合成(根据层叠关系展示画面)

CSS动画

transform

多种变换可以同时使用

tramsform:rotate(45deg) translateX/Y(50px);

translate

移动

X/Y轴

transform:translateX/Y(50px);

Z轴

在当前图上套一个.wrapper

.wrapper{

perspective:1000px;

border:1px solid black;

}

transform:translateZ(50px);图像去到离视点50px地方

缩写

transform:translate(50px,50px)//x,y

transform:translate3d(50px,50px,100px)//x,y,z

例子

绝对居中

position:abosolute;
left:50%;
top:50%;
tramsform:tramslate(-50%,-50%)

scale

变形,会改变border,而且图像变模糊,一般不用

transition:1s all;调节速度

tramsform:scale(1.5)

缩写:scaleX/Y===>scale(x,y)

rotate

tramsform:rotate(45deg)

默认rotateZ

XY也可

rotate3d太复杂

小菊花加载可用

skew

倾斜,用的少

transition

作用

过渡,补充中间帧

出来也有动画

使用

transition(属性名 时间 过渡方式 延迟)

方式:linear匀速、ease缓动,ease-in淡入,ease-out淡入

不可过渡

不是所有都能过渡

display:block==>display:none;图像突然消失

缓慢消失

visibility:visible==>visibility:hidden

opacity:1==>opacity:0;(看不见但实际上还存在,结束后移除) backgroung可以渐变

animation

关键帧+动画

animation:1.5s xxx forward;停在最后,不反回(时间放在前面)

完整语法

#heart{animation: 1s heart infinite alternate;}
@keyframes heart {
 0% { transform: scale(1.0); }
 100% { transform: scale(1.5);
 }
}