自定义常用input表单元素三:纯css实现自定义Switch开关按钮
自定义常用input表单元素的第三篇,自定义一个Switch开关,表面上看是和input没关系,其实这里采用的是checkbox的checked值的切换。同样,采用css伪类和“+”css选择器为思路,下面是预览图:
下面先放HTML代码,看下DOM结构:
<input type="checkbox" id="my_switch" class="my_switch">
<label for="my_switch"></label>
DOM结构没什么特别的,就是一个常用的checkbox复选框的结构,唯一不同的是label标签没有内容。下面再看下CSS代码:
.my_switch {
display: none;
} .my_switch+label {
display: inline-block;
box-sizing: border-box;
height: 22px;
min-width: 44px;
line-height: 20px;
vertical-align: middle;
border-radius: 100px;
border: 1px solid transparent;
background-color: rgba(0, 0, 0, 0.25);
cursor: pointer;
-webkit-transition: all 0.36s;
transition: all 0.36s;
position: relative;
} .my_switch:checked+label {
background-color: #1890ff;
} .my_switch+label::before {
content: "";
display: block;
width: 18px;
height: 18px;
position: absolute;
left: 1px;
top: 1px;
border-radius: 18px;
background-color: #fff;
cursor: pointer;
transition: all 0.36s cubic-bezier(0.78, 0.14, 0.15, 0.86);
-webkit-transition: all 0.36s cubic-bezier(0.78, 0.14, 0.15, 0.86);
-webkit-box-shadow: 0 2px 4px 0 rgba(0, 35, 11, 0.2);
box-shadow: 0 2px 4px 0 rgba(0, 35, 11, 0.2);
} .my_switch:checked+label::before {
left: 23px;
transition: all 0.36s cubic-bezier(0.78, 0.14, 0.15, 0.86);
-webkit-transition: all 0.36s cubic-bezier(0.78, 0.14, 0.15, 0.86);
} .my_switch+label::after {
content: "关";
position: absolute;
top: 1px;
left: 24px;
font-size: 12px;
color: #fff
} .my_switch:checked+label::after {
content: "开";
left: 5px;
}
主要思路:switch开关有三部分组成,第一部分就是整个开关背景(椭圆部分)这部分可以用label定义样式。第二部分为左右切换的小按钮,可以用label伪类表示。第三部分为显示的开关文字,同样也可以用伪类表示。最终根据checkbox复选框的checked值就可以切换开或关了。赶快去试试吧。
自定义常用input表单元素三:纯css实现自定义Switch开关按钮的更多相关文章
- 自定义常用input表单元素二:纯css实现自定义radio单选按钮
这是接着上一篇纯css自定义复选框checkbox的第二篇,自定义一个radio单选按钮,同样,采用css伪类和"+"css选择器为思路,下面是预览图: 下面直入主题放代码:HTM ...
- 自定义常用input表单元素一:纯css 实现自定义checkbox复选框
最下面那个是之前写的 今天在做项目的时候发现,之前写的貌似还是有点多,起码增加的span标签可以去掉,这样保持和原生相同的结构最好的,仅仅是样式上的变化.今天把项目中的这个给更新上来.下面就直接还是 ...
- mui弹出输入法遮住input表单元素
转自https://www.cnblogs.com/devilyouwei/p/6293190.html mui弹出输入法遮住input表单元素 问题如下:当我用mui开发app时,在mui-sc ...
- javascript总结39:DOM 中常用的表单元素的属性
1 常用操作元素: value 用于大部分表单元素的内容获取(option除外) type 可以获取input标签的类型(输入框或复选框等) disabled 禁用属性 checked 复选框选中属性 ...
- jQuery基础(常用插件 表单验证,图片放大镜,自定义对象级,jQuery UI,面板折叠)
1.表单验证插件——validate 该插件自带包含必填.数字.URL在内容的验证规则,即时显示异常信息,此外,还允许自定义验证规则,插件调用方法如下: $(form).validate({o ...
- input表单元素的默认padding不一致问题
最近做的项目,发现一堆问题,input type=“text”和type=“button” (1)在无文字的时候高度是一致的,分别写入相同大小的文字type=“button”高度>type=“t ...
- vue 自定义指令input表单的数据验证
一.代码 <template> <div class="check" > <h3>{{msg}}</h3> <div clas ...
- .net网站开发(一):1.input表单元素
其实,在半年前我对网站开发还是完全不感冒的,不是没认识,而是只认识到表面.我以为网站模型就那几样,新闻.论坛.博客啥的,仿个站出来有什么意思?但现在我是知道了,大多应用开发还是采用B/S架构的,包括服 ...
- html表单元素及表单元素详解
原文 https://www.jianshu.com/p/b427daa8663d 大纲 1.认识表单 2.认识表单元素 3.表单元素的分类 4.表单元素——文本框 5.表单元素button 6.表单 ...
随机推荐
- shell 文件判断
文件判断参数 -e,文件是否存在 -f,文件存在且为普通文件 -d,文件存在且为文件夹 #!/bin/bash [ -e test.sh ] && echo "test.sh ...
- 工具-Typora常用语法()+自己总结
工具-Typora常用语法 Markdown(MD)作为目前互联网写作相当流行的一种文档撰写语言格式,深受互联网编辑者的喜爱,由此周边一些基于MD的编辑工具也随之油然而生. 作为一款免费的MD编辑器: ...
- 在windows下使用pip安装python包遇到缺失stdint.h文件的错误
今天在windows上使用pip安装一个python包python-lzf时遇到如下的错误: fatal error C1083: Cannot open include file: 'stdint. ...
- 手写spring
体系结构 Spring 有可能成为所有企业应用程序的一站式服务点,然而,Spring 是模块化的,允许你挑选和选择适用于你的模块,不必要把剩余部分也引入.下面的部分对在 Spring 框架中所有可用的 ...
- 将lua编译进nginx
1.先安装lua-jit,网上说也可以下载lua,不过lua-jit效率比较高,地址:http://luajit.org/download.html我下的是2.0.3版本的下载解压后,直接make & ...
- 基本的PID算法整理(水缸的例子有问题!!)
一,先谈关于水缸漏水的问题 谈到PID原理入门的时候,大家经常会举的一个例子就是水缸漏水的例子.这里把一个解释水缸漏水的帖子放在这里:https://blog.csdn.net/qq_41736609 ...
- 番外篇 - Linux环境准备
这是一个比较早的系列,最近发现一直没有更新... asp.net core跨平台,所以我们首先需要一个linux来验证,所以第一篇就是准备我们的环境 .netcore尝试在centos6. ...
- Java 内存模型(Java Memory Model,JMM)
基本概念 JMM 本身是一种抽象的概念并不是真实存在,它描述的是一组规范,通过这组规范定义了程序的访问方式 JMM 同步规定 线程解锁前,必须把共享变量的值刷新回主内存 线程加锁前,必须读取主内存的最 ...
- 吴恩达-机器学习+正则化regularization
- SQL注入之Mysql报错注入
--志向和热爱是伟大行为的双翼. 昨天偷懒了没学什么东西,先自我反省一下 - -. 今天认真的学习了一下Mysql报错注入利用方法及原理,好久之前就像认真的学一下这个了,是在上海市大学生网络安全大赛中 ...