基于CSS两种菜单创建方式

news2024/9/21 20:45:44

作者:私语茶馆

1.前言

        HTML多种场景下需要菜单的实现,这里提供两种方式:

(1)基于CSS的POPUP式菜单

特征:按需显示POPUP菜单,但布局是浮动的。

(2)覆盖式弹出菜单。

特征:按需显示菜单,菜单以弹出窗口模式显示,会覆盖下面的内容

2.基于CSS的POPUP式菜单

        先来看一下效果,这个是挤压式弹出菜单,默认隐藏,如果点击后,会显示菜单,界面上其他元素会根据弹出菜单来重新布局。

2.1. 效果

2.1.1. 初始效果

2.1.2. 点击按钮显示菜单:

点击图形化按钮后,会把背景字幕往后挤压,

2.1.3. 点击按钮隐藏菜单:

效果同步骤1,初始化的情况。背景字幕会往左边排序

这种样式的菜单可以用于界面比较简洁的首页。

2.2. 代码

2.2.1. HTML

<td style="width: 40%; text-align: right">
    <div class="topnav">
        <div id="myLinks">
            <a href="#安全管理">用户管理</a>
            <a href="#许可证管理">许可证</a>
            <a href="#关于">关于</a>
        </div>
        <p style="float: left">beginning  test字幕</p>
       <a href="javascript:void(0);" class="icon" onclick="myFunction()">
            <img class="iconImg" src="/HomeCloudsy/Images/setting.png" alt="setting"/>
        </a>
    </div>
</td>
说明:
  1. Div myLinks是显示菜单内容,会通过CSS控制其默认不显示。
  2. Test字幕:用来测试布局关系的,这个模式是浮动方式,会把这几个字往后推
  3. <a>: 是图形化按钮,
  4. Javascript:void(0):空的JS函数,没有输入,也没有返回,控制没有超级链接。 Onclick=myFunction控制菜单显示

2.2.2.JavaScript代码

<script>
    function myFunction() {
        var x = document.getElementById("myLinks");
        if (x.style.display === "block") {
            x.style.display = "none";
        } else {
            x.style.display = "block";
        }
    }
</script>

说明:Dislay常用的有四种取值,取值如下:

1)none:不显示

2)block:按照block模式显示本元素,block会换行显示一个块,类似<p>

3) inline:元素在一行类显示,类似<span>

4)inline-block:元素在一行内按照块显示

效果如下图的hello world

2.2.3.CSS控制

.topnav {
    overflow: hidden;    --溢出后不显示
    background-color: #acb3b9;
    position: relative;  --采用相对布局
}

.topnav #myLinks {
    display: none;    ---不显示菜单内容
}

.topnav a {
    float: left;   -浮动模式
    color: white;
    padding: 14px 16px;
    text-decoration: none;
    font-size: 17px;
}

.topnav .iconImg {
    width: 100%;
}

.topnav a:hover {
    background-color: #ddd;
    color: black;
}

    .topnav a.icon {
        float: right;
        width: 80px;
        height: 80px;
    }

    .HomeLogo{
        width: 90px;
        height: 90px;
    }
    .HomeLogo img {
        width: 100%;
        align-content: left;
        padding-top: 10px;
        padding-left: 5px
    }


说明:

    overflow: hidden;    --溢出后不显示
    background-color: #acb3b9;
    position: relative;  --采用相对布局

 display: none;    ---不显示菜单内容

3. 覆盖式弹出菜单

        关键点:Position取值为Absolute(针对最近父节点排序,这个不受其他元素的影响),采用z-index布局图层,获得覆盖效果。

3.1. 效果

3.1.1. 初始化test.html

  1. 图形化菜单
  2. 是背景对象,用于测试菜单覆盖效果用

3.1.2. 鼠标移动到图形按钮显示:

这个菜单是按照hoverable模式显示菜单。

3.1.3. 点击关于我们

点击关于我们后,跳到aboute.html。

3.2. 代码

3.2.1.HTML

<p>测试下拉菜单</p>
<div class="dropMainMenuArea">
    <input class="dropBtn" type="image" src="/HomeCloudsy/Images/menu.png" alt="Menu" />
    <div class="dropMenu">
        <a href="/HomeCloudsy/FuncEntries/ComingSoon.html">用户管理</a>
        <a href="/HomeCloudsy/FuncEntries/About.html">证书导入</a>
        <a href="/HomeCloudsy/FuncEntries/About.html">关于我们</a>
    </div>
</div>
<table style="border: black solid">
    <tr>
        <th>测试体1</th>
        <th>测试体2</th>
    </tr>
    <tr>
        <td>112324e34</td>
        <td>112324e34</td>
    </tr>
</table>

3.2.2. CSS

