下划线hover下动态出现技巧
酷炫的动画效果往往更能吸引眼球,下面我将分享纯CSS中,hover的时候出现下划线动态飞入的技巧。
1.下划线从左侧飞入:
1 2 3 4 5 6 7 8 9 | div::before{ content: "" ; width:50px; position:absolute;<br> display:inline-block;<br> border-bottom:1px solid red; bottom:0; left:-100px;} div:hover::before{ left:0; transition:all linear 1s;} |
步骤:首先是设置div为相对位置(relative,主要用于before子元素的定位。因为绝对位置的定位要求其父元素的position属性值不能为static,而relative优点在于能保留原来的位置,故选用relative)。
其次通过伪元素before创建div元素下的第一个位置的子元素,设置其为绝对位置(absolute),同时修改其显示属性为行内块(display:inline-block;)。
第三是设置伪元素before的位置,将其定位到div父元素的前面,同时设置div隐藏区域以外的区域(overflow:hidden;)
第四是设置当div被hover时,伪元素before回到div父元素的最左侧,并设置持续时间。
这样就完成了下划线在hover时从左侧并入。如果要从右侧出现,则只需把相应位置进行更新即可。
2.下划线从中间向两边伸出
1 2 3 4 5 6 7 8 9 10 11 12 13 | div::before{ content: "" ; width:0px; position:absolute;<br> display:inline-block; border-bottom:0px solid red; bottom:0; left:50%; transition:all linear 1s;} div:hover::before{ left:0; width:50px; border-bottom-width:2px; } |
下划线从中间向两边伸出大部分与下划线从两边伸出相似,不同之处在于:
首先设置子元素位置在中间,即left:50%,同时width:0px;
其次hover时设置子元素位置右中间变到最左侧(即left:0;);同时设置子元素的宽度(即width:50px)。
这样就能实现两个过程:一是下划线从中间向左侧整体移动,二是下划线向右侧延伸。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步