html+css 实现单选按钮动画(input radio按钮)

news2024/11/20 23:21:11

前言:哈喽,大家好,今天给大家分享html+css 绚丽效果!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕

文章目录

  • 效果
  • 原理解析
    • 1.纯css实现,没有js。点击事件是input的checked实现的。
    • 2.当点击的时候input自动添加checked,改变input后面的元素span来实现动画效果。
      • 单选按钮的圆形实现,是通过input后面的==span元素的伪类before==实现的。
      • 对号的实现,是通过input后面的==span元素的伪类before和span元素的伪类after==实现,并且旋转一定角度就实现了。
    • 3.具体的变换参数,直接==看代码==,可以一键复制,查看效果
    • 上代码,可以直接复制使用
      • 目录
      • html
      • css

效果

html+css 实现单选按钮动画(input radio按钮)

原理解析

1.纯css实现,没有js。点击事件是input的checked实现的。

input通过checked进行选中

2.当点击的时候input自动添加checked,改变input后面的元素span来实现动画效果。

单选按钮的圆形实现,是通过input后面的span元素的伪类before实现的。

单选按钮的圆形

单选按钮的圆形实现

对号的实现,是通过input后面的span元素的伪类before和span元素的伪类after实现,并且旋转一定角度就实现了。

对号的实现是由2部分组成的。input后面的span元素的伪元素实现的after伪元素和before伪元素

3.具体的变换参数,直接看代码,可以一键复制,查看效果

上代码,可以直接复制使用

目录

目录

html

<!DOCTYPE html>
<html>

<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">

    <title>html+css 实现单选按钮动画(input radio按钮)</title>
    <link rel="stylesheet" href="./style.css">
</head>

<body>

<div class="container">
    <h1 style="text-align: center;color:#382F45;margin-bottom: 50px;padding-top: 50px">html+css 实现单选按钮动画(input
        radio按钮)</h1>
    <div class="wrapper">
        <p>会给我三连吗?</p>
        <div class="input-box">
            <label>
                <input type="radio" name="yes_no">
                <span class="yes radioSpan"></span>
                必须滴
            </label>

        </div>
        <div class="input-box">
            <label>
                <input type="radio" name="yes_no">
                <span class="yes radioSpan"></span>
                下次一定
            </label>
        </div>


    </div>

</div>
</body>

</html>

css

