纯CSS实现一个简单步骤条的示例代码


Posted in HTML / CSS onJuly 15, 2022

前言

HTML中的input是一个十分强大的标签,配合上CSS,在一定程度上基本可以代替部分JS控制。
最近在搞一个步骤条,于是乎,想着使用CSS给做出来,本文记叙实现的基本思路。

效果

纯CSS实现一个简单步骤条的示例代码

代码

  • 首先,使用<input type="checkbox" />实现作为步骤的元素,然后,按照顺序将每一个步骤排好位置,接着借用其他元素对checkbox进行美化;都是比较常规的处理,这部分不再赘述。 整体布局如下:
<div class="steps">
    <input type="checkbox" class="step-node" data-name="step-1" />
    <input type="checkbox" class="step-node" data-name="step-2" />
    <input type="checkbox" class="step-node" data-name="step-3" />
    <input type="checkbox" class="step-node" data-name="step-4" />
    <input type="checkbox" class="step-node" data-name="step-5" />
 </div>

加上css,结果如下(步骤节点可以纵放或者横放)

纯CSS实现一个简单步骤条的示例代码

  • 然后就是链接每两个步骤节点之间的部分,链接部分的前后步骤节点都完成的话,那么相应的链接部分也应该亮起。假如step-2完成了,那么step-1step-2之间的链接部分也应该改变颜色,与其他未完成部分分开。
  • 也就是说,每个步骤完成时,与上一个步骤的链接部分需要改变颜色;链接部分受控于链接末端的步骤,所以最好使用label标签或者末端步骤的伪元素实现,本文使用before实现:
.step-node::before {
  content: '';
  position: absolute;
  /* 向上方移动,确定链接两个步骤 */
  top: -17px;
  left: 25px;
  height: 18px;
  width: 10px;
  background-color: #a3a3a3;
}

纯CSS实现一个简单步骤条的示例代码

  • 然后就是当末端步骤完成(被选中)时,改变自身和与上一个步骤链接部分的颜色:
/* 链接部分 */
.step-node:checked:before {
  background-color: #ca8a04;
}
/* 自身样式更改 */
.step-node:checked::after {
  background-color: #fbbf24;
  color: #ca8a04;
}

至此就基本实现步骤的功能

纯CSS实现一个简单步骤条的示例代码

然而,步骤必须按顺序完成,不能跳过某个步骤完成下一个步骤。

纯CSS实现一个简单步骤条的示例代码

现在是可以跳过第二步step-2完成第三步step-3,这显然不对,需要对步骤的点击事件进行处理。一般这种逻辑都得JS帮忙进行处理,但CSS其实也可以模拟。
只要添加一个z-index较高的遮罩,挡住所有的步骤节点,就可以实现无法点击的功能;然后将当前可以点击的步骤节点的z-index设置为最高,就可以恢复点击效果。 添加遮罩如下:

.steps::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9;
}

添加完遮罩之后,就无法再点击任何步骤节点了。
接下来,就是可以点击的节点样式,可以点击的步骤节点就是所有被选中checkbox之后的第一个没有被选中的checkbox:

.step-node:checked + .step-node:not(:checked)::after {
  z-index: 10;
}

但是一开始并没有的被选中的步骤节点,上面的样式自然也就不会生效;那么一开始自然就是第一个步骤节点可以点击了:

.step-node:first-of-type:after {
  z-index: 10;
}

/* 被选中之后,取消层级,变会不可点击 */
.step-node:checked:after {
  z-index: 0;
}

 到此这篇关于纯CSS实现一个简单步骤条的示例代码的文章就介绍到这了,更多相关CSS步骤条内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 
