运用css制作一个小开关

本文详细介绍了如何使用CSS来创建一个具有滑动效果的自定义开关,包括取消默认样式、设置渐变背景、添加阴影效果、实现开关滑动以及背景变化的过渡动画。通过实例代码展示了每个步骤的具体实现,让读者能够理解并掌握这种自定义UI组件的制作技巧。
摘要由CSDN通过智能技术生成


前言

制作一个小开关


一、所涉及的知识点

1、取消掉默认的外观:-webkit-appearance:none;
2、伪元素选择器:input[ type = 'checkbox' ] ::after{ content: "";}在页面上生成一个伪元素
3、设置渐变:background: linear-gradient(to bottom , #d3d3d3 , #9e9e9e);
- linear-gradient表示线性渐变
- 括号内分别为渐变方向,开始颜色,结束颜色
4、阴影的设置:box-shadow:水平位置 垂直位置 模糊程度 扩大范围 颜色 阴影方向;
- box-shadow:0px 2px 5px 1px black inset;
- inset表示阴影向内,默认向外
- 同一个元素允许多个阴影并存,可用逗号隔开
5、transition: width 1s ease-in 2s;
- transition: 要过渡的属性 过渡时间 过渡方式 延迟时间
6、input[ type='checkbox' ]:checked{}; 只能选择所有被勾选了的checked

二、操作步骤

1、先制作开关盒

代码如下(示例):将复选框的外观样式去除,再进行自行设置

//CSS部分
*{
			margin:0px;
			padding:0px;
		}
		input[type='checkbox']{
			-webkit-appearance:none;
			margin:50px;
			border:10px solid #c1c1c1;
			border-radius:50px;
			width:150px; height:70px;
			background: #888;
		}
		
//HTML部分
<input type="checkbox">

效果展示:

2、制作开关

代码如下(示例):复选框是一个单标签结构,无法包裹其他元素,所以这时需要使用伪元素选择器,伪元素无标签,写入代码后,会发现伪元素是这个复选框的子元素,因此它们是一个整体

input[type='checkbox']::after{
			content:"";
			display:block;
			width:60px; height:60px;
			position:absolute;
			left:-5px; top:-5px;
			border-radius:30px;
			background: grey;
		}

效果展示:
在这里插入图片描述

3、将开关真实化

(1)代码如下(示例):将伪元素选择器中的background进行修改,为开关设置渐变

background: linear-gradient(to bottom , #d3d3d3 , #9e9e9e);

效果展示:
在这里插入图片描述
(2)代码如下(示例):为开关和开关盒子设置阴影效果,让整个开关看起来更加立体化

input[type='checkbox']{
			-webkit-appearance:none;
			margin:50px;
			border:10px solid #c1c1c1;
			border-radius:50px;
			width:150px; height:70px;
			background: #888;
			position:relative;
			box-shadow:0 0 10px 1px #3f3f3f inset;/* 为盒子添加向内阴影 */
		}
		input[type='checkbox']::after{
			content:"";
			display:block;
			width:60px; height:60px;
			position:absolute;
			left:-5px; top:-5px;
			border-radius:30px;
			background: linear-gradient(to bottom , #d3d3d3 , #9e9e9e);
			box-shadow:0px 2px 2px 0px #eee inset, 2px 1px 2px 0px #333;/* 为开关上部设置向内白色高光,为下部设置向外阴影 */
		}

效果展示:
在这里插入图片描述

4、开关滑动,背景改变

(1)代码如下(示例):选择被勾选了的checkbox,对其进行背景的改变,改变开关的位置,并为开关盒子和开关添加过渡效果

input[type='checkbox']{
			-webkit-appearance:none;
			margin:50px;
			border:10px solid #c1c1c1;
			border-radius:50px;
			width:170px; height:70px;
			background: #888;
			position:relative;
			box-shadow:0 0 10px 1px #3f3f3f inset;/* 为盒子添加向内阴影 */
			transition:0.6s;/* 添加过渡效果 */
		}
		input[type='checkbox']:checked{
			background: #6FB500;/* 对被勾选的checkbox进行背景改变 */
		}
		input[type='checkbox']::after{
			content:"";
			display:block;
			width:60px; height:60px;
			position:absolute;
			left:-5px; top:-5px;
			border-radius:30px;
			background: linear-gradient(to bottom , #d3d3d3 , #9e9e9e);
			box-shadow:0px 2px 2px 0px #eee inset, 2px 1px 2px 0px #333;/* 为开关上部设置向内白色高光,为下部设置向外阴影 */
			transition:0.6s;/* 添加过渡效果 */
		}
		input[type='checkbox']:checked::after{
			left:95px;/* 改变开关的位置,将其移至最右边 */
		}

效果展示:
在这里插入图片描述


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值