首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将链接下划线动画到链接的宽度,而不是ul?

要将链接下划线动画到链接的宽度,而不是ul,可以通过CSS的伪元素和过渡效果来实现。

首先,给链接添加一个父元素,例如一个<span>标签,用于包裹链接文本。然后,使用CSS的伪元素::after来创建一个下划线,并设置其初始状态为与链接文本宽度相同。

接下来,通过CSS的过渡效果来实现下划线的动画效果。当鼠标悬停在链接上时,通过改变伪元素的宽度,将下划线动画到链接的宽度。

以下是一个示例的CSS代码:

代码语言:txt
复制
a {
  position: relative;
  display: inline-block;
  text-decoration: none;
}

a span {
  position: relative;
  display: inline-block;
}

a span::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: #000; /* 下划线颜色 */
  transform: scaleX(0); /* 初始状态下划线宽度为0 */
  transition: transform 0.3s ease; /* 过渡效果 */
}

a:hover span::after {
  transform: scaleX(1); /* 鼠标悬停时下划线宽度为链接宽度 */
}

在上述代码中,我们使用了<a>标签作为链接,使用<span>标签作为链接文本的父元素。通过设置position: relativedisplay: inline-block来保证链接和文本在同一行显示。

然后,使用::after伪元素来创建下划线,并设置其初始状态为与链接文本宽度相同。通过设置position: absolutebottom: 0left: 0将下划线定位在链接文本的底部。

接着,通过设置transform: scaleX(0)将下划线的宽度初始化为0,使用transition属性设置过渡效果,使下划线的宽度在0.3秒内平滑变化。

最后,通过设置a:hover span::after选择器,当鼠标悬停在链接上时,将下划线的宽度通过transform: scaleX(1)动画到链接的宽度。

这样,当鼠标悬停在链接上时,下划线将从链接文本的起始位置逐渐扩展到链接的宽度,实现了将下划线动画到链接的宽度的效果。

