返回顶部
首页 > 资讯 > 前端开发 > html >css3+伪元素如何实现鼠标移入时下划线向两边展开的效果
  • 633
分享到

css3+伪元素如何实现鼠标移入时下划线向两边展开的效果

2024-04-02 19:04:59 633人浏览 独家记忆
摘要

这篇文章主要介绍了css3+伪元素如何实现鼠标移入时下划线向两边展开的效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先来看看效果图:实现

这篇文章主要介绍了css3+伪元素如何实现鼠标移入时下划线向两边展开的效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

先来看看效果图:

css3+伪元素如何实现鼠标移入时下划线向两边展开的效果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>

感谢你能够认真阅读完这篇文章,希望小编分享的“css3+伪元素如何实现鼠标移入时下划线向两边展开的效果”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网html频道,更多相关知识等着你来学习!

--结束END--

本文标题: css3+伪元素如何实现鼠标移入时下划线向两边展开的效果

本文链接: https://lsjlt.com/news/68546.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • css3+伪元素如何实现鼠标移入时下划线向两边展开的效果
    这篇文章主要介绍了css3+伪元素如何实现鼠标移入时下划线向两边展开的效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先来看看效果图:实现...
    99+
    2024-04-02
  • CSS如何实现鼠标移入时图片的放大效果及缓慢过渡效果
    小编给大家分享一下CSS如何实现鼠标移入时图片的放大效果及缓慢过渡效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!transform:scale()可以实现按比例放大或者缩小功能。transition可以设置动画执行的时...
    99+
    2023-06-08
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作