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

实现鼠标移入时下划线向两边展开的效果可以使用CSS3中的伪元素::before和::after来实现,具体步骤如下:

  1. 首先需要在HTML中给需要添加鼠标移入效果的文字元素添加一个类名,例如:class="underline"。
  2. 在CSS中使用伪元素::before和::after为文字下方添加两条横线,并设置样式,例如:
    .underline {
    position: relative;
    }
    .underline::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 2px;
    background-color: #000;
    bottom: -2px;
    left: 0;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease;
    }
    .underline:hover::before {
    transform: scaleX(1);
    }
    .underline::after {
    content: "";
    position: absolute;
    width: 100%;
    height: 2px;
    background-color: #000;
    bottom: -2px;
    right: 0;
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 0.3s ease;
    }
    .underline:hover::after {
    transform: scaleX(1);
    }

    上述代码中,对于伪元素::before和::after的设置是相似的,只是在right和left属性上有所不同,并且在鼠标移入时,通过设置transform属性将宽度从0拉伸到100%,从而实现下划线展开的效果。
  3. 最后在HTML中使用class="underline"的文字元素,在鼠标移入时即可被添加下划线展开的效果。

示例1:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Underline Expand</title>
    <style>
        .underline {
            position: relative;
            display: inline-block;
            padding-bottom: 5px;
            font-size: 24px;
            color: #333;
        }
        .underline::before {
            content: "";
            position: absolute;
            width: 100%;
            height: 2px;
            background-color: #000;
            bottom: -2px;
            left: 0;
            transform: scaleX(0);
            transform-origin: left;
            transition: transform 0.3s ease;
        }
        .underline:hover::before {
            transform: scaleX(1);
        }
        .underline::after {
            content: "";
            position: absolute;
            width: 100%;
            height: 2px;
            background-color: #000;
            bottom: -2px;
            right: 0;
            transform: scaleX(0);
            transform-origin: right;
            transition: transform 0.3s ease;
        }
        .underline:hover::after {
            transform: scaleX(1);
        }
    </style>
</head>
<body>
    <p>在文字下方展开下划线的效果:</p>
    <p><span class="underline">Hello World</span></p>
</body>
</html>

示例2:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Underline Expand</title>
    <style>
        .underline-container {
            display: flex;
            align-items: center;
            justify-content: center;
            height: 200px;
            background-color: #f5f5f5;
        }
        .btn {
            position: relative;
            display: inline-block;
            padding: 10px;
            font-size: 18px;
            color: #333;
            cursor: pointer;
        }
        .btn::before {
            content: "";
            position: absolute;
            width: 100%;
            height: 2px;
            background-color: #000;
            bottom: -2px;
            left: 0;
            transform: scaleX(0);
            transform-origin: left;
            transition: transform 0.3s ease;
        }
        .btn:hover::before {
            transform: scaleX(1);
        }
        .btn::after {
            content: "";
            position: absolute;
            width: 100%;
            height: 2px;
            background-color: #000;
            bottom: -2px;
            right: 0;
            transform: scaleX(0);
            transform-origin: right;
            transition: transform 0.3s ease;
        }
        .btn:hover::after {
            transform: scaleX(1);
        }
    </style>
</head>
<body>
    <div class="underline-container">
        <div class="btn">Click Me</div>
    </div>
</body>
</html>

以上示例中,第一个示例展示了在单个文字元素上添加下划线展开效果的实现,第二个示例展示了在按钮上添加下划线展开效果的实现,并使用了flex布局 achieve 对齐。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:css3+伪元素实现鼠标移入时下划线向两边展开的效果 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 5分钟教你学会 CSS Grid 布局

    下面是详细的“5分钟教你学会 CSS Grid 布局”的攻略。 什么是 CSS Grid 布局? CSS Grid 布局是一种二维网格布局系统,可以用于快速创建复杂的布局,同时具有灵活性和可响应性。 如何使用 CSS Grid 布局? 1. 创建网格容器 要使用 CSS Grid 布局,首先需要为网格容器设置 display 属性为 grid。 .conta…

    css 2023年6月10日
    00
  • Dreamweaver经典问题45条

    首先,我们需要明确,“Dreamweaver经典问题45条”是一个常见的Dreamweaver问题清单,主要包括了常见的问题及其解决方案,对于Dreamweaver初学者或者有一定经验但遇到问题的用户来说,都是非常有参考意义的。 为了更好的使用Dreamweaver,建议用户掌握“Dreamweaver经典问题45条”的完整攻略,下面是实现此目的的详细步骤:…

    css 2023年6月11日
    00
  • Bootstrap每天必学之导航条

    Bootstrap每天必学之导航条 什么是导航条? 导航条是指用于网站或应用程序的主要导航展示的水平条,通常包含网站的标志、菜单和其他导航链接。 Bootstrap导航条 Bootstrap是一个广泛使用的前端框架,提供了许多基本的UI组件,其中之一就是导航条。使用Bootstrap可以轻松创建具有响应式布局的漂亮的导航条,并使网站风格统一。 创建基本导航条…

    css 2023年6月11日
    00
  • React过渡动画组件基础使用介绍

    React过渡动画组件是一种用于实现Web应用中页面元素动态过渡效果的组件。它可以帮助我们实现微小的动效、对话框和模态框动画、路由变换等一系列过渡效果。本文将为大家详细讲解React过渡动画组件基础使用介绍。 前置知识 在阅读本文之前,您需要了解一些React的基础概念,例如React组件、React生命周期等知识。另外,您还需要掌握CSS3动画的基本应用。…

    css 2023年6月10日
    00
  • 基于jQuery实现以手风琴方式展开和折叠导航菜单

    实现手风琴方式展开和折叠导航菜单的基本思路是利用jQuery控制CSS属性,以此来控制导航菜单的展开与折叠。具体方法如下: 1. 确定HTML结构 首先需要在HTML中编写出具有手风琴效果的导航菜单的基本结构,一般情况下,导航菜单的HTML结构如下: <ul class="accordion-menu"> <li cla…

    css 2023年6月9日
    00
  • Vue一个动态添加background-image的实现

    当需要为Vue组件动态添加背景图时,可以通过绑定样式实现。以下是实现步骤: 第一步:定义data 首先需要在Vue组件中定义一个data来存储背景图的URL地址,如下: data() { return { bgUrl: ‘https://example.com/background.jpg’ } } 第二步:在模板中绑定样式 接下来,在模板中为要添加背景图的…

    css 2023年6月10日
    00
  • JS+CSS相对定位实现的下拉菜单

    JS+CSS相对定位实现的下拉菜单是网页制作中比较常用的一种效果,它可以让页面菜单更加美观、实用。下面是它的完整攻略。 第一步:HTML布局 首先,需要定义一个下拉菜单触发器和下拉菜单的容器,代码如下: <div class="dropdown"> <button class="dropdown-trigger…

    css 2023年6月9日
    00
  • webstorm怎么创建php文件?webstorm创建php文件教程以及快捷键大全

    WebStorm 是一款强大的 IDE,它不仅支持 JavaScript,还支持 PHP 等多种编程语言。下面详细讲解如何在 WebStorm 中创建 PHP 文件,以及 WebStorm 的快捷键大全。 创建 PHP 文件 新建项目 在 WebStorm 中创建 PHP 文件需要先新建一个项目: 打开 WebStorm,选择 Create New Proj…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部