web前端学习(二十八)——CSS3下拉菜单的相关设置_前端下拉菜单-程序员宅基地

技术标签: 学习  前端  # 【HTML+CSS+JavaScript】  css3  

1.开篇

HTML 部分:

我们可以使用任何的 HTML 元素来打开下拉菜单,如:<span>, 或 a <button> 元素。

使用容器元素 (如: <div>) 来创建下拉菜单的内容,并放在任何你想放的位置上。

使用 <div> 元素来包裹这些元素,并使用 CSS 来设置下拉内容的样式。

CSS 部分:

.dropdown 类使用 position:relative, 这将设置下拉菜单的内容放置在下拉按钮 (使用 position:absolute) 的右下角位置。

.dropdown-content 类中是实际的下拉菜单。默认是隐藏的,在鼠标移动到指定元素后会显示。 注意 min-width 的值设置为 160px。你可以随意修改它。 注意: 如果你想设置下拉内容与下拉按钮的宽度一致,可设置 width 为 100% ( overflow:auto 设置可以在小尺寸屏幕上滚动)。

我们使用 box-shadow 属性让下拉菜单看起来像一个"卡片"。

:hover 选择器用于在用户将鼠标移动到下拉按钮上时显示下拉菜单。

如果你想设置右浮动的下拉菜单内容方向是从右到左,而不是从左到右,可以添加以下代码 right: 0;(left:0;)


2.基本下拉菜单 

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8" />
		<title>CSS简单学习</title>
		<style type="text/css">
			.dropdown {
				position: relative;
				display: inline-block;
			}
			.dropdown-content {
				position: absolute;
				display: none;
				min-width: 160px;
				padding: 12px 16px;
				box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
				background-color: beige;
			}
			.dropdown:hover .dropdown-content {
				display: block;
			}
		</style>
	</head>
	
	<body>
		<h2>鼠标移动后出现下拉菜单</h2>
		<p>将鼠标移动到指定元素上就能看到下拉菜单</p>
		<div class="dropdown">
			<span>鼠标移动到我这里!!!</span>
			<div class="dropdown-content">
				<p>HTML</p>
				<p>CSS</p>
				<p>JavaScript</p>
			</div>
		</div>
	</body>
</html>


3.完善的下拉菜单

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8" />
		<title>CSS简单学习</title>
		<style type="text/css">
			/* 下拉按钮的样式 */
			.dropbtn {
				border: none;
				cursor: pointer;
				padding: 16px;
				font-size: 16px;
				background-color: green;
			}
			/* 容器<div>需要定位下拉内容 */
			.dropdown {
				position: relative;
				display: inline-block;
			}
			/* 下拉内容(默认隐藏) */
			.dropdown-content {
				position: absolute;
				display: none;
				min-width: 160px;
				box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
				background-color: whitesmoke;
			}
			/* 下拉菜单的链接 */
			.dropdown-content a {
				display: block;
				padding: 12px 16px;
				text-decoration: none;
				color: black;
			}
			/* 鼠标移到链接上之后,修改连接的背景颜色 */
			.dropdown-content a:hover {
				background-color: antiquewhite;
			}
			/* 鼠标移动到下拉按钮上之后,显示下拉菜单 */
			.dropdown:hover .dropdown-content {
				display: block;
			}
			/* 当下拉菜单显示之后,修改下拉按钮的背景颜色 */
			.dropdown:hover .dropbtn {
				background-color: darkgreen;
			}
		</style>
	</head>
	
	<body>
		<div class="dropdown">
			<button class="dropbtn">下拉菜单</button>
			<div class="dropdown-content">
				<a href="https://www.tencent.com" target="_blank">腾讯</a>
				<a href="https://www.1688.com" target="_blank">阿里巴巴</a>
				<a href="https://www.huawei.com" target="_blank">华为</a>
			</div>
		</div>
	</body>
</html>


4.下拉菜单的对齐方式

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8" />
		<title>CSS简单学习</title>
		<style type="text/css">
			/* 下拉按钮的样式 */
			.dropbtn {
				border: none;
				cursor: pointer;
				padding: 16px;
				font-size: 16px;
				background-color: green;
			}
			/* 容器<div>需要定位下拉内容 */
			.dropdown {
				position: relative;
				display: inline-block;
			}
			/* 下拉内容(默认隐藏) */
			.dropdown-content {
				position: absolute;
				display: none;
				min-width: 160px;
				box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
				right: 0;
				background-color: whitesmoke;
			}
			/* 下拉菜单的链接 */
			.dropdown-content a {
				display: block;
				padding: 12px 16px;
				text-decoration: none;
				color: black;
			}
			/* 鼠标移到链接上之后,修改连接的背景颜色 */
			.dropdown-content a:hover {
				background-color: antiquewhite;
			}
			/* 鼠标移动到下拉按钮上之后,显示下拉菜单 */
			.dropdown:hover .dropdown-content {
				display: block;
			}
			/* 当下拉菜单显示之后,修改下拉按钮的背景颜色 */
			.dropdown:hover .dropbtn {
				background-color: darkgreen;
			}
		</style>
	</head>
	
	<body>
		<h2>下拉内容的对齐方式</h2>
		<p>left 和 right 属性指定了下拉内容是从左到右或从右到左。</p>
		
		<div class="dropdown" style="float: left;">
			<button class="dropbtn">下拉菜单(左)</button>
			<div class="dropdown-content">
				<a href="https://www.tencent.com" target="_blank">腾讯</a>
				<a href="https://www.1688.com" target="_blank">阿里巴巴</a>
				<a href="https://www.huawei.com" target="_blank">华为</a>
			</div>
		</div>
		
		<div class="dropdown" style="float: right;">
			<button class="dropbtn">下拉菜单(右)</button>
			<div class="dropdown-content">
				<a href="https://www.tencent.com" target="_blank">腾讯</a>
				<a href="https://www.1688.com" target="_blank">阿里巴巴</a>
				<a href="https://www.huawei.com" target="_blank">华为</a>
			</div>
		</div>
	</body>
