新闻中心

如何在CSS初级项目中实现导航栏下划线动画_transition和width控制

2025-11-26
浏览次数:
返回列表
通过transition和width属性实现导航栏下划线动画,1. 用HTML构建导航结构,每个链接内含span作为下划线;2. CSS中设置underline初始width为0,添加transition过渡效果;3. hover时width设为100%,触发动画展开;4. 可选居中展开通过left:50%和translateX(-50%)实现,优化视觉效果。

如何在css初级项目中实现导航栏下划线动画_transition和width控制

在CSS初级项目中实现导航栏下划线动画,可以通过 transitionwidth 属性来控制鼠标悬停时的下划线展开效果。这种动画简洁美观,适合用在网页顶部导航菜单中,提升用户体验。

1. 基础结构:HTML 导航栏布局

先构建一个简单的水平导航菜单,每个菜单项包含文字和用于下划线的容器(可以是 span 或伪元素):

<n* class="n*bar">
  <a href="#" class="n*-link">首页<span class="underline"></span></a>
  <a href="#" class="n*-link">关于<span class="underline"></span></a>
  <a href="#" class="n*-link">服务<span class="underline"></span></a>
  <a href="#" class="n*-link">联系<span class="underline"></span></a>
</n*>

2. 样式设置:隐藏下划线并定义过渡

使用CSS设置初始状态,让下划线默认宽度为0,并添加 transition 实现平滑动画:

.n*bar {
  display: flex;
  gap: 40px;
  padding: 20px;
  justify-content: center;
}
<p>.n*-link {
text-decoration: none;
color: #333;
position: relative;
font-size: 16px;
}</p><p>.underline {
position: absolute;
bottom: -5px;
left: 0;
width: 0;
height: 2px;
background-color: #007acc;
transition: width 0.3s ease;
}</p>

3. 悬停效果:控制 width 展开

当鼠标悬停在链接上时,将下划线的 width 设置为100%,触发 transition 动画:

.n*-link:hover .underline {
  width: 100%;
}

这样当下划线从 0 扩展到 100% 时,就会有平滑的横向展开动画。

语鲸 语鲸

AI智能阅读辅助工具

语鲸 314 查看详情 语鲸

4. 可选优化:居中对齐或反向收缩

如果希望下划线从中部向两边展开,可以调整伪元素的定位方式:

.underline {
  left: 50%;
  transform: translateX(-50%);
  /* 其他样式不变 */
}
<p>.n*-link:hover .underline {
width: 100%;
}</p>

这样下划线会从中心向左右同时扩展,视觉效果更柔和。

基本上就这些。通过控制 width 配合 transition,就能轻松实现导航栏下划线动画。不复杂但容易忽略细节,比如定位方式和过渡时间的选择。多尝试不同的 easing 函数如 ease-in-out,可以让动画更有质感。

以上就是如何在CSS初级项目中实现导航栏下划线动画_transition和width控制的详细内容,更多请关注其它相关文章!


# 相关文章  # 大连定制网站建设收费  # 上海企业网站建设布局  # 什么是农行网站建设  # 一营销推广方案例子  # 百色快照seo优化  # 延庆区网站建设推广费用  # 安阳网络推广T 河南启博998做网站  # 酒店宣传与推广营销策略  # 义马机械网站建设  # 广州便宜网站建设  # 可以通过  # css  # 设为  # 就能  # 鼠标  # 不均匀  # 中不  # 如何在  # 可选  # 下划线  # 伪元素  # html 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: ExcelARRAYTOTEXT函数怎么自定义分隔符输出数组文本_ARRAYTOTEXT实现动态生成SQL语句  《燕云十六声》两周内达九百万玩家!位居畅销榜第五  抓大鹅解压小游戏 抓大鹅摸鱼解压入口  C++如何实现单例模式_C++设计模式之线程安全的单例写法  Composer中的^和~符号代表什么_精通Composer版本号语义化约束  火狐浏览器占用内存高卡顿怎么办 火狐浏览器性能优化设置技巧  Pandas DataFrame 高效批量赋值:告别循环与笛卡尔积误区  Golang如何实现Web接口签名验证_Golang Web接口签名校验开发方法  vivo浏览器怎么扫描二维码 vivo浏览器内置扫一扫功能使用方法  漫蛙网页登录入口 漫蛙漫画官方授权网址  12306选座怎么选到商务座_12306商务座选择与配置说明  QQ邮箱登录首页官网地址2026 QQ邮箱官方网页入口  夸克浏览器桌面版同步不了书签怎么处理 夸克浏览器跨设备同步异常解决方案  拼多多视频播放卡顿如何处理 拼多多视频播放优化技巧  PostgreSQL海量数据高效导入策略:Python与Django实践指南  Excel如何用迷你图显趋势_Excel用迷你图显趋势【趋势小图】  J*aScript中管理异步API调用:确保操作顺序与数据一致性  CKEditor 5 自定义构建在React应用中渲染失败的调试与解决  windows10怎么查看本机ip_windows10命令提示符ipconfig使用  UC浏览器网页版登录入口官网 电脑版网址入口  QQ网页版官方账号入口 QQ网页版网页版登录指南  Win10自动更新怎么关闭 Win10永久关闭系统更新的两种方法【终极版】  c++中的std::launder有什么实际用途_c++对象生命周期与指针优化  微信聊天记录怎么加密_微信聊天记录加密方法  163邮箱登录密码 163邮箱忘记密码找回  漫蛙manwa2最新登录网址_漫蛙manwa2手机网页版入口  Windows7怎么硬盘安装 Windows7提取ISO镜像到非系统盘并运行setup.exe实现硬盘直装【教程】  Golang如何实现状态模式管理对象状态_Golang State模式实现技巧  Django AJAX 文件上传教程:解决图片无法保存到模型的常见问题  消息称三星明年 2 月正式发布 HBM4,与 SK 海力士同台竞技  淘宝支付提示失败如何解决 淘宝支付流程优化方法  58动漫网在线官方网 58动漫网正版动漫入口网址  小红书商家版怎样在笔记嵌入商品卡路径_小红书商家版在笔记嵌入商品卡路径【挂载教程】  抖音网页版平台入口 抖音网页版官网在线访问教程  必由学官方网站入口 必由学学生教师共用登录通道  Win10磁盘清理工具在哪 Win10打开并使用磁盘清理【教程】  qq游戏网页版直接玩_qq游戏免下载快速入口  CSS实现侧边栏导航项全宽圆角悬停背景效果  Golang如何测试channel通信行为_Golang channel通信测试与分析方法  Android Studio计算器C键功能异常排查与修复教程  快速CSGO开箱网站指南 CSGO开箱平台推荐  支付宝碰一碰设备是REDMI手机吗 博主拆机辟谣:处理器、内存都不一样  Golang如何通过reflect操作map_Golang reflect map操作与遍历技巧  C++如何实现一个智能指针_手动实现C++ shared_ptr的引用计数功能  python3时间如何用calendar输出?  一加 Nord 5 隐私权限异常_一加 Nord 5 系统安全优化  C++如何实现一个装饰器模式_C++设计模式之动态地给对象添加额外职责  正确连接J*aScript到HTML实现可点击图片与自定义事件处理  谷歌google账号注册详细步骤 谷歌账号注册官方教程  Google翻译怎么语音输入_Google翻译语音输入功能使用与设置方法 

搜索