<style>
    .dropBtn {
        background-color: #2196F3;
        color: white;
        padding: 0px;
        font-size: 16px;
        width: 20px;
        height: 30px;
        border: none;
    }
    .dropBtn img{
        padding-top: 0px;
        padding-left: 0px;
    }

    .dropMainMenuArea{
        position: relative;
        display: inline-block;
    }
    .dropMenu{
        display: none;  ---不显示菜单
        position: absolute;---让菜单内容显示位置只和dropMainuArea有关
        background-color: #f1f1f1;
        min-width:160px;
        box-shadow:  0px 8px 16px 0px rgba(0,0,0,0.5);---弹出盒子的阴影效果
        z-index: 1;
    }
    .dropMenu a{
        color:black;
        padding:12px 16px;
        text-decoration: none;
        display:block;
    }
    .dropMenu a:hover{
        background-color: #ddd;   -菜单鼠标移动的效果,凸显
    }
    .dropMainMenuArea:hover .dropMenu {  --鼠标移动到dropMainMenuArea显示dropMenu
        display: block;
    }

    .dropMainMenuArea:hover .dropBtn {
        background-color: #3e8e41;
    }
</style>

关键点:

        display: none;  ---不显示菜单
        position: absolute;---让菜单内容显示位置只和dropMainuArea有关

.dropMenu a:hover{
       
background-color: #ddd;   -菜单鼠标移动的效果,凸显
    }
    .
dropMainMenuArea:hover .dropMenu {  --鼠标移动到dropMainMenuArea显示dropMenu
        display: block;
    }


 

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

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

相关文章

独家揭秘!五大内网穿透神器,访问你的私有服务

本文精心筛选了五款炙手可热的内网穿透工具&#xff0c;它们各怀绝技&#xff0c;无论您是企业用户、独立开发者&#xff0c;还是技术探索者&#xff0c;这篇文章都物有所值&#xff0c;废话不多说&#xff0c;主角们即将上场。 目录 1. 巴比达 - 安全至上的企业护航者 2. 花…

二次改写内容,ai智能写作软件最便捷

对于自媒体创作者&#xff0c;二次改写是获取内容的一个不错的方法&#xff0c;通过二次改写不仅能提高自媒体内容创作的效率问题&#xff0c;而且还解决了创作中因灵感缺失产不出内容的问题&#xff0c;但是二次改写内容也是需要讲究方法的&#xff0c;如果没有好的方法&#…

68种语言说爱你网页源码

浪漫至死不渝&#xff0c;68种语言说爱你网页源码&#xff0c;本地和上传服务器都可以用&#xff0c;无加密。 网页源码&#xff1a;68种语言说爱你单页.zip 下面是HTML代码CSS代码超过七百多行打包成文件了。 <!DOCTYPE html> <html lang"en"><h…

计算机体系结构和指令系统2

1.存储系统的层次结构 有的教材把安装在电脑内部的磁盘成为“辅存”&#xff0c;把U盘、光盘等成为外存&#xff0c;也有的教材把磁盘、U盘、光盘等统称为“辅存”或外存。 主存——辅存&#xff1a;实现虚拟存储系统&#xff0c;解决了主存容量不够&#xff0c;辅存速度不够的…

【密码学】实现消息认证或数字签名的几种方式

消息认证的目的是验证消息的完整性和确认消息的来源。数字签名的目的是不仅验证消息的完整性和来源&#xff0c;还提供了不可否认性。此外&#xff0c;数字签名还可以验证消息的创建时间&#xff0c;防止重放攻击。那么具体有哪些实现的方式呢&#xff1f; 一、仅提供消息认证…

2024年7月13日全国青少年信息素养大赛Python复赛小学高年级组真题

第一题 题目描述 握情况。他决定让每个人输入一个正整数 N (0≤N≤1000)&#xff0c;然后计算并输出(5*N)的值。请用 在一个神秘的王国里&#xff0c;国王希望通过一个简单的测试来评估他的子民对基 础数学运算的掌 Python 编写程序&#xff0c;程序执行后要求用户输入一个正…

【山东大学】web数据管理——复习笔记

写在前面 若有图片加载失败&#xff0c;请科学上网 。本文为对软件学院连老师的PPT课件总结所得的复习笔记&#xff0c;仅供参考。不保证对考点的全覆盖&#xff0c;以PPT为主。对往年考过的题相关知识点前面都标注了“考过”&#xff0c;并高亮&#xff0c;供参考。写的比较匆…

代码随想录第51天|单调栈

