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

一、前言

实现功能:

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

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

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

实现逻辑:

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

二、项目运行效果

三、全部代码

html 复制代码
<!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

谢谢各位的支持~~

相关推荐
风流 少年几秒前
Python Web框架:FastAPI
前端·python·fastapi
GISer_Jing9 分钟前
AI时代面试新常态——从“会用工具”到“深挖原理”的跨越
前端·人工智能·ai编程
IT_陈寒19 分钟前
React的useEffect把我坑惨了,这些闭包陷阱真要命
前端·人工智能·后端
前端之虎陈随易31 分钟前
有生之年系列,Nodejs进程管理pm2 v7.0发布
前端·typescript·npm·node.js
ayqy贾杰38 分钟前
Cursor SDK发布!开发者可直接搬走其内核
前端·vue.js·面试
椰猫子1 小时前
SpringMVC(SpringMVC简介、请求与响应(请求映射路径、请求参数、日期类型参数传递、响应json数据))
java·前端·数据库
love530love1 小时前
如何在 Google Chrome 中强制开启 Gemini AI 侧边栏(完整图文教程)
前端·人工智能·chrome·windows
光影少年1 小时前
对typescript开发框架的理解?
前端·javascript·typescript
跨境数据猎手1 小时前
反向海淘代购系统:1688 / 淘宝自动代采 + API 同步(附可用源码)
前端
lUie INGA1 小时前
Go-Gin Web 框架完整教程
前端·golang·gin