CSS基础学习--19 下拉菜单

news2024/11/13 8:51:45

 一、基本下拉菜单

当鼠标移动到指定元素上时,会出现下拉菜单

<!DOCTYPE html>
<html>
<head>
<title>下拉菜单实例</title>
<meta charset="utf-8">
<style>
.dropdown {
  position: relative;
  display: inline-block;
}
.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  padding: 12px 16px;
}
.dropdown:hover .dropdown-content {
  display: block;
}
</style>
</head>
<body>

<h2>鼠标移动后出现下拉菜单</h2>
<p>将鼠标移动到指定元素上就能看到下拉菜单。</p>

<div class="dropdown">
  <span>鼠标移动到我这!</span>
  <div class="dropdown-content">
    <p>CSS教程</p>
    <p>www.runoob.com</p>
  </div>
</div>

</body>
</html>

 

实例解析

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 选择器用于在用户将鼠标移动到下拉按钮上时显示下拉菜单

二、下拉菜单

创建下拉菜单,并允许用户选取列表中的某一项

<!DOCTYPE html>
<html>
<head>
<title>下拉菜单实例II</title>
<meta charset="utf-8">
<style>
.dropbtn {
    background-color: #4CAF50;
    color: white;
    padding: 16px;
    font-size: 16px;
    border: none;
    cursor: pointer;
}

.dropdown {
    position: relative;
    display: inline-block;
}

.dropdown-content {
    display: none;
    position: absolute;
    background-color: #f9f9f9;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
}

.dropdown-content a {
    color: black;
    padding: 12px 16px;
    text-decoration: none;
    display: block;
}

