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

news2025/1/15 13:04:19

效果图:

在这个示例中,我为每个.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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1853888.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

「动态规划」如何解决单词拆分问题?

139. 单词拆分https://leetcode.cn/problems/word-break/description/ 给你一个字符串s和一个字符串列表wordDict作为字典。如果可以利用字典中出现的一个或多个单词拼接出s则返回true。注意&#xff1a;不要求字典中出现的单词全部都使用&#xff0c;并且字典中的单词可以重复…

conda下安装32位版本python

前言&#xff1a;当前主流的系统为64bit系统&#xff0c;conda软件为64bit软件&#xff0c;因此使用conda创建虚拟环境安装python时默认安装的python为64bit版本&#xff0c;但部分研发场景需要调用32bit依赖&#xff0c;只能使用32bit的python&#xff0c;因此需要安装32bit的…

36.远程注入到入口点注入

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果&#xff0c;代码看不懂是正常的&#xff0c;只要会抄就行&#xff0c;抄着抄着就能懂了 上一…

ViT:5 Knowledge Distillation

实时了解业内动态&#xff0c;论文是最好的桥梁&#xff0c;专栏精选论文重点解读热点论文&#xff0c;围绕着行业实践和工程量产。若在某个环节出现卡点&#xff0c;可以回到大模型必备腔调或者LLM背后的基础模型重新阅读。而最新科技&#xff08;Mamba,xLSTM,KAN&#xff09;…

操作系统实验四:openEuler安装(openEuler配置静态网络、编写C或C++)

目录 一、实验要求 二、具体任务安排 1.安装openEuler &#xff08;1&#xff09;下载openEuler镜像 &#xff08;2&#xff09;使用vmware安装openEuler 2.在openEuler中编写C或者C测试程序 &#xff08;1&#xff09;安装g环境 &#xff08;2&#xff09;开始程序编码…

121.网络游戏逆向分析与漏洞攻防-邮件系统数据分析-邮件读取与发送界面设计

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果 现在的代码都是依据数据包来写的&#xff0c;如果看不懂代码&#xff0c;就说明没看懂数据包…

IEEE RAL 具有高运动性能的仿旗鱼机器人协同运动机制研究

水下机器人作为军用侦察、监测及攻击装置备受关注&#xff0c;目前传统水下机器人普遍采用螺旋桨作为推进器&#xff0c;但高噪音、高能耗等问题限制了应用范围。鱼类通过自然选择进化出优异的运动性能&#xff0c;特别是在海洋中游动速度快、机动性强的旗鱼。为了探究快速和高…

湖北民族大学2024年成人高等继续教育招生简章

湖北民族大学&#xff0c;这所承载着深厚文化底蕴和卓越教育理念的学府&#xff0c;在崭新的2024年再次敞开怀抱&#xff0c;热烈欢迎有志于深化学习、提升自我的成人学员们。今年的成人高等继续教育招生&#xff0c;不仅是学校对于终身教育理念的具体实践&#xff0c;更是为广…

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【13】压力压测JMeter-性能监控jvisualvm

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【13】压力压测JMeter-性能监控jvisualvm 压力测试概述性能指标 JMeter基本使用添加线程组添加 HTTP 请求添加监听器启动压测&查看分析结果JMeter Address Already in use 错误解决 性…

广东信息工程职业学院2024年成人高等继续教育招生简章

一、学校简介 广东信息工程职业学院位于广东省肇庆市&#xff0c;是一所具有一定办学规模&#xff0c;办学定位和培养目标明确&#xff0c;办学特色和追求鲜明&#xff0c;可持续发展的全日制普通高等学校&#xff0c;学院坚持以人为本&#xff0c;以德育人&#xff0c;以良好…

【总线】AXI4第三课时:握手机制

大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计感兴趣&#xff0c;那你绝对不能错过我们今天的主角——AXI4总线。作为ARM公司AMBA总线家族中的佼佼者&#xff0c;AXI4以其高性能和高度可扩展性&#xff0c;成为了现代电子系统中不可或缺的通信桥梁…

【网络安全的神秘世界】SQL注入漏洞

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 本章知识使用的靶场&#xff1a;DVWA 一、漏洞简介 SQL&#xff1a;结构化查询语言&#xff0c;是一种特殊的编程语言&#…

常用主流sip协议软电话客户端软件有哪些?—— 筑梦之路

Ekiga 官网地址&#xff1a;Ekiga ~ Free Your Speech Ekiga&#xff0c;原名GnomeMeeting&#xff0c;支持Windows和Linux&#xff0c;是一个兼容SIP和H.323的视频会议程序&#xff0c;兼容VoIP&#xff0c;IP电话&#xff0c;通过Ekiga可以与使用任何SIP和H.323软硬件的远程…

通过 cloudflare 白嫖个人 docker 镜像加速服务

不知为何&#xff0c;现在大多数的 docker hub 镜像加速站都停止服务&#xff0c;而官方站点又因某些原因访问不到或延迟很高。所以&#xff0c;今天来记录一种通过 CloudFlare 搭建一个自己的镜像加速服务。 0、必看&#xff01;&#xff01;&#xff01; 注意&#xff1a; 此…

进军韩国5G市场!移远通信5G模组RG500L-EU率先获得KT、LGU+认证

近日&#xff0c;移远通信工规级5G模组RG500L-EU再传喜讯&#xff0c;率先通过了韩国两大运营商KT和LGU的严格认证。​在此之前&#xff0c;该模组已顺利通过KC认证&#xff08;韩国法规认证&#xff09;&#xff0c;此次再获运营商认证表明&#xff0c;RG500L-EU已完全满足韩国…

Okhttp响应Json数据

简介 OkHttp是一个高效、现代的HTTP客户端库&#xff0c;专为Android和Java应用程序设计&#xff0c;用于发送网络请求和处理响应。它支持HTTP/2和SPDY协议&#xff0c;允许连接复用&#xff0c;减少延迟&#xff0c;提高网络效率。OkHttp还处理了常见的网络问题&#xff0c;如…

【教学类65-01】20240622秘密花园涂色书01(通义万相)(A4横版2张,一大3小 38张纸76份)

背景需求&#xff1a; 用通义万相制作秘密花园涂色书 关键词&#xff08;中文&#xff09;&#xff1a;秘密花园涂色书&#xff0c;简单笔画&#xff0c;卡通&#xff0c;黑白轮廓&#xff0c;未着色&#xff0c;幼儿插图&#xff0c;线条画&#xff0c;没有背景&#xff0c;没…

【Python机器学习】k均值聚类——k均值的失败案例

k均值可能不总能找到“正确”的簇个数&#xff0c;每个簇仅由其中心定义&#xff0c;这意味着每个簇都是凸形。因此&#xff0c;k均值只能找到相对简单的形状。k均值还假设所有簇在某种程度上具有相同的“直径”&#xff0c;它总是将簇之间的边界刚好画在簇中心的之间位置。有时…

Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接

在进行参数化读取时发现一个问题&#xff1a; 发现问题&#xff1a; requests.exceptions.ConnectionError: HTTPConnectionPool(hostlocalhost, port8081): Max retries exceeded with url: /jwshoplogin/user/update_information.do (Caused by NewConnectionError(<url…

尚品汇-(五)

商品管理模块开发 下面用到的表&#xff1a; 属性表&#xff1a; 属性值表&#xff1a; 分类一表&#xff1a; 分类二表&#xff1a; 分类三表&#xff1a; 1.1在service 模块下搭建service-product 搭建过程同common-util 添加配置文件application.yml spring:applicatio…