*{
    /* 初始化 */
    margin: 0;
    padding: 0;
}
.container{
    min-height: 100vh;
    /* 渐变背景 */
    background: linear-gradient(200deg,#e4efe9,#93a5cf);
}

.wrapper{
    width: 600px;
    margin: 0 auto;
    background-color: #382f45;
    border-radius: 20px;
    /* 弹性布局 垂直排列 居中 */
    display: flex;
    flex-direction: column;
    justify-content: center;
    /* 阴影 */
    box-shadow: 10px 10px 20px rgba(0,0,0,0.2);
    padding: 30px;
}
p{
    color: #fff;
    font-size: 40px;
    letter-spacing: 5px;
}
.input-box{
    display: flex;
    justify-content: space-between;
    margin-top: 50px;
    padding-left: 50px;
}
.input-box label{
    position: relative;
    cursor: pointer;
    display: flex;
    align-items: center;
    font-size: 32px;
    color: #fff;
    letter-spacing: 5px;
}
.input-box label span{
    /* 相对定位 */
    position: relative;
    display: inline-block;
    width: 30px;
    height: 30px;
    margin-right: 15px;
    /* 设置过渡 */
    transition: 0.5s;
}
.input-box label span::before{
    content: "";
    /* 绝对定位 */
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 4px;
    background-color: #fff;
    /* 通过阴影的方式绘制上边框 */
    box-shadow: 0 -26px 0 #fff;
    transition: 0.5s;
}
.input-box label span::after{
    content: "";
    /* 绝对定位 */
    position: absolute;
    left: 0;
    bottom: 0;
    width: 4px;
    height: 100%;
    background-color: #fff;
    /* 通过阴影的方式绘制右边框 */
    box-shadow: 26px 0 0 #fff;
    transition: 0.5s;
}
.input-box label .radioSpan::before{
    height: 100%;
    border-radius: 50%;
    background-color: transparent;
    /* 通过阴影的方式绘制圆 */
    box-shadow: 0 0 0 4px #fff;
}
.input-box label .radioSpan::after{
    width: 0;
    height: 0;

}

.input-box input{
    display: none;
}
/*选中的操作*/
.input-box label input:checked ~ span.yes::before{
    background-color: #0f0;
    box-shadow: none;
    height: 4px;
    border-radius: 0;
}
.input-box label input:checked ~ span.yes::after{
    background-color: #0f0;
    box-shadow: none;
    width: 4px;
    height: 55%;
}
.input-box label input:checked ~ span.yes{
    border-radius: 0;
    transform: rotate(-45deg) translate(2px,-10px);
}
.input-box label input:checked ~ span.no::before{
    width:100%;
    height: 4px;
    background-color: #f00;
    box-shadow: none;
    border-radius: 0;
    transform: rotate(-45deg) translate(7px,-8px);
}
.input-box label input:checked ~ span.no::after{
    width: 4px;
    height: 100%;
    background-color: #f00;
    box-shadow: none;
    transform: rotate(-45deg) translate(7px,11px);
}

到此这篇文章就介绍到这了,更多精彩内容请关注本人以前的文章或继续浏览下面的文章,创作不易,如果能帮助到大家,希望大家多多支持宝码香车~💕

整理不易,点赞关注宝码香车

更多专栏订阅推荐:
👍 html+css+js 绚丽效果
💕 vue
✈️ Electron
⭐️ js
📝 字符串
✍️ 时间对象(Date())操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1954651.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kuberneter管理GUI工具Lens

从github上可以知道&#xff0c;lens的前端是用electron做的客户端工具&#xff0c;打开安装路径你会发现kubectl.exe,没错&#xff0c;就是你经常用的kubectl命令行的客户端工具。kubectl本来就能输出json的数据类型&#xff0c;集成前端更方便了。看到这里你是不是发现&#…

在线投稿小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;编辑管理&#xff0c;用户文章管理&#xff0c;文章分类管理&#xff0c;文章展示管理&#xff0c;文章稿酬管理&#xff0c;通知公告管理&#xff0c;系统管理 微信端账号功能包…

5、从0搭建企业门户网站——Tomcat下载、安装与使用

目录 正文 1、下载Tomcat 2、安装Tomcat 3、运行Tomcat 4、停止Tomcat 正文 企业门户网站软件开发完成后,我们需要在云服务器上运行我们的软件,安装Tomcat是很有必要的。下面以Tomcat 10为例,演示其下载、安装与使用。 1、下载Tomcat Tomcat 10下载地址 将Tomcat 10下…

基于Java的模拟写字板的设计与实现

点击下载链接 基于Java的模拟写字板的设计与实现 摘要&#xff1a;目前&#xff0c;很多新的技术领域都涉及到了Java语言&#xff0c;Java语言是面向对象编程&#xff0c;并且涉及到网络、多线程等重要的基础知识&#xff0c;因此Java语言也是学习面向对象编程和网络编程的首…

前端和Postman调用同一个接口,拿到的数据不一样

1、表现 联调一个List接口&#xff0c;Postman自测得到的ID和前端调用得到的ID&#xff0c;结果不一样。前者结果&#xff1a; 后者结果&#xff1a; 同一份代码、同一个数据库&#xff0c;出现这种错误&#xff0c;大概率是类型转换时出问题了&#xff0c;但检查代码发现&…

[工具] GitHub+Gridea+GitTalk 搭建个人免费博客

文章目录 起因GitHub创建个人仓库存主页创建用于Gridea连接的Token Gridea配置 GitTalk大功告成 起因 想要搭建自己的博客网站&#xff0c;又不想花钱买域名&#xff0c;也不会前端技术&#xff0c;只能求助于简单(傻逼式)且免费的博客搭建方式。偶然间看到这种方式&#xff0…

视频播放--vue3+西瓜播放器

西瓜播放器官网 实现方式非常简单&#xff0c;只需三步&#xff1a;安装、DOM占位、实例化即可完成播放器的使用 安装 npm install xgplayer 引入 import Player from "xgplayer"; import "xgplayer/dist/index.min.css"; 注意&#xff1a;一定要引入…

最新风车IM即时聊天源码及完整视频教程2024年7月版

堡塔面板 试验性Centos/Ubuntu/Debian安装命令 独立运行环境&#xff08;py3.7&#xff09; 可能存在少量兼容性问题 不断优化中 curl -sSO http://io.bt.sy/install/install_panel.sh && bash install_panel.sh 1.宝塔环境如下: Nginx 1.20 Tomcat 8 MySQL 8.0 R…

生物学家做不出 AlphaGO,但也在创造生命……

提到人造生命&#xff08;Artificial Life&#xff09;&#xff0c;你会想到什么&#xff1f; 也许是希腊、玛雅、中国神话故事里的人造生物&#xff0c;亦或者是科幻电影里可以执行命令的机器人&#xff0c;也可能是这几年以 AlphaGo 为代表的人工智能技术&#xff08;AI&…

【虚拟机】 VMware截图版详细安装教程

VMware-workstation-full-17.5.1-23298084 的安装&#xff0c;详细安装过程。 1.以管理员身份运行安装包 点击文件&#xff0c;右键打开&#xff0c;以管理员身份运行&#xff1b; 2.根据安装提示&#xff0c;重启电脑&#xff1b; &#xff08;重启与否看自己电脑情况&…

【题解(c++)】「蓝桥·算法双周赛」第十五场分级赛——强者挑战赛

竞赛链接 目录 老君炼丹【算法赛】大意思路 拯救美猴王【算法赛】大意思路打卡蓝桥杯周赛&#xff01; 老君炼丹【算法赛】 大意 有一个数组&#xff0c;每一次可以选择两个元素 a i , a i ≤ 0 a_i,a_i\le0 ai​,ai​≤0和一个 a j , a j ≥ 0 a_j,a_j\ge0 aj​,aj​≥0&am…

前端必知必会-html布局和响应式网页设计

文章目录 HTML 布局CSS 框架CSS 浮动布局CSS flex布局CSS 网格布局HTML 响应式网页设计设置viewport响应式图像使用 max-width 属性根据浏览器宽度显示不同的图像响应式文本大小媒体查询Bootstrap总结 HTML 布局 HTML5 有几个语义元素&#xff0c;它们定义网页的不同部分&#…

【Python系列】Python 中的垃圾收集:深入理解与实践

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

vue中使用Marked实现预览md文件(base64编码图片)

vue中使用Marked实现预览md文件&#xff08;base64编码图片&#xff09; 在上一篇vue-markdown实现预览md文件时&#xff0c;后端返回的图片格式是base64格式的&#xff0c;试了很多方法都不能显示&#xff0c;因此换成了marked插件进行预览&#xff0c;同时也支持显示大纲目录…

入门 PyQt6 看过来(案例)12~ 列表增删排序

本文介绍如何实现列表增加删除和排序的功能&#xff0c;效果如下&#xff1a; 1 页面设计 1.1 列表 #列表数据self.list [福宝, 萌兰, 金虎,蓝天]# 创建四行一列标准数据模型self.modeQStandardItemModel(4,1)# 将数据中的列表项作为标准数据模型输出for i in range(self.mod…

17.延迟队列

介绍 延迟队列&#xff0c;队列内部是有序的&#xff0c;延迟队列中的元素是希望在指定时间到了以后或之前取出和处理。 死信队列中&#xff0c;消息TTL过期的情况其实就是延迟队列。 使用场景 1.订单在十分钟内未支付则自动取消。 2.新创建的店铺&#xff0c;如果十天内没…

tomat 启动项目请求中文乱码 日志乱码

tomat 启动项目请求中文乱码 日志乱码 tomat 启动项目请求中文乱码 日志乱码检查tomcat编码检查项目编码检查服务器编码修改catalina.bat 测试 tomat 启动项目请求中文乱码 日志乱码 项目部署后 请求信息中文乱码 {""address":"娴嬭瘯", "Prov…

【Django】ajax和django接口交互(获取新密码)

文章目录 一、需求1. 效果图 二、实验1. 写get接口后端2. 写html后端3. 写前端4. 测试 一、需求 1. 效果图 二、实验 1. 写get接口后端 写views import string import random def getnewpwd(request):words list(string.ascii_lowercasestring.ascii_uppercasestring.digi…

C# form的移植工作

前言&#xff1a; 目标&#xff0c;将一个项目的form移植到新的工程下&#xff0c;且能够正确编译执行&#xff1a; 1 Copy form的两个文件到新工程下&#xff1a; 比如笔者的logo form 2 修改命名空间&#xff1a; 然后&#xff0c;找到新项目的主程序&#xff1a; 的命名…

Hive3:Hive初体验

1、创建表 CREATE TABLE test(id INT, name STRING, gender STRING);2、新增数据 INSERT INTO test VALUES(1, 王力红, 男); INSERT INTO test VALUES(2, 钉钉盯, 女); INSERT INTO test VALUES(3, 咔咔咔, 女);3、查询数据 简单查询 select * from test;带聚合函数的查询 …