前端工程师分享几个CSS技巧
2021-01-23 19:12
标签:需要 div 优化 方式 强制 加速 图形 布局 for 对于剪切动画,使用clip-path代替width/height,避免DOM重排导致性能过低。 clip-path也能用来进行其他规则/不规则图形的剪切 除了使用transform3d开启gpu加速,还可以使用will-change强制gpu加速优化动画性能 使用padding模拟,然后子元素使用绝对定位 资源网站大全 https://55wd.com 我的007办公资源网站 https://www.wode007.com 我们常用的方式: 其余还有padding上下撑高、display: table、position + margin: auto、绝对定位 + margin等等,这些属于不常用、特殊场景才能用、css3之前的hack方式,css3之后就不必使用这些来实现垂直居中,就不多说了。 其中display: flex属于万金油,大多数场景可以直接用它,但还是有些特殊的场景不能用: 前端工程师分享几个CSS技巧 标签:需要 div 优化 方式 强制 加速 图形 布局 for 原文地址:https://www.cnblogs.com/ypppt/p/13277010.html创建剪切动画
.animate {
width: 200px;
height: 200px;
background: #000;
animation: 1s clip;
}
@keyframes clip {
0% {
clip-path: inset(0 0 0 0);
}
100% {
clip-path: inset(0 100% 100% 0);
}
}
.clip {
clip-path: polygon(0 100%, 50% 0, 100% 100%, 0 30%, 100% 30%); /* 多边形 */
clip-path: circle(30px at 35px 35px); /* 圆形 */
clip-path: ellipse(30px 25px at 35px 35px); /* 椭圆 */
}
优化动画性能
.animate {
width: 200px;
height: 200px;
background: #000;
animation: 1s clip;
will-change: clip-path;
}
@keyframes clip {
0% {
clip-path: inset(0 0 0 0);
}
100% {
clip-path: inset(0 100% 100% 0);
}
}
实现长宽比
/* 1:1 */
.container {
width: 200px;
}
.container:after {
display: block;
content: ‘ ‘;
padding-top: 100%;
}
/* 16:9 */
.container {
width: 200px;
}
.container:after {
display: block;
content: ‘ ‘;
padding-top: calc(100% * 9 / 16);
}
垂直居中