利用CSS3实现单选框动画特效示例代码


Posted in HTML / CSS onSeptember 26, 2016

先看我们的第一个特效图

利用CSS3实现单选框动画特效示例代码

注意,这个地方的黄点不是我们特效的一部分,这个黄点之所以存在是我使用的屏幕录制软件自带的。可以很清楚的看到这个特效就是当我们点击的时候,黑点会以一种缩放的动画显示出来,下面来看看具体如何实现。

复制代码
代码如下:

<div class="radio-1">
<input type="radio" name="radio-1" id="radio-1-1" checked="checked">
<label for="radio-1-1"></label>

<input type="radio" name="radio-1" id="radio-1-2">
<label for="radio-1-2"></label>

<input type="radio" name="radio-1" id="radio-1-3">
<label for="radio-1-3"></label>
</div>

这里,我们指定 input 标签的 type 值为 radio,并且一下所有的 radio 的 name 值都相同,这样才可以实现单选效果。对于这里的 label 中的 for 属性,为什么这么设置一开始我也不明白,后来搜索了一下这个属性的定义,反正大概的意思就是说,只要设置了这个属性,当我们点击label 元素的时候,浏览器会自动把焦点转移到 radio 上去。下面用 CSS 对HTML设置效果。

复制代码
代码如下:

.radio-1 {
width: 900px;
padding: 3% 0%;
margin: 10px auto;
background-color: darkseagreen;
text-align: center;
}

.radio-1 label {
display: inline-block;
position: relative;
width: 28px;
height: 28px;
border: 1px solid #cccccc;
border-radius: 100%;
cursor: pointer;
background-color: #ffffff;
margin-right: 10px;
}

这里我们首先看一下对 label 元素的设定,其中大部分属性我都在以前的文章中介绍过了,唯一一个陌生的属性就是 cursor,这个属性是设定鼠标样式的,设置成 pointer 之后,当我们的鼠标放到 label 元素上时,鼠标样式就变成了一只手(在我电脑上是这样)。好了,下面继续来看

复制代码
代码如下:

.radio-1 label:after {
content: "";
position: absolute;
width: 20px;
height: 20px;
top: 4px;
left: 4px;
background-color: #666;
border-radius: 50%;
transform: scale(0);
transition: transform .2s ease-out;
}

这里我们用到了 after 选择器,为什么设置这个属性?就是为了设置如上图所示的小黑点。首先我们设置 content 属性为空,意思就是我们不需要填充任何内容,因为我们只是想设置背景色为黑色,仅此而已。还有,刚开始的时候我们设置 transform 的 scale 值为 0 ,其达到的效果就是将小黑点隐藏。

复制代码
代码如下:

.radio-1 [type="radio"]:checked + label {
background-color: #eeeeee;
transition: background-color .2s ease-in;
}

.radio-1 [type="radio"]:checked + label:after {
transform: scale(1);
transition: transform .2s ease-in;
}

注意这里使用了 + 符号,是什么意思呢?它的学名叫做 相邻同胞选择器,意思就是选择紧接在另一个元素后的元素,而且二者有相同的父元素,在这里的意思就是选中在radio 后出现的 label ,有人要问了,这么设置干嘛,直接设置 label 就是了。想象一下,在一个 非常庞大的系统中,我们可能多次使用到 label 元素,为了避免混淆,这样设置将更加准确。这里我们看到了 transition 属性,这个属性是用于设置过渡效果的。最后,将我们的 radio 隐藏掉,就大功告成了。

复制代码
代码如下:

.radio-1 [type="radio"]{
display: none;
}

这是我们的第二个特效

利用CSS3实现单选框动画特效示例代码

其实看到这个动画的第一感觉就是,和上一个一模一样,除了将 transform 属性设置成 rotate,下面我就不再解释了,只要你结合上一个例子,就可以很容易做出这么一个效果,我们直接上代码

复制代码
代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Radio</title>
<style>
.radio-2 {
width: 900px;
padding: 3% 0;
margin: 50px auto;
background-color: darkseagreen;
text-align: center;
}

.radio-2 label {
display: inline-block;
width: 28px;
height: 28px;
overflow: hidden;
border: 1px solid #eeeeee;
border-radius: 100%;
margin-right: 10px;
background-color: #ffffff;
position: relative;
cursor: pointer;
}

.radio-2 label:after {
content: "";
position: absolute;
top: 4px;
left: 4px;
width: 20px;
height: 20px;
background-color: #666666;
border-radius: 50%;
transform: rotate(-180deg);
transform-origin: -2px 50%;
transition: transform .2s ease-in;
}

.radio-2 [type="radio"] {
display: none;
}