.dropdown-content a:hover {background-color: #f1f1f1}

.dropdown:hover .dropdown-content {
    display: block;
}

.dropdown:hover .dropbtn {
    background-color: #3e8e41;
}
</style>
</head>
<body>

<h2>下拉菜单</h2>
<p>鼠标移动到按钮上打开下拉菜单。</p>

<div class="dropdown">
  <button class="dropbtn">下拉菜单</button>
  <div class="dropdown-content">
    <a href="http://www.jiaocheng.com">CSS教程 1</a>
    <a href="http://www.jiaocheng.com">CSS教程 2</a>
    <a href="http://www.jiaocheng.com">CSS教程 3</a>
  </div>
</div>

</body>
</html>

 三、下拉内容对齐方式

下拉的对齐方式有:

(1)、设置左浮动的下拉菜单内容方向是从左到右,而不是从右到左

(2)、设置右浮动的下拉菜单内容方向是从右到左,而不是从左到右

<!DOCTYPE html>
<html>
<head>
<title>下拉菜单实例III</title>
<meta charset="utf-8">
<style>
.dropbtn {
    background-color: #4CAF50;
    color: white;
    padding: 16px;
    font-size: 16px;
    border: none;
    cursor: pointer;
}

.dropdown {
    position: relative;
    display: inline-block;
}

.dropdown-content {
    display: none;
    position: absolute;
    right: 0;
    background-color: #f9f9f9;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
}

.dropdown-content a {
    color: black;
    padding: 12px 16px;
    text-decoration: none;
    display: block;
}

.dropdown-content a:hover {background-color: #f1f1f1}

.dropdown:hover .dropdown-content {
    display: block;
}

.dropdown:hover .dropbtn {
    background-color: #3e8e41;
}
</style>
</head>
<body>

<h2>下拉内容的对齐方式</h2>
<p>left 和 right 属性指定了下拉内容是从左到右或从右到左。</p>

<div class="dropdown" style="float:left;">
  <button class="dropbtn">左</button>
  <div class="dropdown-content" style="left:0;">
    <a href="#">CSS教程 1</a>
    <a href="#">CSS教程 2</a>
    <a href="#">CSS教程 3</a>
  </div>
</div>

<div class="dropdown" style="float:right;">
  <button class="dropbtn">右</button>
  <div class="dropdown-content">
    <a href="#">CSS教程 1</a>
    <a href="#">CSS教程 2</a>
    <a href="#">CSS教程 3</a>
  </div>
</div>

</body>
</html>

左效果图:

 右效果图:

 

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

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

相关文章

UnityVR-项目的管理阶层

目录 概述 项目的总体架构 单例基类 继承MonoBehaviour的单例基类 概述 一个具备一定规模的项目&#xff0c;一般都需要由不同人员合作完成&#xff0c;每个人的想法风格不相同&#xff0c;如果一开始没有定下基本的框架&#xff0c;会让实现时混乱不堪&#xff0c;而且无法…

【CesiumJS入门】(5)GooJSON的加载、更新、监听与销毁——GeoJsonDataSource应用

前言 本篇&#xff0c;我们将较完整得介绍Cesium中GeoJSON/TopoJSON相关的方法。 GeoJSON规范地址&#xff1a;RFC 7946: The GeoJSON Format (rfc-editor.org) GeoJSON在线绘制&#xff1a;geojson.io CesiumJS提供了一个名为DataSource的类&#xff0c;它主要是用来加载和展…

Java-API简析_java.util.UUID类(基于 Latest JDK)(浅析源码)

【版权声明】未经博主同意&#xff0c;谢绝转载&#xff01;&#xff08;请尊重原创&#xff0c;博主保留追究权&#xff09; https://blog.csdn.net/m0_69908381/article/details/131270140 出自【进步*于辰的博客】 其实我的【Java-API】专栏内的博文对大家来说意义是不大的。…

《计算之魂》读书笔记——递归与堆栈的关系

进入梅雨季节&#xff0c;一周末雨水连绵不绝&#xff0c;空气中泛着潮湿的凉爽。这个天气最适合找个角落&#xff0c;安安静静地读书写字。 继续读《计算之魂》&#xff0c;前次读到递归&#xff0c;今天则了解递归地数据结构实现。递归算法的层层实现&#xff0c;需要保留从…

大数据周会-本周学习内容总结018

开会时间&#xff1a;2023.06.18 15:00 线下会议 01【调研-数据分析&#xff08;质量、ETL、可视化&#xff09;】 ETL&#xff0c;是英文Extract-Transform-Load的缩写&#xff0c;用来描述将数据从来源端经过抽取&#xff08;extract&#xff09;、转换&#xff08;transform…

Tcl常用命令备忘录-正则命令篇

正则表达式是一种用于匹配、查找、替换文本中特定模式的工具。在Tcl脚本中&#xff0c;可以使用正则表达式对字符串进行匹配、查找和替换。 regexp 语法&#xff1a; regexp ?选项? 正则表达式 字符串 ?变量1 变量2 ...? 其中&#xff0c;?选项?为可选项&#xff0c;…

基于蒙特卡洛法的规模化电动汽车充电负荷预测(PythonMatlab实现)

目录 0 概述 1 蒙特卡洛模拟方法介绍 2 规模化电动汽车充电负荷预测计算方法 3 完整代码 0 概述 对于本文的研究,依据不同用途电动汽车影响因素的分布函数和设定参数&#xff0c;采用蒙特卡洛法,对各用途电动汽车的日行驶里程、起始充电时间概率分布参数进行随机抽样&#xff0…

linuxOPS系统服务_Linux下软件的安装方式之源码安装

Linux下有哪些软件安装方式 ① RPM软件包管理&#xff08;软件名称.rpm&#xff09; ② YUM软件包管理&#xff08;使用yum命令install 软件名称&#xff09; > 下载 安装一体化 ③ 源码编译安装&#xff08;相对来说是最复杂的一种方式&#xff09; 软件包类型 ☆ 二…

十二、docker学习-docker核心docker网络之bridge网络(2)

bridge网络 bridge网络表现形式就是docker0这个网络接口。容器默认都是通过docker0这个接口进行通信。也可以通过docker0去和本机的以太网接口连接&#xff0c;这样容器内部才能访问互联网。 # 查看docker0网络&#xff0c;在默认环境中&#xff0c;一个名为docker0的linux b…

Go语言的TCP和HTTP网络服务基础

目录 【TCP Socket 编程模型】 Socket读操作 【HTTP网络服务】 HTTP客户端 HTTP服务端 TCP/IP 网络模型实现了两种传输层协议&#xff1a;TCP 和 UDP&#xff0c;其中TCP 是面向连接的流协议&#xff0c;为通信的两端提供稳定可靠的数据传输服务&#xff1b;UDP 提供了一种…

NodeJSMongodbMVC管理开发⑨

文章目录 ✨文章有误请指正&#xff0c;如果觉得对你有用&#xff0c;请点三连一波&#xff0c;蟹蟹支持&#x1f618;前言MVC思想开发 服务器代码演示 M层 Services 或 Model V层 Views C层 Controllers总结 ✨文章有误请指正&#xff0c;如果觉得对你有用&#xff0c…

C语言笔记之结构体总结

C语言笔记之结构体总结 code review! 文章目录 C语言笔记之结构体总结一.介绍二.3种结构体类型变量说明1. 先定义结构&#xff0c;再定义结构变量2. 定义结构体类型的同时说明变量3. 直接说明结构变量(匿名结构体) 四.结构体成员表示方法五.结构体指针做参数六.结构体初始化1…

阵列信号处理笔记(2):均匀线阵、均匀加权线阵、波束方向图

阵列信号处理笔记&#xff08;2&#xff09; 文章目录 阵列信号处理笔记&#xff08;2&#xff09;均匀线阵&#xff08;Uniform Linear Array&#xff09;均匀加权线阵波束方向图的关键参数附polardb.m用来计算HPBW的Mathematica代码&#xff0c;以及用于拟合的数据拟合的MATL…

二、DSMP/OLS等夜间灯光数据贫困地区识别——MPI和灯光指数计算

一、前言 其实在计算MPI和灯光指数之前,最重要是DMSP/OLS等夜间灯光指数的校正还有就是MPI计算,那么校正分为DMSP/OLS和NPP/VIIRS夜间灯光数据,DMSP/OLS夜间灯光数据校正主要采取不变目标区域法原理进行校正,当前对其有很多优化后的做法,但是万变不离其宗,核心思想还是没…

LeetCode257. 二叉树的所有路径

写在前面&#xff1a; 题目链接&#xff1a;LeetCode257. 二叉树的所有路径 题目难度&#xff1a;简单 编程语言&#xff1a;C 一、题目描述 给你一个二叉树的根节点 root &#xff0c;按 任意顺序 &#xff0c;返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的…

阿里P8架构师手码的Java工程师面试小抄在Github火了,完整版限时开源

网上的 JAVA 面试文档更是层出不穷。但是单单刷 JAVA 面试题就足够了吗&#xff1f; 答案显然是不够的&#xff01;那么为什么呢&#xff1f; 因为现在的程序员就业环境早就和两年前不可同日而语了。 如果你在两年前面试&#xff1a; 就拿 JVM 来说&#xff0c;刷面试题可能…

Springboot+vue.js+协同过滤推荐+余弦相似度算法实现新闻推荐系统

Springbootvue.js协同过滤推荐余弦相似度算法实现新闻推荐系统 - 简书 针对海量的新闻资讯数据&#xff0c;如何快速的根据用户的检索需要&#xff0c;完成符合用户阅读需求的新闻资讯推荐&#xff1f;本篇文章主要采用余弦相似度及基于用户协同过滤算法实现新闻推荐&#xff0…

SpringMvc详解

SpringMvc用来代替展示层Servlet&#xff0c;均属于Web层开发技术 Servlet是如何工作的 1、导入Servlet依赖坐标 2、创建一个Servlet接口实现类&#xff0c;重写其中的所有方法 3、在Servlet实现类上加上WebServlet注解&#xff0c;用来配置Servlet访问路径 4、启动Tomca…

Misc(6)

隐藏的钥匙 还是一样挨个试&#xff0c;详细信息里没有发现flag信息&#xff0c;就用010打开试试 文件头正常&#xff0c;暂时没有发现隐藏文件 喝&#xff0c;多搜搜还是有收获的&#xff0c;一开始以为是有隐藏文件就利用ctrlf在010中进行搜索 分别搜索了txt和rar文件都没有反…

VLAN基础知识2_VLAN二层通信原理

目录 1.VLAN二层通信简介 2.同一交换机VLAN二层通信 3.跨交换机VLAN二层通信 4.VLAN二层通信实验 4.1 VLAN基本配置命令 4.2 VLAN配置步骤 4.3 VLAN二层通信实验效果 1.VLAN二层通信简介 VLAN是一个逻辑上的分组&#xff0c;可以将一个物理网络端口分割成多个虚拟网络&…