web前端之不一样的下拉菜单、不选中第一个元素的样式效果、伪类排除第一个元素、符号选择器、hover、not、first、child

news2024/11/28 18:56:30

MENU

  • 效果图
  • html+css+JS
  • html+css


效果图

dropDownMenu1


dropDownMenu2


html+css+JS

html

<nav>
    <ul>
        <li class="navli">
            <h4>HTML5</h4>
            <ul class="ulson">
                <li class="lison">HTML5</li>
            </ul>
        </li>
        <li class="navli">
            <h4>CSS3</h4>
            <ul class="ulson">
                <li class="lison">CSS3</li>
                <li class="lison">CSS3</li>
                <li class="lison">CSS3</li>
            </ul>
        </li>
        <li class="navli">
            <h4>JS</h4>
            <ul class="ulson">
                <li class="lison">JS</li>
                <li class="lison">JS</li>
                <li class="lison">JS</li>
                <li class="lison">JS</li>
                <li class="lison">JS</li>
            </ul>
        </li>
        <li class="navli">
            <h4>JQUERY</h4>
            <ul class="ulson">
                <li class="lison">JQUERY</li>
                <li class="lison">JQUERY</li>
                <li class="lison">JQUERY</li>
                <li class="lison">JQUERY</li>
            </ul>
        </li>
        <li class="navli">
            <h4>VUE</h4>
            <ul class="ulson">
                <li class="lison">VUE</li>
                <li class="lison">VUE</li>
                <li class="lison">VUE</li>
            </ul>
        </li>
    </ul>
</nav>

JavaScript

init();

function init() {
    let aH = document.querySelectorAll('h4');
    let aLi = document.querySelectorAll('.lison');
    let anavLi = document.querySelectorAll('.navli');
    let aUl = document.querySelectorAll('.ulson');

    changeColor(aH);
    changeColor(aLi);
    handleLi(anavLi, aUl);

    function handleLi(arr, list) {
        for (let i = 0; i < arr.length; i++) {
            arr[i].onmouseover = () => {
                list[i].style.display = 'block';
            }
            arr[i].onmouseout = () => {
                list[i].style.display = 'none';
            }
        }
    }

    function changeColor(arr) {
        for (let i = 0; i < arr.length; i++) {
            arr[i].onmouseover = function () {
                this.style.backgroundColor = '#ff0000';
            }
            arr[i].onmouseout = function () {
                this.style.backgroundColor = 'transparent';
            }
        }
    }
}

style

* {
    margin: 0;
    padding: 0;
}

body {
    background-color: #333333;
    color: #ffffff;
}

nav {
    width: 350px;
    height: 30px;
    line-height: 30px;
    margin: 50px auto;
    border-radius: 5px;
    box-shadow: 2px 5px 15px rgba(0, 0, 0, .7);
}


h4:hover {
    cursor: pointer;
    border-radius: 5px;
}

nav ul {
    width: 100%;
    list-style: none;
}

.navli {
    float: left;
    width: 70px;
    text-align: center;
    font-size: 14px;
}

.ulson {
    display: none;
    box-shadow: 2px 5px 15px rgba(0, 0, 0, .7);
    border-radius: 3px;
}

li:hover {
    border-radius: 3px;
}

.ulson li:not(:first-child) {
    border-top: 1px dashed #cccccc;
}

html+css

html

<ul class="navul">
    <li class="navli">
        <h4>HTML5</h4>
        <ul class="ulson">
            <li class="lison">HTML5</li>
        </ul>
    </li>
    <li class="navli">
        <h4>CSS3</h4>
        <ul class="ulson">
            <li class="lison">CSS3</li>
            <li class="lison">CSS3</li>
            <li class="lison">CSS3</li>
        </ul>
    </li>
    <li class="navli">
        <h4>JS</h4>
        <ul class="ulson">
            <li class="lison">JS</li>
            <li class="lison">JS</li>
            <li class="lison">JS</li>
            <li class="lison">JS</li>
            <li class="lison">JS</li>
        </ul>
    </li>
    <li class="navli">
        <h4>JQUERY</h4>
        <ul class="ulson">
            <li class="lison">JQUERY</li>
            <li class="lison">JQUERY</li>
            <li class="lison">JQUERY</li>
            <li class="lison">JQUERY</li>
        </ul>
    </li>
    <li class="navli">
        <h4>VUE</h4>
        <ul class="ulson">
            <li class="lison">VUE</li>
            <li class="lison">VUE</li>
            <li class="lison">VUE</li>
        </ul>
    </li>

    <div class="hk"></div>
</ul>

style

* {
    margin: 0;
    padding: 0;
    list-style: none;
}