</html>


5.下拉菜单应用于图片

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8" />
		<title>CSS简单学习</title>
		<style type="text/css">
			.dropdown {
				position: relative;
				display: inline-block;
			}
			.dropdown-content {
				position: absolute;
				display: none;
				min-width: 160px;
				box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
				background-color: whitesmoke;
			}
			.dropdown:hover .dropdown-content {
				display: block;
			}
			.desc {
				padding: 15px;
				text-align: center;
			}
		</style>
	</head>
	
	<body>
		<h2>下拉图片</h2>
		<p>移动鼠标到图片上显示下拉内容。</p>
		<div class="dropdown">
			<img src="img/images/tx.jpg" alt="表情图" width="110" height="110" />
			<div class="dropdown-content">
				<img src="img/images/tx.jpg" alt="表情图" width="330" height="330" />
				<div class="desc">
					<p>表情图在这里被放大了!!!</p>
				</div>
			</div>
		</div>
	</body>
</html>


6.下拉菜单应用于导航栏

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8" />
		<title>CSS简单学习</title>
		<style type="text/css">
			ul {
				list-style-type: none;
				margin: 0;
				padding: 0;
				overflow: hidden;
				background-color: dimgray;
			}
			li {
				float: left;
			}
			li a, .dropbtn {
				display: inline-block;
				padding: 14px 16px;
				text-align: center;
				text-decoration: none;
				color: white;
			}
			li a:hover, .dropdown:hover, .dropbtn {
				background-color: black;
			}
			.dropdown {
				display: inline-block;
			}
			.dropdown-content {
				position: absolute;
				display: none;
				min-width: 160px;
				box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
				background-color: ghostwhite;
			}
			.dropdown-content a {
				display: block;
				padding: 12px 16px;
				text-decoration: none;
				color: black;
			}
			.dropdown-content a:hover {
				background-color: antiquewhite;
			}
			.dropdown:hover .dropdown-content {
				display: block;
			}
		</style>
	</head>
	
	<body>
		<ul>
			<li><a href="#home">主页</a></li>
			<li><a href="#news">新闻</a></li>
			<div class="dropdown">
				<a href="#link" class="dropbtn">相关链接</a>
				<div class="dropdown-content">
					<a href="https://www.tencent.com" target="_blank">腾讯</a>
					<a href="https://www.1688.com" target="_blank">阿里巴巴</a>
					<a href="https://www.huawei.com" target="_blank">华为</a>
				</div>
			</div>
		</ul>
		<h3>导航栏上的下拉菜单</h3>
		<p>鼠标移动到 "相关链接" 上,会显示下拉菜单。</p>
	</body>
</html>

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43823808/article/details/113754725

智能推荐

MySQL 数据库时区设置方法,“The server time zone value ‘�й���׼ʱ��‘ is unrecognized or represents ...” 问题解决_sqlstate = 01s00 the server time zone value ' й-程序员宅基地

文章浏览阅读2.2k次,点赞6次,收藏3次。连接 mysql 数据库时提示如下异常,是时区问题导致的。The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the 'serverTimezone' configuration property) to use a more specifc time zon_sqlstate = 01s00 the server time zone value ' й

AutoDL上可以用RTX 4090显卡了_4090租赁-程序员宅基地

文章浏览阅读1k次。上AutoDL租RTX 4090显卡_4090租赁

R语言caret包preProcess()标准化出现错误: Matrices or data frames are required for preprocessing-程序员宅基地

文章浏览阅读4.7k次。原因数据是AsIs格式的,默认为一列了,关于AsIs参考如下博客https://blog.csdn.net/weixin_48172266/article/details/117747605?spm=1001.2014.3001.5502R语言里面“AsIs“到底是啥,用的时候咋处理例子,hdi包里的riboflavin数据集,其中riboflavin$x为“AsIs“格式数据。library(hdi) preProcValues = preProcess(riboflavin$x, metho_错误: matrices or data frames are required for preprocessing

Visual studio2019 中编译c++出现LNK2019,LNK2001: 无法解析的外部符号,包含如下情况_vs2019 vc lnk2019-程序员宅基地

