前端小案例——动态导航栏文字(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

谢谢各位的支持~~

相关推荐
Jinuss12 分钟前
Vue3源码reactivity响应式篇之computed计算属性
前端·vue3
落日沉溺于海12 分钟前
React From表单使用Formik和yup进行校验
开发语言·前端·javascript
知识分享小能手14 分钟前
React学习教程,从入门到精通, React 新创建组件语法知识点及案例代码(11)
前端·javascript·学习·react.js·架构·前端框架·react
会豪17 分钟前
工业仿真(simulation)--前端(五)--标尺,刻度尺
前端
会豪18 分钟前
工业仿真(simulation)--前端(四)--画布编辑(2)
前端
an__ya__20 分钟前
Vue数据响应式reactive
前端·javascript·vue.js
苦逼的搬砖工23 分钟前
Flutter UI Components:闲来无事,设计整理了这几年来使用的UI组件库
前端·flutter
想买Rolex和Supra的凯美瑞车主25 分钟前
Taro + Vite 开发中 fs.allow 配置问题分析与解决
前端
ruanCat26 分钟前
使用 vite 的 base 命令行参数来解决项目部署在 github page 的路径问题
前端·github
Codebee31 分钟前
使用Qoder 改造前端UI/UE升级改造实践:从传统界面到现代化体验的华丽蜕变
前端·人工智能