body {
    width: 100vw;
    height: 100vh;
    display: flex;
    justify-content: center;
    background-color: #333333;
    color: #ffffff;
}

.navul {
    position: relative;
    width: 350px;
    height: 30px;
    line-height: 30px;
    display: flex;
    margin-top: 50px;
    border-radius: 5px;
    font-size: 14px;
    box-shadow: 2px 5px 15px rgba(0, 0, 0, .7);
}

.navli {
    width: 70px;
    text-align: center;
}

.navli:hover .ulson {
    display: block;
}

.ulson {
    display: none;
    box-shadow: 2px 5px 15px rgba(0, 0, 0, .7);
    border-radius: 5px;
}

.ulson li:not(:first-child) {
    border-top: 1px dashed #cccccc;
}

.lison:hover {
    background-color: rgba(100, 100, 130, .8);
    border-radius: 5px;
}

.hk {
    position: absolute;
    left: 0;
    width: 70px;
    height: 30px;
    background-color: rgba(100, 100, 130, .5);
    border-radius: 5px;
    z-index: -999;
    transition: .5s;
    display: none;
}

.navli:nth-child(1):hover~.hk {
    display: block;
    left: 0;
}

.navli:nth-child(2):hover~.hk {
    display: block;
    left: 70px;
}

.navli:nth-child(3):hover~.hk {
    display: block;
    left: 140px;
}

.navli:nth-child(4):hover~.hk {
    display: block;
    left: 210px;
}

.navli:nth-child(5):hover~.hk {
    display: block;
    left: 280px;
}

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

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

相关文章

论文解读—— 基于边缘梯度方向插值和 Zernike 矩的亚像素边缘检测

论文&#xff1a;《 Subpixel edge detection based on edge gradient directional interpolation and Zernike moment》 地址&#xff1a; http://www.dpi-proceedings.com/index.php/dtcse/article/view/24488 摘要 在本文中&#xff0c;我们提出了一种基于边缘梯度方向插值…

【双指针】算法例题

目录 二、双指针 25. 验证回文数 ① 26. 判断子序列 ① 27. 两数之和II - 输入有序数组 ② 28. 盛最多水的容器 ② 29. 三数之和 ② 二、双指针 25. 验证回文数 ① 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后&#xff0c;短语正着读和反着读都一…

奥特曼剧透GPT-5,将在高级推理功能上实现重大进步

奥特曼&#xff1a;“GPT-5的能力提升幅度将超乎人们的想象...” 自 Claude 3 发布以来&#xff0c;外界对 GPT-5 的期待越来越强。毕竟Claude 3已经全面超越了 GPT-4&#xff0c;成为迄今为止最强大模型。 而且距离 GPT-4 发布已经过去了整整一年时间&#xff0c;2023年3月1…

Nebula Graph-01-Nebula Graph简介和安装以及客户端连接

前言 NoSQL 数据库 图数据库并不是可以克服关系型数据库缺点的唯一替代方案。现在市面上还有很多非关系型数据库的产品&#xff0c;这些产品都可以叫做 NoSQL。NoSQL 一词最早于上世纪 90 年代末提出&#xff0c;可以解释为“非 SQL” 或“不仅是 SQL”&#xff0c;具体解释要…

服务器版本命令查看

1、# uname &#xff0d;a &#xff08;Linux查看版本当前操作系统内核信息&#xff09; 2、# cat /proc/version &#xff08;Linux查看当前操作系统版本信息&#xff09; 3、# cat /etc/issue 或 cat /etc/redhat-release &#xff08;Linux查看版本当前操作系统发行版信息&…

python车辆故障管理系统的设计与实现flask-django-nodejs-php

随着时代的进步&#xff0c;信息科技的不断发展。人类的不断研究、开发&#xff0c;互联网时代已经来临。人们消费的水平也在不断的提高&#xff0c;车辆维修从无到有&#xff0c;慢慢的步入人们的生活&#xff0c;快速的发展&#xff0c;成为新型的消费。网络发展前景无限&…

计算机视觉综述

历史发展 计算机视觉是通过分析、研究让计算机的智能化达到类似人类的双眼“看”的一门科学。更直接地说&#xff0c;计算机视觉就是让摄像机、电脑这些科技设备成为计算机的“眼睛”&#xff0c;让其可以拥有人类的双眼所具有的分割、分类、识别、跟踪、判别决策等功能。   …

卷积神经网络五:GoogleNet

在2014年的ImageNet图像识别大赛中&#xff0c;一个名叫GoogleNet的网络架构大放异彩。GoogleNet使用了一种叫作Inception的结构。其实GoogleNet本质上就是一种Inception网络&#xff0c;而一个Inception网络又是由多个Inception模块和少量的汇聚层堆叠而成。 Inception模块 …

