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

yizhihongxing

实现鼠标移入时下划线向两边展开的效果可以使用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日

相关文章

  • vue中如何引入html静态页面

    在Vue中,可以通过使用vue-template-loader来将HTML静态页面转化为Vue组件,然后在Vue项目中进行引入和使用。下面是具体的步骤: 安装依赖 要使用vue-template-loader,需要先安装相关依赖: npm install vue-template-loader –save-dev 创建静态HTML文件 在项目中创建一个静态…

    css 2023年6月9日
    00
  • CSS的相邻兄弟选择器用法简单讲解

    当我们需要选中文档中一个元素旁边的另一个元素时,就可以使用CSS的相邻兄弟选择器。相邻兄弟选择器用“+”符号表示,是紧跟在某个元素后的第一个指定元素。下面来详细讲解一下相邻兄弟选择器的用法。 语法规则: element1 + element2 element1: 要选择元素的前一个兄弟元素。 +: 选择前一个兄弟元素紧随的下一个兄弟元素。 element2:…

    css 2023年6月9日
    00
  • JavaScript更改class和id的方法

    当我们需要在JavaScript中更改class和id时,需要使用getElementById和getElementsByClassName这两个方法。这两个方法返回的是DOM对象或节点列表。 更改id 更改id的方法非常简单,只需要使用getElementById方法来获取该元素,然后通过修改其id属性实现。 示例1:更改id为”newId”的元素的id为…

    css 2023年6月10日
    00
  • vue单页面如何设置高度100%全屏

    要让Vue单页面全屏,需要对HTML、body和Vue组件元素进行高度设置。 设置HTML和body元素高度 首先,为了在不同的浏览器中保证一致的表现效果,我们需要对HTML和body元素的高度设置一致。可以使用CSS设置: html, body { height: 100%; } 设置Vue组件元素高度 接下来,我们需要对Vue组件元素的高度进行设置。 示…

    css 2023年6月9日
    00
  • CSS 容器背景 10 种颜色渐变Demo(linear-gradient())

    当我们使用 CSS 容器元素时,我们可以设置一种渐变背景色来改变样式。这种技术使用 linear-gradient() 函数来创建颜色渐变。接下来,我将为你提供一个完整的攻略来使用这个函数。 一、基本语法 linear-gradient() 函数的基本语法如下: background: linear-gradient(direction, color-sto…

    css 2023年6月9日
    00
  • css3 clip实现圆环进度条的示例代码

    首先,需要了解CSS3 clip属性的基本用法。clip属性用来剪切(裁剪)元素的部分内容并显示剩余部分。clip属性有四个值,分别表示剪裁区域的上、右、下、左四个边界位置。例如,设置clip: rect(0, 50px, 100px, 0)可以裁剪掉元素的左侧部分和下侧部分,只显示上半部分和右侧部分。 接下来就可以开始制作圆环进度条了,以下是具体步骤: 1…

    css 2023年6月10日
    00
  • css3的focus-within选择器的使用

    CSS3的focus-within选择器用于选取一个元素的所有后代元素中,只要其中一个获得焦点,该元素就会被选中。它的语法如下: selector:focus-within { /* CSS样式 */ } 在使用该选择器时,首先需要有一个具有焦点行为的元素,例如<input>标签或<button>标签。然后,我们可以使用focus-w…

    css 2023年6月9日
    00
  • CSS 清除浮动元素方法 整理

    CSS 清除浮动元素方法 整理 在进行网页布局的时候,我们会经常使用浮动元素来实现各种效果。但是浮动元素在布局过程中会带来一些问题,比如与其后面的元素重叠,导致布局混乱。因此,我们需要使用清除浮动来解决这些问题。 1. 浮动元素的问题 浮动元素会导致其后面的元素重叠,导致布局混乱。下面是一个例子: <div class="float&quot…

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