返回顶部
首页 > 资讯 > 精选 >使用CSS怎么实现导航栏下划线跟随效果
  • 298
分享到

使用CSS怎么实现导航栏下划线跟随效果

2023-06-08 05:06:15 298人浏览 薄情痞子
摘要

使用CSS怎么实现导航栏下划线跟随效果?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。假设 html 结构如下:<ul>  <

使用CSS怎么实现导航栏下划线跟随效果?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

假设 html 结构如下:

<ul>  <li>不可思议的CSS</li>  <li>导航栏</li>  <li>光标小下划线跟随</li>  <li>PURE CSS</li>  <li>Nav Underline</li></ul>
  • 导航栏目的 li 的宽度是不固定的

  • 当从导航的左侧 li 移向右侧 li ,下划线从左往右移动。同理,当从导航的右侧 li 移向左侧 li ,下划线从右往左移动。

实现需求

第一眼看到这个效果,感觉这个跟随动画,仅靠 CSS 是不可能完成的。

如果想只用 CSS 实现,只能另辟蹊径,使用一些讨巧的方法。

好,下面就借助一些奇技淫巧,使用 CSS 一步一步完成这个效果。分析一下难点:

宽度不固定

第一个难点, li 的宽度是不固定的。所以,我们可能需要从 li 本身的宽度上做文章。

既然每个 li 的宽度不一定,那么它对应的下划线的长度,肯定是是要和他本身相适应的。自然而然,我们就会想到使用它的 border-bottom