HTML_CSS学习:超链接、列表、表格、表格常用属性

一、超链接_唤起指定应用 1.相关代码 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>超链接_唤起指定应用</title> </head> <body><a href"tel:10010">电话联…

docker入门(四)—— docker常用命令详解

docker 常用命令 基本命令 # 查看 docker 版本 docker version # 查看一些 docker 的详细信息 docker info 帮助命令&#xff08;–help&#xff09;&#xff0c;linux必须要会看帮助文档 docker --help[rootiZbp15293q8kgzhur7n6kvZ /]# docker --helpUsage: docker [OPTI…

dockerfile文件编写

文章目录 dockerfile是什么Dockerfile常用指令1. FROM2. MAINTAINER3. WORKDIR4.COPY5.ADD6.ENV7.RUN8.CMD9.ENTRYPOINT dockerfile是什么 Dockerfile是一个文本配置文件&#xff0c;用于自动化构建Docker镜像。 Dockerfile是由一系列命令和参数构成的脚本&#xff0c;它指导D…

在Ubuntu20.04(原为cuda12.0, gcc9.几版本和g++9.几版本)下先安装cuda9.0后再配置gcc-5环境

因为自己对Linux相关操作不是很熟悉&#xff0c;所以因为之前的代码报错之后决定要安cuda9.0&#xff0c;于是先安装了cuda9.0。里面用到的一些链接&#xff0c;链接文件夹时直接去copy它的路径&#xff0c;就不那么容易错了。 今天运行程序之后发现gcc环境不太匹配cuda9.0&am…

杰发科技AC7801——Keil编译的Hex大小如何计算

编译结果是Keil里面前三个数据的总和&#xff1a; 即CodeRoDataRWData的总和。 通过ATCLinkTool工具查看内存&#xff0c;发现最后一个字节正好是5328 注意读内存数据时候需要强转成32位&#xff0c;加1000的 增加1024的地址只需要加256即可

【Unity投屏总结】投屏方案总结

【背景】 想方便自己在VR中工作&#xff0c;打算做一个能够挂多个屏幕的远程控制VR桌面。研究下来发现细分场景有很多&#xff0c;有点鱼和熊掌不可兼得的意味&#xff0c;细分如下。 【投屏场景与解决方案】 希望多人能够同时观看我的屏幕&#xff0c;也就是一屏投多屏&…

备战蓝桥杯---0/1Trie模板

最近学校作业有点多被迫参加学校的仪仗队当帕鲁&#xff0c;有许多题还没有补&#xff08;尤其是牛客&#xff0c;寒假时没有怎么管&#xff0c;现在后悔了qaq),蓝桥杯也快来了&#xff0c;一下子事情多了起来&#xff0c;反而不知道要看什么了&#xff0c;在此先立个flag----蓝…

C#,图论与图算法,计算无向连通图中长度为n环的算法与源代码

1 无向连通图中长度为n环 给定一个无向连通图和一个数n,计算图中长度为n的环的总数。长度为n的循环仅表示该循环包含n个顶点和n条边。我们必须统计存在的所有这样的环。 为了解决这个问题,可以有效地使用DFS(深度优先搜索)。使用DFS,我们可以找到特定源(或起点)的长度…

Acrobat Pro DC 2023:PDF编辑与管理的全新体验

Acrobat Pro DC 2023是一款功能强大且全面的PDF编辑和管理软件&#xff0c;旨在为用户提供卓越的PDF处理体验。以下是关于Acrobat Pro DC 2023软件功能特色的详细介绍&#xff1a; PDF编辑和管理&#xff1a;Acrobat Pro DC 2023拥有强大的PDF编辑功能&#xff0c;可以对PDF文…

Grok-1:参数量最大的开源大语言模型

Grok-1&#xff1a;参数量最大的开源大语言模型 项目简介 由马斯克领衔的大型模型企业 xAI 正式公布了一项重要动作&#xff1a;开源了一个拥有 3140 亿参数的混合专家模型&#xff08;MoE&#xff09;「Grok-1」&#xff0c;连同其模型权重和网络架构一并公开。 此举将 Gro…

南京大学AI考研,宣布改考408!

官网还没通知 附上南大与同层次学校近四年的分数线对比&#xff0c;整体很难 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 如果确定要冲南大的话建议提早调整自己的复习路线&…

Java 学习和实践笔记(41):API 文档以及String类的常用方法

JDK 8用到的全部类的文档在这里下载&#xff1a; Java Development Kit 8 文档 | Oracle 中国