首页 > 其他分享 >CSS实现边框旋转

CSS实现边框旋转

时间:2024-06-23 22:29:54浏览次数:27  
标签:动画 100% 50% 旋转 按钮 边框 CSS

CSS旋转边框

在这里插入图片描述

这个旋转边框的效果主要通过CSS中的动画、位置和伪元素技术实现。下面我将逐步分析和解释每个关键部分的功能和作用:

1. HTML 结构

<div class="button">旋转边框</div>
  • 这里定义了一个div元素,类名为button,这是按钮的主体。内容为“旋转边框”,这是按钮显示的文本。

2. CSS 样式和动画

a. 基本样式设置
body {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    margin: 0;
    background-color: #1f1f1f;
}
  • body元素使用Flexbox布局,使内容水平和垂直居中。
  • height: 100vh表示视口高度的100%,使得整个页面填满整个浏览器窗口。
  • background-color: #1f1f1f设置了一个深灰色的背景。
b. 按钮的样式
.button {
    padding: 30px 60px;
    font-size: 16px;
    color: #fff;
    border: none;
    border-radius: 10px;
    position: relative;
    overflow: hidden;
}
  • 按钮具有内部填充、字体大小、白色文字和无边框。
  • border-radius: 10px为按钮添加圆角。
  • position: relative是为了设置伪元素的定位基准。
  • overflow: hidden确保任何超出按钮边界的内容(如动画)都不会显示。
c. 内层背景
.button::before {
    content: '';
    position: absolute;
    z-index: -1;
    width: calc(100% - 4px);
    height: calc(100% - 4px);
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    border-radius: 10px;
    background: #1f1f1f;
}
  • ::before伪元素创建了一个稍小于按钮的内层,这是为了形成一个边框效果。
  • 使用calc(100% - 4px)稍微减少宽度和高度,使其比按钮小,从而外部的边框能够显示出来。
  • transform: translate(-50%, -50%)结合lefttop的50%,使得伪元素居中于按钮。
d. 旋转边框效果
.button::after {
    content: '';
    position: absolute;
    z-index: -2;
    width: 100%;
    height: 200%;
    top: 50%;
    left: 50%;
    transform-origin: top left;
    background-color: aqua;
    animation: rotate 2s linear infinite;
}
  • ::after伪元素用于创建旋转边框。
  • 设置width: 100%height: 200%是为了制造出边框的形状和大小。
  • transform-origin: top left设置旋转的原点在顶部左侧,结合高度的200%,产生的效果是边框在垂直方向上伸展并围绕中心旋转。
  • background-color: aqua为边框设置颜色。
  • animation: rotate 2s linear infinite定义了旋转动画,持续时间2秒,以线性方式无限重复。

总结

这个旋转边框效果通过CSS的::before::after伪元素创建了两层结构,内层是一个稍小的背景块,外层是一个延伸并持续旋转的边框。动画利用@keyframes定义了从0度旋转到360度的动画,形成一个连续循环的旋转效果。

标签:动画,100%,50%,旋转,按钮,边框,CSS
From: https://blog.csdn.net/2301_80817413/article/details/139857514

相关文章

  • 百度一下首页制作(HTML+CSS)
    部分代码展示:<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>百度一下,你就知道</title><styletype="text/css">/*清除元素默认性质*/body{margin:0;......
  • emwin图片旋转
    emwin图片旋转默认是用以图片中心为基点旋转的以下两个测试验证都可以,不要用bitmap旋转,不要用bitmap旋转,不要用bitmap旋转1.手动内存设备旋转重点是不要用bitmap,之前移植用bitmap旋转出来效果移植不好,而且不同图片旋转出来效果不同.以下这个例程是从emwinMemoryDevice-Rot......
  • 大学生HTML期末大作业——HTML+CSS+JavaScript游戏网站(Epic)
    HTML+CSS+JS【游戏网站】网页设计期末课程大作业web前端开发技术web课程设计网页规划与设计......
  • 大学生HTML期末大作业——HTML+CSS+JavaScript购物商城(电子器件)
    HTML+CSS+JS【购物商城】网页设计期末课程大作业web前端开发技术web课程设计网页规划与设计......
  • 制作一个简单HTML电影网页设计(HTML+CSS)
    HTML实例网页代码,本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。文章目录一、网页介绍一、网页效果二、代码展示1.HTML......
  • 纯CSS制作3D动态相册【流星雨3D旋转相册】HTML+CSS+JavaScriptHTML5七夕情人节表白网
    这是程序员表白系列中的100款网站表白之一,旨在让任何人都能使用并创建自己的表白网站给心爱的人看。此波共有100个表白网站,可以任意修改和使用,很多人会希望向心爱的男孩女孩告白,生性腼腆的人即使那个TA站在眼前都不敢向前表白。说不出口的话就用短视频告诉TA吧~制作一个表......
  • 313.带购物车功能的服装商城网页 大学生期末大作业 Web前端网页制作 html5+css+js
    目录一、网页概述二、网页文件 三、网页效果四、代码展示1.html2.CSS3.JS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强六、更多推荐欢迎光临仙女的网页世界!这里有Web前端网页制作的各行各业的案例,样式齐全新颖,并持续更新!感谢CSDN,提供了这......
  • 【JavaScript脚本宇宙】革新前端样式:CSS-in-JS库大比拼与最佳实践
    解锁响应式设计的潜力:使用CSS-in-JS库构建动态样式前言随着前端技术的发展,CSS-in-JS(CSSinJavaScript)逐渐得到开发者的青睐。它通过将CSS样式定义在JavaScript中,利用JavaScript的强大特性,实现了更灵活、动态的样式管理方式。本文将介绍几个流行的CSS-in-JS库,包括styled-c......
  • C#的无边框窗体项目模板 - 开源研究系列文章
          继续整理和编写代码及博文。      这次将笔者自己整理的C#的无边框窗体项目的基本模板进行总结,得出了基于C#的.netframework的Winform的4个项目模板,这些模板具有基本的功能,即已经初步将代码写了,直接在其基础上添加业务代码即可: 1、空项目;这个......
  • BorderPane边框布局
    JavaFX的BorderPane是一种布局方式,它将容器分为五个区域:顶部(top)、底部(bottom)、左侧(left)、右侧(right)和中心(center)。每个区域可以放置一个节点,中心区域可以放置任意类型的节点,而其他四个区域通常放置较小的控件或组件。以下是BorderPane的一些基本用法:区域设置:使用setTop......