前言:CSS可以说是网页样式的灵魂,特别是CSS3发布后,更是让网页在无需借助JS的情况下,便可直接使用CSS实现以往无法实现的效果。本文根据日常的开发经验,总结出几个使用CSS就可实现的效果,以及几
顺晟科技
2021-09-13 12:32:43
123
对于剪切动画,使用clip-path代替width/height,避免DOM重排导致性能过低。
.animate { width: 200px; height: 200px; background: #000; animation: 1s clip; } @keyframes clip { 0% { clip-path: inset(0 0 0 0); } { clip-path: inset(0 0); } }
clip-path也能用来进行其他规则/不规则图形的剪切
.clip { clip-path: polygon(0 , 50% 0, , 0 30%, 30%); /* 多边形 */ clip-path: circle(30px at 35px 35px); /* 圆形 */ clip-path: ellipse(30px 25px at 35px 35px); /* 椭圆 */ }
资源网站大全 https://55wd.com 设计导航https://www.wode007.com/favorites/sjdh
除了使用transform3d开启gpu加速,还可以使用will-change强制gpu加速优化动画性能
.animate { width: 200px; height: 200px; background: #000; animation: 1s clip; will-change: clip-path; } @keyframes clip { 0% { clip-path: inset(0 0 0 0); } { clip-path: inset(0 0); } }
使用padding模拟,然后子元素使用定位
/* 1:1 */ .container { width: 200px; } .container:after { display: block; content: \' \'; padding-top: ; } /* 16:9 */ .container { width: 200px; } .container:after { display: block; content: \' \'; padding-top: calc( * 9 / 16); }
我们常用的方式:
其余还有padding上下撑高、display: table、position + margin: auto、定位 + margin等等,这些属于不常用、特殊场景才能用、css3之前的hack方式,css3之后就不必使用这些来实现垂直居中,就不多说了。
其中display: flex属于万金油,大多数场景可以直接用它,但还是有些特殊的场景不能用:
22
2022-09
15
2022-09
14
2022-09
14
2022-09
13
2022-09
13
2022-09