当前位置: 首页 > article >正文

前端小案例——动态导航栏文字(HTML + CSS, 附源码)

一、前言

实现功能:

        这案例是一个具有动态效果的导航栏。导航栏的样式设置了一个灰色的背景,并使用flex布局在水平方向上平均分配了四个选项。每个选项都是一个li元素,包含一个文本和一个横向的下划线。

        当鼠标悬停在选项上时,选项的文本颜色会变为粉红色,并且下划线会从中间向两边展开,呈现出一种动态的效果。

        这种导航栏可以用于网页或应用程序中,提供简洁且有吸引力的导航选项。

实现逻辑:

  1. 创建一个导航栏容器div,并设置其类名设置为.nav。
  2. 在导航栏容器中创建四个选项,即li元素,每个选项包含一个文本和一个下划线。
  3. 为每个选项设置样式,包括设置宽度、高度、文本对齐方式、行高和相对定位。
  4. 为每个选项的下划线i元素设置样式,包括设置宽度为0%(初始状态下不可见)、高度为3px、背景色、绝对定位和过渡效果。
  5. 当鼠标悬停在选项上时,为选项设置:hover伪类样式,改变文本颜色为粉红色。
  6. 当鼠标悬停在选项上时,为选项下划线i元素设置:hover伪类样式,将下划线从中间向两边展开,即将left属性设置为0,将宽度设置为100%。
  7. 设置过渡效果,使下划线的展开效果具有动画效果。

二、项目运行效果

三、全部代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>动态导航栏文字</title>
    <style>
        *{
            padding: 0;
            margin: 0;
            list-style: none;
        }
        .nav{
            display: flex;
            width: 500px;
            height: 100px;
            margin: 100px auto;
            justify-content: space-around;
            align-items: center;
            background-color: rgb(205, 223, 248);
            border-radius: 10px;
        }
        .nav li{
            position: relative;
            width: 100px;
            height: 50px;
            text-align: center;
            line-height: 50px;
            transition:.5s all;
            cursor: pointer;
        }
        .nav li i{
            display:block; 
            width: 0%;
            height: 3px;
            background-color: rgb(255, 0, 119);
            position: absolute;
            bottom: 0px;
            left: 50%;
            transition:.5s all;
        }
        .nav li:hover {
            color: rgb(255, 0, 119);
            letter-spacing: 4px;
        }
        .nav :hover i{
            left:0; 
            width:100%;
        }
    </style>
</head>
<body>
    <div class="nav">
        <li>1111<i></i></li>
        <li>2222<i></i></li>
        <li>3333<i></i></li>
        <li>4444<i></i></li>
    </div>
</body>
</html>

四、答疑解惑

        这是一个非常适合前端入门练习的小案例,各位小伙伴可以自行更改样式和内容,如果大家运行时出现问题或代码有什么不懂的地方都可以随时评论留言或联系博主QQ。

        还多请各位小伙伴多多点赞支持,你们的支持是我最大的动力。

博主QQ:1196094293

谢谢各位的支持~~


http://www.kler.cn/news/234073.html

相关文章:

  • C# CAD交互界面-自定义面板集-添加快捷命令(五)
  • 机器学习2--逻辑回归(案列)
  • 大数据Flume--入门
  • C 语言学习七:指针
  • 【MySQL题】——基础概念论述(二)
  • 基于YOLOv8算法的照片角度分类项目实践
  • 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Web组件
  • 【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏10(附项目源码)
  • 【力扣 51】N 皇后(回溯+剪枝+深度优先搜索)
  • 算法学习——LeetCode力扣二叉树篇2
  • 2024.1.31力扣每日一题——找出不同元素数目差数组
  • JAVA面试题11
  • 基于PSO粒子群优化的PID控制器参数整定算法matlab仿真
  • 算法练习-四数之和(思路+流程图+代码)
  • 【linux系统体验】-archlinux折腾日记
  • Java 内存区域介绍
  • 如何为Kafka加上账号密码(二)
  • Android---Jetpack Compose学习002
  • BUUCTF-Real-[Tomcat]CVE-2017-12615
  • 命令行随笔
  • 《计算思维导论》笔记:10.4 关系模型-关系运算
  • JRT监听程序
  • 爬虫练习——动态网页的爬取(股票和百度翻译)
  • Jetpack Compose常用工具包推荐
  • WordPress函数wptexturize的介绍及用法示例,字符串替换为HTML实体
  • HTML5+CSS3+移动web——HTML 基础
  • 计算机网络期末复习要点(谢希仁第8版)抱佛脚通用
  • CodeWave学习笔记--博物馆预约管理系统
  • [C#] 如何对列表,字典等进行排序?
  • 4、解构三个重要的Pipeline(SD-Inpainting, ControlNet, AnimateDiff) [代码级手把手解析diffusers库]