本篇文章给大家带来了关于前端按钮的相关知识,其中主要跟大家聊一聊如何用Clip-path实现按钮流动边框动画,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。
1.实现效果
<div>苏苏_icon</div>
登录后复制
- 添加样式
div {
position: relative;
width: 220px;
height: 64px;
line-height: 64px;
text-align: center;
color: #fff;
font-size: 20px;
background: #55557f;
cursor: pointer;
border-radius: 10px;
}
登录后复制
- 为div添加前后伪元素,为了方便区分,设置前后伪元素的边框颜色不同
div::after,
div::before {
content: "";
position: absolute;
width: 240px;
height: 84px;
border: 2px solid #55557f;
border-radius: 10px;
}
div::before{
border: 2px solid orange;
}
登录后复制
- 修改伪元素的定位位置
div::after,
div::before{
+ left: calc(110px - 120px);
+ top: calc(32px - 42px);
}
登录后复制
- 可以简写为inset
inset属性:用来设置left/right/bottom/top
div::after,
div::before{
- left: calc(110px - 120px);
- top: calc(32px - 42px);
- inset: -10px;
}
登录后复制
- 为伪元素添加动画效果,实现clip-path的变化
clip-path:clip-path CSS 属性使用裁剪方式创建元素的可显示区域。区域内的部分显示,区域外的隐藏。 inset()定义一个 inset 矩形。
- 语法:
clip-path: inset(20px 50px 10px 0 round 50px);
登录后复制
- 解释:
当提供所有四个参数时:
它们表示从参考框向内的顶部、右侧、底部和左侧偏移量,这些偏移量定义了插入矩形边缘的位置。这些参数遵循 margin速记的语法,让您可以为所有四个插图设置一个、两个或四个值。
可选border-radiu参数:
使用 border-radius 速记语法为插入矩形定义圆角
div::after,
div::before{
+ clip-path: inset(0 0 98% 0);
}
登录后复制
div::after,
div::before{
+ clip-path: inset(0 98% 0 0);
}
登录后复制
发表评论 取消回复