文章浏览阅读1.1w次,点赞9次,收藏20次。错误信息报错如下1.有可能是采用lib库的平台配置错误,打开项目属性发现当初配置的是Release x64,而执行代码是Debug x64修改执行代码的配置和平台即可,执行成功2.编译器会出现“LNK2001: 无法解析的外部符号”错误。类似前面提示(xxx.lib,xxx.obj等)libcrypto.lib: error LNK2001: 无法解析的外部符号,我们查找返..._vs2019 vc lnk2019

SpringBoot3-日志_springboot3 日志-程序员宅基地

文章浏览阅读634次。牢记:慎用System.out.println();尽量使用log4j2或者logback等日志来记录信息。outout所以务必养成一个好习惯,在日常开发或者调试的过程中,使用日志这些异步方法来输出及进行日志的统一收集,在一个项目上线前,也要进行全局的搜索,防止误用了System.out.println()关于为啥要使用日志就说这么多,接下来我们来看看SpringBoot3中的日志使用。_springboot3 日志

Python循环数组的几种好用的方法_python 数组循环 csdn-程序员宅基地

文章浏览阅读442次,点赞5次,收藏6次。。_python 数组循环 csdn

随便推点

R语言绘图的配色 ggsci_ggsci配色-程序员宅基地

文章浏览阅读291次。ggsci是一个流行的R包,它提供了一系列现代和吸引人的配色方案,可以用于ggplot2绘图。综上所述,ggsci是一个方便而强大的R包,可以帮助我们选择和使用各种现代和吸引人的配色方案。下面是一个简单的示例,展示了如何在ggplot2中使用ggsci包提供的配色方案。通过修改scale_color_gsci函数中的palette参数,我们可以轻松地切换不同的配色方案。通过调用sci_palette函数,并指定所需的配色方案,我们可以获取该配色方案中可用的颜色列表。首先,我们需要安装ggsci包。_ggsci配色

发明导诊机器人团队_导诊机器人的制作方法-程序员宅基地

文章浏览阅读197次。本实用新型涉及导诊机器人。技术背景数据显示,目前,世界上至少有48个国家在发展机器人,其中25个国家已涉足服务型机器人开发。在日本、北美和欧洲,迄今已有7种类型计40余款服务型机器人进入实验和半商业化应用。近年来,全球服务机器人市场保持较快的增长速度。现有的机器人的电路结构比较复杂,不够智能,不能满足服务机器人的发展需求。技术实现要素:本实用新型针对以上技术问题,提供导诊机器人,智能化程度高,能够..._导诊机器人工作原理

java webservice rpc_RPC框架是啥之Apache CXF一款WebService RPC框架入门教程-程序员宅基地

文章浏览阅读109次。本博客 猫叔的博客,转载请申明出处学习系列Apache CXF一款WebService RPC框架入门教程CXF官网:http://cxf.apache.org/Apache CXF是一个开源的WebService RPC框架,是由Celtix和Codehaus XFire合并而成的。它可以说是一个功能齐全的集合。功能特性:支持Web Service标准,包括SOAP(1.1、1.2)规范、WSI..._java cxf 对接 rpc

关于使用 python scapy-http 时无法引用 http 包的问题_scapy说httpis not defined-程序员宅基地

文章浏览阅读2.6k次,点赞3次,收藏2次。事情的起因是在某一天的上午,上班摸鱼时,偶然看到了一篇用scapy来做流量监控器,scapy我只在之前做爬虫的时候接触过,但并没有使用(当时用requests库就足够了),没想到scapy有这么强大的功能,一时兴起,就想着做一个流量监控器。之后按照网上的教程,环境搭好了,包(主要抓的是http包)也抓了了,但是抓到的包的内容是一堆16进制,用一句我女神的话来说,“我很好奇”包里面都写了..._scapy说httpis not defined

计算机网络安全教程(第三版)第十二章简答题答案_计算机网络安全教程第三版设计题答案-程序员宅基地

文章浏览阅读1.7k次,点赞4次,收藏4次。第 12 章 网络安全方案设计设计网络安全方案需要注意哪些地方?答:设计网络安全方案需要注意以下几个方面。第一,对于一名从事网络安全的人来说,网络必须有一个整体、动态的安全概念。设计人员只有对安全技术了解得很深,对产品、对用户所在领域了解得很深,写出来的方案才能接近用户的要求。第二,一份好的网络安全解决方案,不仅仅要考虑到技术,还要考虑到策略和管理。技术是关键,策略是核心,管理是保证。在方案中,始终要体现出这三方面的关系。第三,在设计网络安全方案时,一定要了解用户实际网络系统环境,对当前可能遇_计算机网络安全教程第三版设计题答案

文件操作-程序员宅基地

文章浏览阅读1.3k次。----- 用户通过文件系统所提供的系统调用实施对文件的操作。----- 最基本的文件操作有:创建文件、删除文件、读文件、写文件、截断文件和设置文件的读/写位置。但对于一个实际的OS,为了方便用户使用文件而提供了更多的对文件的操作,如打开和关闭一个文件及改变文件名等操作。1、最基本的文件操作-- 1)创建文件。在创建一个新文件时,系统首先要为新文件分配必要的外存空间,并在文件系_文件操作