您的当前位置:首页正文

使用CSS3制作hover下划线动画方法

2020-11-27 来源:小奈知识网
本文主要介绍了CSS3制作hover下划线动画的方法步骤。具有很好的参考价值。下面跟着小编一起来看下吧

1、前几天看到Hexo的next主题标题hover效果很炫,自己尝试写了一个,另一个是next的实现,照例先上图

使用CSS3制作hover下划线动画方法

2、实现小黑科技

 <!-- html结构 -->
 <p>
 <a href="javascript:void(0);" class="demo1">自己实现的hover效果</a>
 </p>
/* css样式 */
 .demo1{
 position: relative;
 text-decoration: none;
 font-size: 20px;
 color: #333;
 }
 .demo1:before{
 content: "";
 position: absolute;
 left: 50%;
 bottom: -2px;
 width: 0;
 height: 2px;
 background: #4285f4;
 transition: all .3s;
 }
 .demo1:hover:before{
 width: 100%;
 left: 0;
 right: 0;
 }

关键在于没有hover的时候定义width为0,这样可以实现宽度从0到100%的变化。

left为50%,目的是为了动画开始的位置是在50%的位置。

3、hexo next主题的官方实现

<!-- html结构 -->
<p>
 <a href="javascript:void(0);" class="demo2">Hexo next主题的实现</a>
</p>
/* css样式 */
 .demo2{
 position: relative;
 text-decoration: none;
 font-size: 20px;
 color: #333;
 }
 .demo2:before{
 content: "";
 position: absolute;
 left: 0;
 bottom: -2px;
 height: 2px;
 width: 100%;
 background: #4285f4;
 transform: scale(0);
 transition: all 0.3s;
 }
 .demo2:hover:before{
 transform: scale(1);
 }

这个实现的关键就是scale(0)到scale(1)的变化。

CSS3的scale transform的原点是中点,所以会从中间的位置开始动画。

4、两者区别

通过动画也看出来,next的动画有透明渐变的效果,和scale的表现形式有关。

第一个实现只是width变化,但是也可以用animation实现和next一样的效果。

显示全文