带有滑动菜单指示器的纯 CSS 导航选项卡
效果展示

CSS 知识点
-
filter 属性回顾
-
transition 属性回顾
-
使用单选框实现导航菜单的思路
单选框当点击完成后就会有一个
:checked属性,可以利用这个属性来实现导航菜单底部滑动块的滑动动画和当前菜单项激活状态的管理。
整体页面结构
<div class="tabs"><!-- 单选 --><input type="radio" id="home" name="tabsMenu" /><input type="radio" id="profile" name="tabsMenu" /><input type="radio" id="likes" name="tabsMenu" /><input type="radio" id="settings" name="tabsMenu" /><input type="radio" id="notifications" name="tabsMenu" /><!-- 图标 --><div class="buttons"><label for="home"><i class="fa-solid fa-house"></i></label><label for="profile"><i class="fa-solid fa-user"></i></label><label for="likes"><i class="fa-solid fa-heart"></i></label><label for="settings"><i class="fa-sharp fa-solid fa-gear"></i></label><label for="notifications"><i class="fa-solid fa-bell"></i></label><!-- 滑块 --><div class="underline"></div></div>
</div>
实现整体布局
.tabs input {visibility: hidden;display: none;
}.buttons {position: relative;display: flex;gap: 80px;padding: 30px 40px;border-bottom: 1px solid rgba(255, 255, 255, 0.2);background: #182d3c;overflow: hidden;border-radius: 20px;
}
编写菜单图标激活后的样式
.buttons label {width: 20%;font-size: 1.75em;-webkit-text-stroke: 1px #fff;color: transparent;cursor: pointer;transition: 0.5s;
}.buttons label:hover {opacity: 1;filter: drop-shadow(0 0 10px #fff) drop-shadow(0 0 20px #fff);
}/* 通过单选框激活状态,设置图标的激活状态 */
.tabs input:nth-child(1):checked ~ .buttons label:nth-child(1),
.tabs input:nth-child(2):checked ~ .buttons label:nth-child(2),
.tabs input:nth-child(3):checked ~ .buttons label:nth-child(3),
.tabs input:nth-child(4):checked ~ .buttons label:nth-child(4),
.tabs input:nth-child(5):checked ~ .buttons label:nth-child(5) {color: #fff;opacity: 1;filter: drop-shadow(0 0 10px #fff) drop-shadow(0 0 20px #fff);
}
实现菜单底部块的样式和移动样式
.underline {position: absolute;left: 0;bottom: 0;width: 20%;height: 5px;/* 设置滑块的移动时间 */transition: 0.5s;
}.underline::before {content: "";position: absolute;left: 50%;transform: translateX(-50%);width: 40px;height: 100%;background: #fff;filter: drop-shadow(0 0 10px #fff) drop-shadow(0 0 20px #fff) drop-shadow(0 0 30px #fff) drop-shadow(0 0 50px #fff);
}.underline::after {content: "";position: absolute;left: 50%;transform: translateX(-50%);width: 40px;height: 100%;background: #fff;filter: drop-shadow(0 0 10px #fff) drop-shadow(0 0 20px #fff) drop-shadow(0 0 30px #fff) drop-shadow(0 0 50px #fff) blur(5px);
}/* 通过单选框激活状态,设置滑块的移动距离 */
.tabs input:nth-child(1):checked ~ .buttons .underline {left: 0;
}.tabs input:nth-child(2):checked ~ .buttons .underline {left: 20%;
}.tabs input:nth-child(3):checked ~ .buttons .underline {left: 40%;
}.tabs input:nth-child(4):checked ~ .buttons .underline {left: 60%;
}.tabs input:nth-child(5):checked ~ .buttons .underline {left: 80%;
}
完整代码下载
完整代码下载
相关文章:
带有滑动菜单指示器的纯 CSS 导航选项卡
效果展示 CSS 知识点 filter 属性回顾 transition 属性回顾 使用单选框实现导航菜单的思路 单选框当点击完成后就会有一个:checked属性,可以利用这个属性来实现导航菜单底部滑动块的滑动动画和当前菜单项激活状态的管理。 整体页面结构 <div class"tab…...
Java学习笔记41——接口组成更新
接口祖成更新 接口组成更新接口组成更新概述接口的组成接口中的默认方法接口中的静态方法接口中的私有方法 接口组成更新 接口组成更新概述 接口的组成 常量 public static final 抽象方法 public abstract 默认方法(Java8)静态方法(Java8…...
iview实现table里面每行数据的跳转
我的需求是跳转到第三方网站,看官方是写了如何跳转站内路由,不符合我的要求,在csdn发现了一篇文章,我贴一下代码 <template><Table border :columns"ReportColumns" :data"ReportData"><templ…...
Docker快速搭建Drupal内容管理系统并远程访问
🎬 鸽芷咕:个人主页 🔥个人专栏:《Linux深造日志》《C干货基地》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal…...
Ansible优化大全
文章目录 一、关闭系统信息收集二、开启加速 Ansible 执行速度修改配置文件/etc/ansible/ansible.cfg由于该功能与sudo冲突,必须关闭 requiretty 选项方法一方法二 参考文章: https://blog.csdn.net/o0o0o0D/article/details/110998873 一、关闭系统信息…...
Python|OpenCV-图像的添加和混合操作(8)
前言 本文是该专栏的第8篇,后面将持续分享OpenCV计算机视觉的干货知识,记得关注。 在使用OpenCV库对图像操作的时候,有时需要对图像进行运算操作,类似于加法,减法,位操作等处理。而本文,笔者将针对OpenCV对图像的添加,混合以及位操作进行详细的介绍说明和使用。 下面,…...
Vue3+vite+cesium环境搭建
引言 目前有不少vue3cesium的配置教学,存在以下两个问题: (1)vue3cli方式,随着项目的迭代,npm run serve 启动调试很慢; (2)vue3vite 确实能将调试启动提升不少的&…...
metaObjecthandler 的基本理解与使用(自动插入更新人和创建人)
metaObjecthandler 的基本理解与使用(自动插入更新人和创建人) mysql 自动插入更新和修改时间 更新字段信息 ALTER TABLE test MODIFY create_date timestamp not null default CURRENT_TIMESTAMP; ALTER TABLE test MODIFY update_date timestamp not null default CURRE…...
SpringBoot与ES7实现多条件搜索
SpringBoot与ES7实现多条件搜索 利用Kibana内置的航班数据,查询从威尼斯到中国按票价升序排列的前10条航班数据。 第一步,新建SpringBoot功能,pom.xml引入四个依赖。 <dependency><groupId>org.elasticsearch.client</groupI…...
【排序算法】 快速排序(快排)!图解+实现详解!
🎥 屿小夏 : 个人主页 🔥个人专栏 : 算法—排序篇 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言🌤️快速排序的概念☁️快速排序的由来☁️快速排序的思想☁️快速排序的实…...
急招开发、安全工程师实习生
信息安全工程师-实习生 公司:四川久远银海软件股份有限公司 工作职责 1、负责对公司WEB应用、APP、小程序、公众号等产品进行安全渗透测试; 2、负责对参与攻防演练、护网行动的项目组提供安全技术支撑; 3、负责提供基线核查、风险评估、主…...
数据结构与算法—插入排序选择排序
目录 一、排序的概念 二、插入排序 1、直接插入排序 直接插入排序的特性总结: 2、希尔排序 希尔排序的特性总结: 三、选择排序 1、直接选择排序 时间复杂度 2、堆排序—排升序(建大堆) 向下调整函数 堆排序函数 代码完整版: …...
基于词云图的短信热词数据可视化
热词统计:短信、邮件、微信、QQ、微博、电商评价、新闻、各行业热词(旅游、世界杯、战争、考研等)、热点事件等场景。 展示模型:给定多段文本,绘制出词云图。 核心思想:根据样本集中的文本包含的高频词…...
Linux/centos上如何配置管理Web服务器?
Linux/centos上如何配置管理Web服务器? 1 Web简单了解2 关于Apache3 如何安装Apache服务器?3.1 Apache服务安装3.2 httpd服务的基本操作 4 如何配置Apache服务器?4.1 关于httpd.conf配置4.2 常用指令 5 简单实例 1 Web简单了解 Web服务器称为…...
Java EE进阶2
包如果下载不下来怎么办? 1,确认包是否存在 2.如果包存在就多下载几次 3.如果下载了很多次都下载不下来,看看是不是下面几步出现了问题? 1)是否配置了国内源 settings.xml 2)目录是否为全英文,存在中文的话就修改路径 3)删除本地仓库的 jar 包,重新下载(可能由于网络的原…...
最新AI系统ChatGPT源码+AI绘画系统源码+支持GPT4.0+Midjourney绘画+搭建部署教程+附源码
一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…...
大厂面试题-为什么一线互联网公司严禁使用存储过程
之所以互联网公司不让用,主要有几个方面的原因: 1.存储过程不好调试,一旦涉及到非常复杂的逻辑,定位问题的时候比较麻烦 2.存储过程的一致性很差,如果从Oracle迁移到MySQL,涉及到部分数据库独有特性的时候…...
SpringBoot+Swagger详细使用方法
一、接口文档概述 swagger是当下比较流行的实时接口文文档生成工具。接口文档是当前前后端分离项目中必不可少的工具,在前后端开发之前,后端要先出接口文档,前端根据接口文档来进行项目的开发,双方开发结束后在进行联调测试。 二…...
[动态规划] (十二) 简单多状态 LeetCode 213.打家劫舍II
[动态规划] (十二) 简单多状态: LeetCode 213.打家劫舍II 文章目录 [动态规划] (十二) 简单多状态: LeetCode 213.打家劫舍II题目解析解题思路状态表示状态转移方程初始化和填表顺序返回值提醒 代码实现总结 213. 打家劫舍 II 题目解析 本题是对打家劫舍和按摩师的升级题型&am…...
算法与数据结构之链表
链表的定义,相信大家都知道,这里就不赘述了只是链表分单向链表和双向链表,废话不多说,直接上代码 链表节点的定义: public class Node {int val;Node next;Node pre;public Node(int val, Node next, Node pre) {thi…...
碧蓝航线Perseus补丁:3步解锁全皮肤终极指南
碧蓝航线Perseus补丁:3步解锁全皮肤终极指南 【免费下载链接】Perseus Azur Lane scripts patcher. 项目地址: https://gitcode.com/gh_mirrors/pers/Perseus 还在为碧蓝航线中那些精美的皮肤无法体验而烦恼吗?Perseus原生库补丁为你提供了一个稳…...
Win10 RandLA-Net 点云语义分割:C++ 模块编译与 Semantic3D 训练
文章目录 Win10 RandLA-Net 点云语义分割:C++ 模块编译与 Semantic3D 训练 一、RandLA-Net 架构 二、环境 2.1 版本对照 2.2 CUDA 配置 三、C++ 模块编译 3.1 下采样模块 (cpp_subsampling) 3.2 最近邻搜索模块 (nearest_neighbors) 3.3 CMake 备选方案 四、数据 (Semantic3D)…...
从柴油卡车到物联网网关:老牌J1708协议如何通过MQTT桥接融入现代车联网?
从柴油卡车到物联网网关:老牌J1708协议如何通过MQTT桥接融入现代车联网? 重型柴油卡车发动机的轰鸣声里,藏着一段跨越三十年的通信史。当工程师们面对那些仅支持J1708/J1587协议的老旧ECU模块时,如何让这些"沉默的巨人"…...
运用qsort函数对任意数据进行排序
#该内容是根据是听完比特课后,进行整理再加以自己的补充qsort函数对任意数据进行排序qsort函数介绍qsort函数是专门用来对任意数据进行排序的函数,包括整型、浮点型、字符串、结构体函数等qsort函数 void qsort(void* base,//base指向待排序数组的第一个…...
鱼群计数检测数据集VOC+YOLO格式1806张1类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):1806标注数量(xml文件个数):1806标注数量(txt文件个数):1806标注类别…...
如何实现Redis分布式锁?Java开发者必备的终极指南
如何实现Redis分布式锁?Java开发者必备的终极指南 【免费下载链接】JCSprout 👨🎓 Java Core Sprout : basic, concurrent, algorithm 项目地址: https://gitcode.com/gh_mirrors/jc/JCSprout JCSprout(Java Core Sprou…...
从Cortex-M到Cortex-A:内存屏障(DMB/DSB/ISB)的使用差异与迁移心得
从Cortex-M到Cortex-A:内存屏障的思维升级与实践指南 当工程师从单片机开发转向Linux驱动或Android系统开发时,往往会遇到一个令人困惑的现象:同样的内存屏障指令,在Cortex-M上运行良好的代码,移植到Cortex-A平台后却出…...
SCTRANet:空间-通道交叉 Transformer 红外小目标检测
文章目录 SCTRANet:空间-通道交叉 Transformer 红外小目标检测 一、任务 二、环境 三、数据 (SIRST / IRSTD-1k) 3.1 结构 3.2 加载 四、模型 4.1 U-Net 基线 4.2 SCTBlock 五、训练 5.1 Focal Loss 5.2 训练循环 六、结果 七、消融 八、调试 九、总结 代码链接与详细流程 购买…...
如何在Windows上轻松运行Flash游戏:CefFlashBrowser完整解决方案指南
如何在Windows上轻松运行Flash游戏:CefFlashBrowser完整解决方案指南 【免费下载链接】CefFlashBrowser Flash浏览器 / Flash Browser 项目地址: https://gitcode.com/gh_mirrors/ce/CefFlashBrowser 还在为无法打开珍藏的Flash游戏而烦恼吗?当现…...
多智能体强化学习实战:基于PyMARL与SMAC环境的算法解析与代码实现
1. 项目概述:从多智能体强化学习研究到可复现的代码实践如果你对深度强化学习(DRL)感兴趣,并且已经不再满足于让单个智能体在Atari游戏里打砖块,而是想探索多个智能体如何协作或竞争来完成更复杂的任务,比如…...
