如何使用CSS的clip-path和path函数实现分段器的45度曲线效果?

如何使用CSS的clip-path和path函数实现分段器的45度曲线效果?

巧用css打造45度角曲线分段器

现代网页设计中,分段器(或标签切换器)是常见的交互元素。本文将介绍如何利用CSS的clip-path属性和path函数,实现点击左侧按钮时,右侧边框呈现45度曲线的动态效果,提升用户体验。

核心思路是为每个标签创建伪元素,用clip-path定义45度曲线。激活标签时,曲线便会动态出现在左侧或右侧。

以下为html和CSS代码示例:

<div class="wrap">   <div class="tabs">     <div class="tab active">标签1</div>     <div class="tab">标签2</div>   </div>   <div class="content-wrap"></div> </div>
.wrap {   background-color: #eee;   width: 375px;   margin: 0 auto;   padding: 10px; }  .tabs {   display: flex;   width: 100%;   overflow: hidden;   border-radius: 8px 8px 0 0;   background: linear-gradient(#cdd9fe, #e2e9fd); }  .tab {   flex: 0 0 50.1%;   height: 50px;   cursor: pointer;   position: relative;   text-align: center;   line-height: 50px; }  .tab.active {   background-color: #fff;   color: #4185ef; }  .tab.active:before { /* 左侧曲线 */   content: '';   position: absolute;   top: 0;   left: -50px;   height: 100%;   width: 50px;   z-index: 2;   background-color: #fff;   clip-path: path('M 0,50 C 25,50 25,0 50,0 L 50, 50 Z'); }  .tab.active:after { /* 右侧曲线 */   content: '';   position: absolute;   top: 0;   right: -50px;   height: 100%;   width: 50px;   z-index: 2;   background-color: #fff;   clip-path: path('M 0,0 C 25,0 25,50 50,50 L 0, 50 Z'); }  .content-wrap {   min-height: 200px;   background-color: #fff; }

代码中,clip-path: path(…) 精确定义了45度曲线的路径。 JavaScript (例如,使用Alpine.JS或其他框架) 可以用来管理active类,实现标签点击切换效果。 此方法简洁高效,为开发者提供了一种优雅的实现动态元素的方案。

立即学习前端免费学习笔记(深入)”;

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享