当前位置: 首页 > news >正文

【html】用html+css模拟Windows右击菜单

效果图:

在这个示例中,我为每个.second-list添加了一个.sub-menu<div>,它包含了子菜单项。当鼠标悬停在.second-list上时,.sub-menu会显示出来。你可以根据需要调整这个示例以适应你的具体需求。

记住,这只是一个基本的示例。在实际应用中,你可能还需要考虑更多的细节,比如动画效果、子菜单的定位、响应式设计等。

这里有一些可能的改进或考虑的点:

  1. 二级菜单的定位:你的代码中,二级菜单是位于其父元素(.second-list)的右侧,这是通过left: 100%;来实现的。这适用于从左到右的菜单布局。但如果你需要考虑从右到左的布局(例如,在某些语言环境中),你可能需要调整这个定位。
  2. 二级菜单的样式:你可能希望为二级菜单添加一些阴影或边框,以使其看起来更像是从主菜单中“弹出”的。这可以通过添加box-shadow或调整边框样式来实现。
  3. 响应式设计:如果你的菜单需要在不同大小的屏幕上显示,你可能需要考虑添加一些响应式设计的元素。例如,当屏幕宽度变小时,你可能希望将二级菜单改为下拉菜单,而不是横向展开。
  4. 子菜单的动画效果:你可以考虑添加一些CSS过渡或动画效果,以使二级菜单的显示和隐藏更加平滑。例如,你可以使用transition属性来添加淡入淡出效果。
  5. 可访问性:确保你的菜单对所有人都是可访问的,包括那些使用屏幕阅读器或键盘导航的用户。你可能需要添加一些额外的样式或JavaScript来处理这些情况。

以下是一个简单的示例,演示如何为二级菜单添加淡入淡出效果:

 
css.sub-menu {
/* ...其他样式... */
opacity: 0;
visibility: hidden;
transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;
}.second-list:hover .sub-menu {
display: block;
opacity: 1;
visibility: visible;
}

在这个示例中,当鼠标悬停在.second-list上时,.sub-menu将从透明(opacity: 0)且不可见(visibility: hidden)的状态渐变为完全不透明(opacity: 1)且可见(visibility: visible)的状态。transition属性用于控制这个渐变过程的速度和方式。

完整代码:

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><style>* {margin: 0;padding: 0;}.con {width: 300px;height: 27.75rem;background-color: rgba(230, 246, 251, 0.9);border-radius: 14px;}ul {display: flex;flex-direction: column;height: 100%;}li {flex: 1;display: flex;align-items: center;border: 1px solid #eee;box-sizing: border-box;padding-left: 40px;position: relative;}li:first-child {border: none;}li:hover {background-color: rgb(221, 234, 240);}.second-list::after {content: ">";color: rgb(133, 151, 157);font-weight: 800;position: absolute;right: 40px;}.sub-menu {display: none;/* 默认隐藏二级菜单 */position: absolute;top: 0;left: 100%;/* 放置在父元素的右侧 */width: 150px;/* 设置二级菜单的宽度 */background-color: rgba(230, 246, 251, 0.9);border-radius: 0 14px 14px 0;/* 圆角只显示在右侧 */opacity: 0.2;visibility: hidden;transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;}.sub-menu ul li {height: 62px;line-height: 62px;}.second-list:hover .sub-menu {/* 鼠标悬停时显示二级菜单 */display: block;opacity: 1;visibility: visible;}</style></head><body><div class="con"><ul><li class="second-list">查看<div class="sub-menu"><ul><li>大图标</li><li>中图标</li><li>小图标</li></ul></div></li><li class="second-list">排序方式<div class="sub-menu"><ul><li>名称</li><li>大小</li><li>类型</li></ul></div></li><li>刷新</li><li class="second-list">新建<div class="sub-menu"><ul><li>文档</li><li>文件夹</li><li>工作表</li></ul></div></li><li>显示设置</li><li>个性化</li><li>属性</li></ul></div></body>
</html>

相关文章:

  • 【JS重点15】原型对象概述
  • C语言| 数组元素的删除
  • 四川汇聚荣科技有限公司靠谱吗?
  • 基于51单片机数字频率计的设计资料
  • Stable Diffusion初体验——基于机器学习通过神经网络的强大AI平台
  • 自制HTML5游戏《贪吃蛇》
  • 【无需任何插件】将VOS录音文件REC转MP3,REC转WAV或MP3的具体流程
  • win10 安装openssl并使用openssl创建自签名证书
  • python flask配置邮箱发送功能,使用flask_mail模块
  • shell的正则表达式
  • java实现持续集成
  • 使用 C++11 Lambda 表达式在 Qt 中连接信号与槽
  • MySQL中的系统变量权限
  • 字节跳动:从梦想之芽到参天大树
  • 二叉树经典OJ练习
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • Android框架之Volley
  • Fastjson的基本使用方法大全
  • JavaScript新鲜事·第5期
  • opencv python Meanshift 和 Camshift
  • passportjs 源码分析
  • Vim 折腾记
  • 阿里云前端周刊 - 第 26 期
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 欢迎参加第二届中国游戏开发者大会
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 小程序开发中的那些坑
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • Java数据解析之JSON
  • raise 与 raise ... from 的区别
  • 容器镜像
  • ​第20课 在Android Native开发中加入新的C++类
  • #C++ 智能指针 std::unique_ptr 、std::shared_ptr 和 std::weak_ptr
  • #职场发展#其他
  • $.ajax中的eval及dataType
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (el-Date-Picker)操作(不使用 ts):Element-plus 中 DatePicker 组件的使用及输出想要日期格式需求的解决过程
  • (TOJ2804)Even? Odd?
  • (八)Flink Join 连接
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (含答案)C++笔试题你可以答对多少?
  • (黑马C++)L06 重载与继承
  • (力扣)1314.矩阵区域和
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (十七)Flink 容错机制
  • (转)用.Net的File控件上传文件的解决方案
  • .net CHARTING图表控件下载地址
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福