42. 接雨水 参考 思路1: 暴力解法 找每个柱子的左右高度超时 O(N^2) 思路2: 双指针优化 class Solution { public:int trap(vector<int>& height) {vector<int> lheight(height.size(), 0);vector<int> rheight(height.size(), 0);lheight[0] hei…

【超音速 专利 CN117576413A】基于全连接网络分类模型的AI涂布抓边处理方法及系统

申请号CN202311568976.4公开号&#xff08;公开&#xff09;CN117576413A申请日2023.11.22申请人&#xff08;公开&#xff09;超音速人工智能科技股份有限公司发明人&#xff08;公开&#xff09;张俊峰&#xff08;总&#xff09;; 杨培文&#xff08;总&#xff09;; 沈俊羽…

Python酷库之旅-第三方库Pandas(021)

目录 一、用法精讲 52、pandas.from_dummies函数 52-1、语法 52-2、参数 52-3、功能 52-4、返回值 52-5、说明 52-6、用法 52-6-1、数据准备 52-6-2、代码示例 52-6-3、结果输出 53、pandas.factorize函数 53-1、语法 53-2、参数 53-3、功能 53-4、返回值 53-…

网络割接方案通用模板

第一章 项目概述 1.1 编写目的 为规范“十三五”以来&#xff0c;随着移动互联新技术的发展以及我国政府职能的不断转变&#xff0c; 我国的政法网络进入新的发展阶段&#xff0c;跨地域、跨部门、跨系统的信息共享、业务 协同以及智慧政务等成为了各地电子政务的重点建设内容。…

【Django+Vue3 线上教育平台项目实战】构建高效线上教育平台之首页模块

文章目录 前言一、导航功能实现a.效果图&#xff1a;b.后端代码c.前端代码 二、轮播图功能实现a.效果图b.后端代码c.前端代码 三、标签栏功能实现a.效果图b.后端代码c.前端代码 四、侧边栏功能实现1.整体效果图2.侧边栏功能实现a.效果图b.后端代码c.前端代码 3.侧边栏展示分类及…

自动化故障排查与运维团队建设策略

在当前的运维领域&#xff0c;自动化故障排查已成为提高运维效率、保障系统稳定性的关键手段。为了进一步提升故障排查能力&#xff0c;并建立高效的运维团队&#xff0c;以下策略值得深入考虑和实施。 一、自动化故障排查流程与工具 标准化故障排查流程 建立一套标准化的故…

121. 小红的区间翻转(卡码网周赛第二十五期(23年B站笔试真题))

题目链接 121. 小红的区间翻转&#xff08;卡码网周赛第二十五期&#xff08;23年B站笔试真题&#xff09;&#xff09; 题目描述 小红拿到了两个长度为 n 的数组 a 和 b&#xff0c;她仅可以执行一次以下翻转操作&#xff1a;选择a数组中的一个区间[i, j]&#xff0c;&#x…

Nginx入门到精通五(动静分离)

下面内容整理自bilibili-尚硅谷-Nginx青铜到王者视频教程 Nginx相关文章 Nginx入门到精通一&#xff08;基本概念介绍&#xff09;-CSDN博客 Nginx入门到精通二&#xff08;安装配置&#xff09;-CSDN博客 Nginx入门到精通三&#xff08;Nginx实例1&#xff1a;反向代理&a…

全球生成式AI 产品分析报告

全球生成式AI 产品研究报告 时代背景 全球进入AI驱动的生产革命&#xff0c;生成式技术是时代际遇。中美在生成式AI产业展开科技竞争&#xff0c;全栈组合拳拉锯发展。‍ 技术变革 Transformer架构优化模型泛化的训推能力与理解生成的内容能力。文本模态达高应用成熟度&…

OpenCV图像处理——获取穿过圆的直线与圆相交的两个点

在OpenCV中&#xff0c;没有直接的函数来计算直线与圆的交点&#xff0c;但可以通过数学方法来实现这一功能。以下是计算直线与圆交点的步骤&#xff0c;以及相应的C代码示例&#xff1a; 确定直线方程&#xff1a;使用直线上的两个点 P 1 ( x 1 , y 1 ) P1(x1, y1) P1(x1,y1)和…

旷野之间17 - 适合所有人的 Transformer

最初出现在著名论文《Attention is all your need》中&#xff0c;基于Transformer的架构已成为大多数成功的人工智能模型中必不可少的。 然而&#xff0c;许多用户甚至基于人工智能的产品的创造者可能不了解Transformer是什么或它是如何工作的。 嗯&#xff0c;阅读研究论文…

MVC之 IHttpModule管道模型《二》

》》》注意&#xff1a;在http请求的处理过程中&#xff0c;只能调用一个HttpHandler&#xff0c;但可以调用多个HttpModule。 HTTP Modules ASP.NET请求处理过程是基于管道模型的&#xff0c;这个管道模型是由多个HttpModule和HttpHandler组成&#xff0c;当请求到达HttpMod…

Linux 扩展硬盘容量

根分区的硬盘容量不够了需要添加容量 扩展硬盘容量前提是需要虚拟机关机才能进行以下操作 在虚拟中找到虚拟机设置 >> 点击硬盘 >> 选择扩展 >> 输入自已要扩展的大小 >> 确定 这些设置好之后&#xff0c;启动虚拟机 fdisk /dev/sda n p 三个回车…