css实现按钮边框旋转

先上效果图

本质:一个矩形在两个矩形互相重叠遮盖形成的缝隙中旋转形成,注意css属性z-index层级关系

直接上代码

html 复制代码
  <div class="bg">
    <div class="button">按钮</div>
  </div>
  
  <style>
	.bg {
	  width: 100%;
	  height: 100vh;
	  background-color: #000;
	  display: flex;
	  align-items: center;
	  justify-content: center;
	}


	@keyframes run {
	  0% {
	    transform: rotate(0);
	  }
	  100% {
	    transform: rotate(360deg);
	  }
	}

	.button {
	  width: 200px;
	  height: 100px;
	  display: flex;
	  align-items: center;
	  justify-content: center;
	  position: relative;
	  overflow: hidden;  /* 关键属性 */
	  color: #fff;
	  z-index: 1;
	  border-radius: 4px;
	}
	.button::before {
	  content: "";
	  width: 200%;
	  height: 200%;  /* 调整此处宽高控制旋转边框的长度 */
	  position: absolute;
	  background: linear-gradient(135deg, #ff00cc, #ffcc00, #00ffcc, #ff0066);
	  z-index: -2;
	  left: 50%;
	  top: 50%;
	  animation: run 1.5s linear infinite;
	  transform-origin: left top;
	}
	.button::after {
	  content: "";
	  position: absolute;
	  --w: 2px; /* 控制宽度 */
	  width: calc(100% - 2 * var(--w));
	  height: calc(100% - 2 * var(--w));
	  left: var(--w);
	  top: var(--w);
	  background: #000;
	  z-index: -1;
	  border-radius: inherit;
	}
  </style>
相关推荐
To_OC6 分钟前
啃完流式输出:从一个卡顿的 LLM 接口开始,我搞懂了数据流到底怎么 “流”
前端·javascript·llm
阳光是sunny26 分钟前
LangGraph实战教程:defer延迟节点——让收尾工作自动排到最后
前端·人工智能·后端
kyriewen44 分钟前
我用了三周Claude Code Skills——总结出5条铁律,第3条最反直觉
前端·ai编程·claude
阳光是sunny1 小时前
LangGraph实战教程:控制流详解
前端·人工智能·后端
格尔曼Noah2 小时前
Safari浏览器中如何只允许指定网站下载
前端·safari
用户059540174462 小时前
用了3年Redis,才发现我一直没搞懂缓存一致性测试
前端·css
swipe2 小时前
07|(前端转后全栈)为什么后端也要缓存?从前端缓存思维理解 Redis
前端·后端·全栈
IT小盘3 小时前
05-企业项目统一接入多个大模型-适配器模式实战
前端·人工智能·适配器模式
swipe3 小时前
06|(前端转后全栈)登录后端到底在做什么?JWT、Spring Security 和权限链路
前端·后端·全栈
海上彼尚3 小时前
Nodejs也能写Agent - 22.LangGraph篇 - 上下文工程
前端·javascript·人工智能·langchain·node.js