li {    border-bottom: 2pxsolid#000;}

那么,可能现在是这样子的(li 之间是相连在一起的,li 间的间隙使用 padding 产生):

使用CSS怎么实现导航栏下划线跟随效果

默认隐藏,动画效果

当然,这里一开始都是没有下划线的,所以我们可能需要把他们给隐藏起来。

li {    border-bottom: 0pxsolid#000;}

推翻重来,借助伪元素

这样好像不行,因为隐藏之后,hover li 的时候,需要下划线动画,而 li 本身肯定是不能移动的。所以,我们考虑借助伪元素。将下划线作用到每个 li 的伪元素之上。

li::before {    content: "";    position: absolute;    top: 0;    left: 0;    width: 100%;    height: 100%;    border-bottom: 2pxsolid#000;}

下面考虑第一步的动画,hover 的时候,下划线要从一侧运动展开。所以,我们利用绝对定位,将 li 的伪元素的宽度设置为0,在 hover 的时候,宽度从 width: 0 -> width: 100% ,CSS 如下:

li::before {    content: "";    position: absolute;    top: 0;    left: 0;    width: 0;    height: 100%;    border-bottom: 2pxsolid#000;}li:hover::before {    width: 100%;}

得到,如下效果:

使用CSS怎么实现导航栏下划线跟随效果

左移左出,右移右出

OK,感觉离成功近了一步。现在还剩下一个最难的问题:

如何让线条跟随光标的移动动作,实现当从导航的左侧 li 移向右侧 li ,下划线从左往右移动。同理,当从导航的右侧 li 移向左侧 li ,下划线从右往左移动。

我们仔细看看,现在的效果:

使用CSS怎么实现导航栏下划线跟随效果

当从第一个 li 切换到第二个 li 的时候,第一个 li 下划线收回的方向不正确。所以,可以能我们需要将下划线的初始位置位移一下,设置为 left: 100% ,这样每次下划线收回的时候,第一个 li 就正确了:

li::before {    content: "";    position: absolute;    top: 0;    left: 100%;    width: 0;    height: 100%;    border-bottom: 2pxsolid#000;}li:hover::before {    left: 0;    width: 100%;}

看看效果:

使用CSS怎么实现导航栏下划线跟随效果

额,仔细对比两张图,第二种效果其实是捡了芝麻丢了西瓜。第一个 li 的方向是正确了,但是第二个 li 下划线的移动方向又错误了。

使用CSS怎么实现导航栏下划线跟随效果

神奇的 ~ 选择符

所以,我们迫切需要一种方法,能够不改变当前 hover 的 li 的下划线移动方式却能改变它下一个 li 的下划线的移动方式(好绕口)。

没错了,这里我们可以借助 ~ 选择符,完成这个艰难的使命,也是这个例子中,最最重要的一环。

对于当前 hover 的 li ,其对应伪元素的下划线的定位是 left: 100% ,而对于 li:hover ~ li::before ,它们的定位是 left: 0 。CSS 代码大致如下:

li::before {    content: "";    position: absolute;    top: 0;    left: 100%;    width: 0;    height: 100%;    border-bottom: 2pxsolid#000;    transition: 0.2salllinear;}li:hover::before {    width: 100%;    left: 0;}li:hover~li::before {    left: 0;}

至此,我们想要的效果就实现拉!撒花。看看:

使用CSS怎么实现导航栏下划线跟随效果

效果不错,就是有点僵硬,我们可以 适当改变缓动函数 以及加上一个 动画延迟 ,就可以实现上述开头里的那个效果了。当然,这些都是锦上添花的点缀。

完整的DEMO可以戳这里: CodePen --Demo

最后

本方法 最大的瑕疵 在于一开始进入第一个 li 的时候,线条只能是从右往左,除此之外,都能很好的实现跟随效果。

许久没更新了,最近沉迷学习区块链相关技术,譬如以太坊编程,智能合约的编写巴拉巴拉的。后面还是会把更多精力放在本行,多出一些前端文章,CSS 的魅力还是无法抵挡的。

更多精彩 CSS 技术文章汇总在我的 GitHub -- iCSS ,持续更新,欢迎点个 star 订阅收藏。

css的选择器有哪些

css的选择器可以分为三大类,即id选择器、class选择器、标签选择器。它们之间可以有多种组合,有后代选择器、子选择器、伪类选择器、通用选择器、群组选择器等等

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网精选频道,感谢您对编程网的支持。

--结束END--

本文标题: 使用CSS怎么实现导航栏下划线跟随效果

本文链接: https://lsjlt.com/news/252007.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 使用CSS怎么实现导航栏下划线跟随效果
    使用CSS怎么实现导航栏下划线跟随效果?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。假设 HTML 结构如下:<ul>  <...
    99+
    2023-06-08
  • 纯CSS怎么实现导航栏下划线跟随效果
    小编给大家分享一下纯CSS怎么实现导航栏下划线跟随效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!效果:代码:html:<ul> &nbs...
    99+
    2023-06-08
  • js怎么实现导航栏上下动画效果
    这篇“js怎么实现导航栏上下动画效果”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“js怎么实现导航栏上下动画效果”文章吧。o...
    99+
    2023-07-02
  • js实现导航栏上下动画效果
    本文实例为大家分享了js实现导航栏上下动画的具体代码,供大家参考,具体内容如下 obj.currentStyle[name] 与 getComputedStyle(obj,false...
    99+
    2024-04-02
  • 怎么用CSS实现漂亮的下拉导航效果
    本篇内容介绍了“怎么用CSS实现漂亮的下拉导航效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!这是一款纯...
    99+
    2024-04-02
  • CSS怎样实现导航效果
    这篇文章主要介绍CSS怎样实现导航效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! html <div <ul> <li><a href=...
    99+
    2024-04-02
  • CSS导航栏和CSS下拉菜单怎么实现
    这篇文章主要介绍“CSS导航栏和CSS下拉菜单怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“CSS导航栏和CSS下拉菜单怎么实现”文章能帮助大家解决问题。导...
    99+
    2024-04-02
  • jquery如何实现鼠标悬停导航下划线滑出效果
    这篇文章主要介绍jquery如何实现鼠标悬停导航下划线滑出效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下<!doctype html> <...
    99+
    2024-04-02
  • 如何使用html+css+js实现导航栏滚动渐变效果
    本篇内容主要讲解“如何使用html+css+js实现导航栏滚动渐变效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用html+css+js实现导航栏滚动渐变效果”吧!实现:1.定义导航栏...
    99+
    2023-07-05
  • 如何通过纯CSS实现导航栏的下拉菜单效果
    如何通过纯CSS实现导航栏的下拉菜单效果在Web设计中,导航栏是一个非常常见的组件,而下拉菜单则是导航栏中的一种常见效果。在本文中,我们将学习如何仅使用CSS来实现导航栏的下拉菜单效果,并提供详细的代码示例。首先,我们需要一个基本的导航栏结...
    99+
    2023-10-27
    导航栏 纯CSS 下拉菜单效果
  • 使用CSS怎么实现一个导航栏和下拉菜单
    这篇文章将为大家详细讲解有关使用CSS怎么实现一个导航栏和下拉菜单,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、CSS导航栏(1)导航栏的作用熟练使用导航栏,对于网站排版非常重要,使用C...
    99+
    2023-06-08
  • css文字划线效果怎么实现
    这篇文章主要介绍“css文字划线效果怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“css文字划线效果怎么实现”文章能帮助大家解决问题。 一、文字中划线CS...
    99+
    2024-04-02
  • 怎么用HTML+JavaScript实现筋斗云导航栏效果
    这篇文章主要介绍了怎么用HTML+JavaScript实现筋斗云导航栏效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用HTML+JavaScript实现筋斗云导航栏效果文章都会有所收获,下面我们一起来看...
    99+
    2023-06-29
  • css怎么实现动态导航栏
    本篇内容介绍了“css怎么实现动态导航栏 ”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!方案:使用chec...
    99+
    2024-04-02
  • css怎么实现导航栏居中
    这篇“css怎么实现导航栏居中”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“css怎么实现导航栏居中”文章吧。首先,在页面中...
    99+
    2023-07-04
  • 纯CSS实现响应式导航栏的下拉框效果的实现步骤
    在这个数字化时代,网站已经成为人们获取信息和交流的主要渠道。为了提供更好的用户体验,响应式设计在网站开发中变得越来越流行。在这篇文章中,我们将学习如何使用纯CSS实现响应式导航栏的下拉框效果。步骤一:HTML 结构首先,我们需要创建一个基本...
    99+
    2023-10-21
    响应式:Responsive 导航栏:Navbar 下拉框:Dropdown
  • 怎么使用纯CSS实现圆形导航菜单效果
    小编给大家分享一下怎么使用纯CSS实现圆形导航菜单效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!直接上代码css:body {    background-color:...
    99+
    2023-06-14
  • 怎么用纯CSS实现菜单、导航栏的3D翻转动画效果
    这篇文章主要讲解了“怎么用纯CSS实现菜单、导航栏的3D翻转动画效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用纯CSS实现菜单、导航栏的3D翻转动...
    99+
    2024-04-02
  • css怎么实现横向导航和竖向导航栏
    小编给大家分享一下css怎么实现横向导航和竖向导航栏,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!   一、竖向导航   &...
    99+
    2024-04-02
  • 怎么用巧用CSS实现鼠标跟随3D旋转效果
    这篇文章主要讲解了“怎么用巧用CSS实现鼠标跟随3D旋转效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用巧用CSS实现鼠标跟随3D旋转效果”吧!纯 ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作