.radio-2 [type="radio"]:checked + label:after{
transform: rotate(0deg);
transition: transform .2s ease-out;
}
</style>
</head>
<body>
<div class="radio-2">
<input type="radio" name="radio-2" id="radio-2-1" checked="checked">
<label for="radio-2-1"></label>

<input type="radio" name="radio-2" id="radio-2-2">
<label for="radio-2-2"></label>

<input type="radio" name="radio-2" id="radio-2-3">
<label for="radio-2-3"></label>
</div>

</body>
</html>

总结
以上就是这篇文章的全部内容了,希望能对大家的学习或者工作带来一定的帮助。

HTML / CSS 相关文章推荐
css3背景_动力节点Java学院整理
Jul 11 HTML / CSS
使用 css3 transform 属性来变换背景图的方法
May 07 HTML / CSS
CSS3 icon font完全指南(CSS3 font 会取代icon图标)
Jan 06 HTML / CSS
css3边框_动力节点Java学院整理
Jul 11 HTML / CSS
详解CSS3新增的背景属性
Dec 25 HTML / CSS
canvas烟花特效锦集
Jan 17 HTML / CSS
使用jTopo给Html5 Canva中绘制的元素添加鼠标事件
May 15 HTML / CSS
HTML5 CSS3打造相册效果附源码下载
Jun 16 HTML / CSS
五个2015 年最佳HTML5 框架
Nov 11 HTML / CSS
手把手教你实现一个canvas智绘画板的方法
Mar 04 HTML / CSS
浅谈移动端中的视口(viewport)的具体使用
Apr 13 HTML / CSS
css3 实现文字闪烁效果的三种方式示例代码
Apr 25 HTML / CSS
利用纯CSS3实现tab选项卡切换示例代码
Sep 21 #HTML / CSS
css3 盒模型以及box-sizing属性全面了解
Sep 20 #HTML / CSS
CSS3按钮鼠标悬浮实现光圈效果源码
Sep 11 #HTML / CSS
利用CSS3把图片变成灰色模式的实例代码
Sep 06 #HTML / CSS
利用CSS3实现的文字定时向上滚动
Aug 29 #HTML / CSS
CSS3绘制六边形的简单实现
Aug 25 #HTML / CSS
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
Aug 25 #HTML / CSS
You might like
怎样在UNIX系统下安装php3
2006/10/09 PHP
使用eAccelerator加密PHP程序
2008/10/03 PHP
PHP开发环境配置(MySQL数据库安装图文教程)
2010/04/28 PHP
PHP判断IP并转跳到相应城市分站的方法
2015/03/25 PHP
Thinkphp+smarty+uploadify实现无刷新上传
2015/07/30 PHP
php生成图片验证码的方法
2016/04/15 PHP
php判断文件上传图片格式的实例详解
2017/09/30 PHP
xml文档转换工具,附图表例子(hta)
2010/11/17 Javascript
页面按钮禁用与解除禁用的方法
2014/02/19 Javascript
js获取指定的cookie的具体实现
2014/02/20 Javascript
Jquery实现Div上下移动示例
2014/04/23 Javascript
jquery模拟alert的弹窗插件
2015/07/31 Javascript
详解Javacript和AngularJS中的Promises
2016/02/09 Javascript
浅析Bootstrap表格的使用
2016/06/23 Javascript
用nodejs搭建websocket服务器
2017/01/23 NodeJs
vue组件详解之使用slot分发内容
2018/04/09 Javascript
vue中使用better-scroll实现滑动效果及注意事项
2018/11/15 Javascript
layui 解决富文本框form表单提交为空的问题
2019/10/26 Javascript
vue项目中锚点定位替代方式
2019/11/13 Javascript
[01:13:18]Secret vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
MySQL最常见的操作语句小结
2015/05/07 Python
如何用itertools解决无序排列组合的问题
2017/05/18 Python
详解Django解决ajax跨域访问问题
2018/08/24 Python
python设定并获取socket超时时间的方法
2019/01/12 Python
Python3.6实现带有简单界面的有道翻译小程序
2019/04/16 Python
Python turtle绘画象棋棋盘
2019/08/21 Python
基于Tensorflow高阶读写教程
2020/02/10 Python
CSS3对背景图片的裁剪及尺寸和位置的设定方法
2016/03/07 HTML / CSS
西班牙英格列斯百货英国官网:El Corte Inglés英国
2017/10/30 全球购物
简历自荐信
2013/12/02 职场文书
会计专业求职信范文
2014/03/16 职场文书
工商局所长四风自我剖析及整改措施
2014/10/26 职场文书
大学生国家助学金感谢信
2015/01/23 职场文书
幼儿园开学家长寄语(2015秋季)
2015/05/27 职场文书
uwsgi+nginx代理Django无法访问静态资源的解决
2021/05/10 Servers
如何理解及使用Python闭包
2021/06/01 Python