请注意,以上示例中的代码只是一种实现方式,具体的实现方式可能因项目需求和具体情况而有所不同。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 03.HTML头部CSS图像表格列表

    尝试一下 - 实例 HTML使用样式 本例演示如何使用添加到 部分样式信息对 HTML 进行格式化。 本例演示如何使用样式属性做一个没有下划线链接。...如何使用 style 属性制作一个没有下划线链接链接到一个外部样式表 本例演示如何 标签链接到一个外部样式表。...: 实例 现在通常使用font-family(字体),color(颜色),和font-size(字体大小)属性来定义文本样式,不是使用标签。...此时,浏览器将显示这个替代性文本不是图像。为页面上图像都加上替换文本属性是个好习惯,这样有助于更好显示信息,并且对于那些使用纯文本浏览器的人来说是非常有用。...浮动图像 本例演示如何使图片浮动至段落左边或右边。 设置图像链接 本例演示如何将图像作为一个链接使用。 创建图像映射 本例显示如何创建带有可供点击区域图像地图。其中每个区域都是一个超级链接

    19.4K101

    【CSS】828- 纯CSS导航栏下划线跟随效果

    定义需求 我们定义一下简单规则,要求如下: 不可思议CSS 导航栏 光标小下划线跟随 PURE CSS...Nav Underline 导航栏目的 li 宽度是不固定 当从导航左侧 li 移向右侧 li,下划线从左往右移动。...所以,我们可能需要从 li 本身宽度上做文章。既然每个 li 宽度不一定,那么它对应下划线长度,肯定是是要和他本身相适应。自然而然,我们就会想到使用它 border-bottom 。...li { border-bottom: 0px solid #000;} 推翻重来,借助伪元素 这样好像不行,因为隐藏之后,hover li 时候,需要下划线动画, li 本身肯定是不能移动。...效果不错,就是有点僵硬,我们可以适当改变缓函数以及加上一个动画延迟,就可以实现上述开头里那个效果了。当然,这些都是锦上添花点缀。

    2.9K20

    不可思议纯CSS导航栏下划线跟随效果

    定义需求 我们定义一下简单规则,要求如下: 假设 HTML 结构如下: 不可思议CSS 导航栏 光标小下划线跟随 PURE CSS Nav Underline 导航栏目的 li 宽度是不固定 当从导航左侧 li 移向右侧 li,下划线从左往右移动。...所以,我们可能需要从 li 本身宽度上做文章。 既然每个 li 宽度不一定,那么它对应下划线长度,肯定是是要和他本身相适应。自然而然,我们就会想到使用它 border-bottom 。...li { border-bottom: 0px solid #000; } 推翻重来,借助伪元素 这样好像不行,因为隐藏之后,hover li 时候,需要下划线动画, li 本身肯定是不能移动...underlineawhere 效果不错,就是有点僵硬,我们可以适当改变缓函数以及加上一个动画延迟,就可以实现上述开头里那个效果了。当然,这些都是锦上添花点缀。

    1.6K20

    不可思议纯CSS导航栏下划线跟随效果

    定义需求 我们定义一下简单规则,要求如下: 假设 HTML 结构如下: 不可思议CSS 导航栏 光标小下划线跟随 PURE CSS Nav Underline 导航栏目的 li 宽度是不固定 当从导航左侧 li 移向右侧 li,下划线从左往右移动。...所以,我们可能需要从 li 本身宽度上做文章。 既然每个 li 宽度不一定,那么它对应下划线长度,肯定是是要和他本身相适应。自然而然,我们就会想到使用它 border-bottom 。...li { border-bottom: 0px solid #000; } 推翻重来,借助伪元素 这样好像不行,因为隐藏之后,hover li 时候,需要下划线动画, li 本身肯定是不能移动...看看: 效果不错,就是有点僵硬,我们可以适当改变缓函数以及加上一个动画延迟,就可以实现上述开头里那个效果了。当然,这些都是锦上添花点缀。

    2.1K30

    不可思议纯CSS导航栏下划线跟随效果

    定义需求 我们定义一下简单规则,要求如下: 假设 HTML 结构如下: 不可思议CSS 导航栏 光标小下划线跟随 PURE CSS Nav Underline 导航栏目的 li 宽度是不固定 当从导航左侧 li 移向右侧 li,下划线从左往右移动。...所以,我们可能需要从 li 本身宽度上做文章。 既然每个 li 宽度不一定,那么它对应下划线长度,肯定是是要和他本身相适应。自然而然,我们就会想到使用它 border-bottom 。...li { border-bottom: 0px solid #000; } 推翻重来,借助伪元素 这样好像不行,因为隐藏之后,hover li 时候,需要下划线动画, li 本身肯定是不能移动...看看: 效果不错,就是有点僵硬,我们可以适当改变缓函数以及加上一个动画延迟,就可以实现上述开头里那个效果了。当然,这些都是锦上添花点缀。

    1.7K30

    HTML导航栏制作

    > 注释:加上 target=”_blank” 的话,点击有链接文字,就会新打开一个标签页,若不加,则在本页面上直接打开链接网页。...solid seagreen; color: seagreen; } 注释: text-decoration : none 用于清除 a 标签下划线; list-style : none...用于清除 li 前面的小圆点; padding :0 30px 因为导航栏里文字并不是字数相等,所以为了美观,我们不去直接设置 盒子宽度,而是用一个内边距给它撑开; float...:left 一浮都浮,使得所有盒子在一行显示; .nav ul li a: hover 用来设置鼠标滑过效果。....search{ margin-left: 10px; width: 340px;/*宽度要大于两个子盒子宽度和,因为,行内块元素自己中间就有边距*/ height: 50px

    4.8K40

    前端成神之路-CSS文字文本样式

    属性 解释 left 左对齐(默认值) right 右对齐 center 居中对齐 注意: 是让盒子里面的内容水平居中, 不是让盒子居中对齐 2.3 line-height:行间距 作用...、或相对于浏览器窗口宽度百分比%,允许使用负值, 建议使用em作为设置单位。...1em 就是一个字宽度 如果是汉字段落, 1em 就是一个汉字宽度 p { /*行间距*/ line-height: 25px; /*首行缩进2个字 em...定义标准文本。 取消下划线(最常用) underline 定义文本下一条线。下划线 也是我们链接自带(常用) overline 定义文本上一条线。...,可以用 > 比如 ul > li就可以了 如果有兄弟关系标签,用 + 就可以了 比如 div+p 如果生成带有类名或者id名字, 直接写 .demo 或者 #two tab 键就可以了

    7.1K10

    魔改笔记五:从头开始,手搓一个关于页面

    碎碎念 关于页面,就相当于一个站点门户,只有这里才能让访客了解站长,原本关于页面丑简直没法看,干巴巴文字,一点效都没有,上网查找了一些相关教程,但是都没有满意,要么就是太复杂,要么就是太花哨...,不是说不好看,而是不适合我站点。...现在,虽然不能说精通,但是好歹也算学过一点点魔改知识了,那么我们就尝试着自己搞搞,看看能不能整一个心仪出来吧!...样式预览 可以直接去我站点进行查看: 下面是效果预览图: 白天夜间卡片链接效窄屏适配 效果对比 虽然也说不上多么好看吧,但是至少是我喜欢类型就可以啦,简单大气,并且按照我想法加了一些效。...,变换什么,就需要添加对应属性,这里我们主要变动两点,鼠标移入时,图片变大,宽度变宽,对应文字宽度变低,如果文字在左边,为了同步效,左边框减小,所以这里我们使用到有width和margin-left

    11910

    【CSS】浮动 ⑤ ( 浮动布局案例 - 导航栏模块 | 核心要点说明 | 网页默认样式 | 盒子模型居中显示 | 设置渐变背景 | 设置列表浮动 | 设置文本水平垂直居中 | 设置链接文本样式 )

    设置总体背景 : 为 body 标签设置背景颜色或图片即可 图片自适应填充 : 设置 标签内容宽度为 100% 即可 , 目的是令图片自适应缩放 ; /* 清除标签默认内外边距 *...链接一般需要设置 字体大小 , 颜色 , 取消文本装饰 ( 链接下划线 ) ; /* 设置字体大小 */ font-size: 12px; /* 取消链接文字下划线 */..., 设置链接在鼠标经过时样式 ; /* 设置鼠标移动到链接样式 */ .nav ul li a:hover { /* 鼠标移动上去切换一个背景图片 */ background-image...li { /* 设置无序列表项浮动 这样就可以变为 行内块元素显示样式 */ float: left; } /* 设置无序列表项中 链接样式 */ .nav ul li...background: url(images/button1.jpg) no-repeat; /* 设置字体大小 */ font-size: 12px; /* 取消链接文字下划线

    2.4K20

    简单无序列表_无序列表怎么横排

    --在此制作一个无序列表--> 全部 初级 中级 高级 实现如下图所示简单无序列表,并为每个列表项添加超链接。...每个列表项宽度为50px,高度为30px,列表中文字在水平和垂直方向上均居中显示,超链接初始状态和访问后状态均为黑色无下划线,鼠标经过和点击时文字均为白色,无下划线,背景颜色为#BE3948。...现在写个这种水平样式,简直水水,so easy. li也可以直接加超链接,不用再加a标签了。鼠标滑过,我觉得完全可以先写li样式,再直接加li:hover样式就好了,一样效果。...fff;background-color:#be3948;display:block;} 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/167583.html原文链接

    60440

    html下划线 下移,css如何实现下划线滑动效果

    大家好,又见面了,我是你们朋友全栈君。 本文主要讲述两种下划线效效果,第一种悬停时X轴由内向外展开实现动画效果,第二种为左右自动展示,由左向右,或由右向左。...x轴由内向外展开 利用贝塞尔曲线利用横线动画实现,具体代码如下:ul { display: flex; padding: 0; margin: 0; list-style-type: none;...} ul:hover li:not(:hover) a { opacity: 0.2; } ul li { position: relative; padding: 30px 25px 30px...li:hover::after, ul li.active::after { transform: scaleX(1); } (推荐教程:CSS教程) 左右横移下划线动画特效 主要利用js判断鼠标移开时位置...hover::after { –scale: 1; } 相关教程推荐:css视频教程 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139950.html原文链接

    2.1K30

    【CSS】课程网站 Banner 制作 ② ( Banner 栏版心盒子测量 | Banner 版心盒子模型左侧导航栏代码示例 )

    */ .subnav li a { /* 默认情况下为白色 */ color: #fff; /* 字体大小 14 像素 */ font-size: 14px; /* 取消链接下方下划线 *...*/ margin-right: 60px; } /* 导航栏设置 左浮动 */ .nav { float: left; } /* 导航栏内部 无序列表 设置左浮动 */ .nav ul...li { /* 设置 无序列表项 从左到右排列 */ float: left; } /* 设置无序列表中链接样式 */ .nav ul li a { /* 显示模式 块级元素 */ display...*/ text-decoration: none; /* 调试时使用背景 */ /*background: skyblue;*/ } /* 鼠标经过链接样式 */ .nav ul li...*/ .subnav li a { /* 默认情况下为白色 */ color: #fff; /* 字体大小 14 像素 */ font-size: 14px; /* 取消链接下方下划线 *

    3.3K50

    HTML及CSS常用知识点复习

    /imgs/3.png" alt="图片显示失败">图片4、超链接(跳转链接)(1)target="_self...(2)表格标题最喜欢音乐(3)行:(4)单元格:①单元格宽度:width=""【注意:不用带单位,因为已经默认封装好】②单元格高度...)(5)与float区别:display占位置,float不占位置(6)flex:默认横向布局【Flex布局内容较多,小伙伴们可以去参考一下前面的文章有专门介绍flex布局】3、overflow:滚动条...:text-decoration: none; 【时刻注意a标签是行内标签】4、ulli标签去小黑点:list-style: none; 5、图片定位background-position: -208px...,0px;重点注意:两值之间是逗号,不是空格,否则会出错6、图片定位居中方法:position: relative; top: 50%; transform: translateY(-50%); 7、不写选择器标签也可以设置样式运用孩子

    1K50

    【CSS】课程网站横版导航栏 ( 横版导航栏测量及样式 | 代码示例 )

    该配置几乎所有的网页都要设置 ; /* 清除所有链接下划线样式 */ a { text-decoration: none; } 4、右侧盒子测量及样式 右侧盒子宽高如下图所示 , 设置右浮动即可悬浮在右侧...{ padding: 0; margin: 0; } /* 清除列表默认样式 ( 主要是前面的点 ) */ li { list-style: none; } /* 清除所有链接下划线样式...li { /* 设置 无序列表项 从左到右排列 */ float: left; } /* 设置无序列表中链接样式 */ .nav ul li a { /* 显示模式 块级元素 */ display...*/ text-decoration: none; /* 调试时使用背景 */ /*background: skyblue;*/ } /* 鼠标经过链接样式 */ .nav ul li...*/ .subnav li a { /* 默认情况下为白色 */ color: #fff; /* 字体大小 14 像素 */ font-size: 14px; /* 取消链接下方下划线 *

    5.2K30
    领券