头闻号

广州市白云区三元里时倩兰芝化妆品商行

个人护理用具|皮肤用化学品|彩妆化学品|护肤膏霜|综合性公司

首页 > 新闻中心 > 科技常识:css3+伪元素实现鼠标移入时下划线向两边展开的效果
科技常识:css3+伪元素实现鼠标移入时下划线向两边展开的效果
发布时间:2024-09-22 05:38:16        浏览次数:4        返回列表

今天小编跟大家讲解下有关css3+伪元素实现鼠标移入时下划线向两边展开的效果 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关css3+伪元素实现鼠标移入时下划线向两边展开的效果 的相关资料,希望小伙伴们看了有所帮助。

先来看看效果图:

实现思路:

将伪元素:before和:after定位到元素底部中间 设置宽度从0变成100%达到目的。

实现方法:

1、首先定义一个块状元素(行内元素没有宽高)并修改样式为一个背景色为浅灰色的矩形 设置相对定位。

html代码

<div id="underline"></div>

css样式

#underline{ width: 200px; height: 50px; background: #ddd; margin: 20px; position: relative;}

2、设置:before和:after两个伪元素 将其设置为背景色为蓝色(也就是下划线的颜色) 利用绝对定位将两个元素固定到#underline底部中间位置。

css样式

#underline:before,#underline:after{ content: ""; width: 0; height: 3px; background: blue; position: absolute; top: 100%; left: 50%; transition: all .8s ; }

3、设置鼠标移入效果。

css样式

#underline:hover:before{ left:0%; width:50%;}#underline:hover:after{ left: 50%; width: 50%;}

优化

1、虽然目的达到了 但是用了两个伪元素 一个向左延伸50% 一个向右延伸50% 只用一个延伸至100%能否达到目的呢

css代码

#underline:after{ content: ""; width: 0; height: 5px; background: blue; position: absolute; top: 100%; left: 50%; transition: all .8s;}#underline:hover:after{ left: 0%; width: 100%;}

2、只定义:after伪元素 将其从距离左边50%宽度为0的同时改变成距离左边0%宽度为100%就可以实现 从而达到了精简代码的目的 而且还多余出了:before方便进行别的操作。

完整代码

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>鼠标移入下划线展开</title> <style type="text/css"> #underline{ width: 200px; height: 50px; background: #ddd; margin: 20px; position: relative; } #underline:after{ content: ""; width: 0; height: 5px; background: blue; position: absolute; top: 100%; left: 50%; transition: all .8s; } #underline:hover:after{ left: 0%; width: 100%; } </style></head><body> <div id="underline"></div></body></html>

总结

关于才疏学浅 以后遇到了再补充。好了以上就是这篇文章的全部内容了 希望本文的内容对大家的学习或者工作能带来一定的帮助 如果有疑问大家可以留言交流 谢谢大家对AIDI的支持。

来源:爱蒂网