纯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 相关文章推荐
支持IE8的纯css3开发的响应式设计动画菜单教程
Nov 05 HTML / CSS
css3边框_动力节点Java学院整理
Jul 11 HTML / CSS
CSS3.0实现霓虹灯按钮动画特效的示例代码
Jan 12 HTML / CSS
CSS3 真的会替代 SCSS 吗
Mar 09 HTML / CSS
详解利用canvas实现环形进度条的方法
Jun 12 HTML / CSS
HTML5 MiranaVideo播放器 (代码开源)
Jun 11 HTML / CSS
探索HTML5本地存储功能运用技巧
Mar 02 HTML / CSS
html5默认气泡修改的代码详解
Mar 13 HTML / CSS
AmazeUI中模态框的实现
Aug 19 HTML / CSS
amazeui页面分析之登录页面的示例代码
Aug 25 HTML / CSS
如何在CSS中绘制曲线图形及展示动画
May 24 HTML / CSS
使用CSS3实现按钮悬停闪烁动态特效代码
Aug 30 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获取指定范围内最接近数的方法
2015/06/02 PHP
PHP合并数组函数array_merge用法分析
2017/02/17 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
2019/10/09 PHP
用js实现控制内容的向上向下滚动效果
2007/06/26 Javascript
JQuery 弹出框定位实现方法
2010/12/02 Javascript
二叉树先序遍历的非递归算法具体实现
2014/01/09 Javascript
JavaScript中的继承方式详解
2015/02/11 Javascript
nodejs实现获取某宝商品分类
2015/05/28 NodeJs
JavaScript中判断两个字符串是否相等的方法
2015/07/07 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
jquery自定义插件——window的实现【示例代码】
2016/05/06 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
2016/10/15 Javascript
jquery实现点击页面回到顶部
2016/11/23 Javascript
JavaScript触发onScroll事件的函数节流详解
2016/12/14 Javascript
性能优化之代码优化页面加载速度
2017/03/01 Javascript
JS实现不用中间变量temp 实现两个变量值得交换方法
2018/02/04 Javascript
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
2018/04/26 jQuery
vue中使用[provide/inject]实现页面reload的方法
2019/09/30 Javascript
antd 表格列宽自适应方法以及错误处理操作
2020/10/27 Javascript
three.js 实现露珠滴落动画效果的示例代码
2021/03/01 Javascript
Python struct模块解析
2014/06/12 Python
Python基于回溯法子集树模板解决数字组合问题实例
2017/09/02 Python
Python 字符串转换为整形和浮点类型的方法
2018/07/17 Python
django 框架实现的用户注册、登录、退出功能示例
2019/11/28 Python
Python unittest基本使用方法代码实例
2020/06/29 Python
CSS3动画和HTML5新特性详解
2020/08/31 HTML / CSS
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
2019/09/09 HTML / CSS
ghd法国官方网站:英国最受欢迎的美发工具品牌
2019/04/18 全球购物
SmartBuyGlasses比利时:购买品牌太阳镜和眼镜
2019/08/09 全球购物
《英英学古诗》教学反思
2014/04/11 职场文书
《每逢佳节倍思亲》教后反思
2014/04/19 职场文书
学生实习证明范文
2014/09/28 职场文书
整改落实自查报告
2014/11/05 职场文书
幼儿园六一儿童节活动总结
2015/02/10 职场文书
绿色环保倡议书
2015/04/28 职场文书
SQL优化老出错,那是你没弄明白MySQL解释计划用法
2021/11/27 MySQL