HTML / CSS 相关文章推荐
使用CSS3实现字体颜色渐变的实现
Mar 09 HTML / CSS
css3圆角边框和边框阴影示例
May 05 HTML / CSS
深入理解css属性的选择对动画性能的影响
Apr 20 HTML / CSS
CSS3制作彩色进度条样式的代码示例分享
Jun 23 HTML / CSS
Css3新特性应用之形状总结
Dec 08 HTML / CSS
如何在网站上添加谷歌定位信息
Apr 16 HTML / CSS
基于 HTML5 的 WebGL 3D 版俄罗斯方块的示例代码
May 28 HTML / CSS
在html5的Canvas上绘制椭圆的几种方法总结
Jan 07 HTML / CSS
突袭HTML5之Javascript API扩展1—Web Worker异步执行及相关概述
Jan 31 HTML / CSS
h5调用摄像头的实现方法
Jun 01 HTML / CSS
HTML5 LocalStorage 本地存储详细概括(多图)
Aug 18 HTML / CSS
boostrap modal 闪现问题的解决方法
Sep 01 HTML / CSS
CSS中使用grid布局实现一套模板多种布局
Jul 15 #HTML / CSS
如何解决flex文本溢出问题小结
Jul 15 #HTML / CSS
使用HBuilder制作一个简单的HTML5网页
使用CSS定位HTML元素的实现方法
CSS实现背景图片全屏铺满自适应的3种方式
Jul 07 #HTML / CSS
HTML实现仿Windows桌面主题特效的实现
Jun 28 #HTML / CSS
CSS 实现角标效果的完整代码
Jun 28 #HTML / CSS
You might like
一个PHP模板,主要想体现一下思路
2006/12/25 PHP
Yii2框架类自动加载机制实例分析
2018/05/02 PHP
JavaScript游戏之是男人就下100层代码打包
2010/11/08 Javascript
详解AngularJS中的表达式使用
2015/06/16 Javascript
轻松5句话解决JavaScript的作用域
2016/07/15 Javascript
使用bootstrap实现多窗口和拖动效果
2016/09/22 Javascript
原生js实现查询天气小应用
2016/12/09 Javascript
jQuery实现链接的title快速出现的方法
2017/02/20 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
2017/03/14 Javascript
vue服务端渲染缓存应用详解
2018/09/12 Javascript
Vue CLI3中使用compass normalize的方法
2019/05/30 Javascript
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
浅谈React中组件逻辑复用的那些事儿
2020/05/21 Javascript
JavaScript 获取滚动条位置并将页面滑动到锚点
2021/02/08 Javascript
[00:28]DOTA2北京网鱼队选拔赛
2015/04/08 DOTA
[28:48]《真视界》- 2017年国际邀请赛
2017/09/27 DOTA
pycharm 使用心得(八)如何调用另一文件中的函数
2014/06/06 Python
python按照多个字符对字符串进行分割的方法
2015/03/17 Python
Python入门_学会创建并调用函数的方法
2017/05/16 Python
python 检查文件mime类型的方法
2018/12/08 Python
Python3.4解释器用法简单示例
2019/03/22 Python
对django2.0 关联表的必填on_delete参数的含义解析
2019/08/09 Python
关于python3中setup.py小概念解析
2019/08/22 Python
TensorFlow实现指数衰减学习率的方法
2020/02/05 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
2020/04/16 Python
CSS3实现大小不一的粒子旋转加载动画
2016/04/21 HTML / CSS
Html5游戏开发之乒乓Ping Pong游戏示例(一)
2013/01/21 HTML / CSS
一些网络技术方面的面试题
2014/05/01 面试题
车间主管岗位职责
2013/11/14 职场文书
高二化学教学反思
2014/01/30 职场文书
王老吉广告词
2014/03/20 职场文书
关于教师节的演讲稿
2014/09/04 职场文书
上级领导检查欢迎词
2015/09/30 职场文书
python爬虫之爬取笔趣阁小说
2021/04/22 Python
MySQL实例精讲单行函数以及字符数学日期流程控制
2021/10/15 MySQL
Go语言怎么使用变长参数函数
2022/07/15 Golang