本文主要介绍了CSS3制作hover下划线动画的方法步骤。具有很好的参考价值。下面跟着小编一起来看下吧
1、前几天看到Hexo的next主题标题hover效果很炫,自己尝试写了一个,另一个是next的实现,照例先上图

2、实现小黑科技
1 2 3 4 | <!-- html结构 -->
<p>
<a href= "javascript:void(0);" class = "demo1" >自己实现的hover效果</a>
</p>
|
登录后复制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | .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主题的官方实现
1 2 3 4 | <!-- html结构 -->
<p>
<a href= "javascript:void(0);" class = "demo2" >Hexo next主题的实现</a>
</p>
|
登录后复制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | .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一样的效果。
以上是使用CSS3制作hover下划线动画方法的详细内容。更多信息请关注PHP中文网其他相关文章!