实现鼠标移入时下划线向两边展开的效果可以使用CSS3中的伪元素::before和::after来实现,具体步骤如下:
实现鼠标移入时下划线向两边展开的效果可以使用CSS3中的伪元素::before和::after来实现,具体步骤如下:
- 首先需要在HTML中给需要添加鼠标移入效果的文字元素添加一个类名,例如:class="underline"。
- 在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%,从而实现下划线展开的效果。 - 最后在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+伪元素实现鼠标移入时下划线向两边展开的效果
基础教程推荐
猜你喜欢
- Ajax基础与登入教程 2023-01-31
- 【vue】v-for倒序显示/JSON数据倒序 2023-10-08
- vue v-for循环数据点击父元素,里面得子元素样式改变 2023-10-08
- js判断一个对象是否在一个对象数组中(场景分析) 2022-10-21
- Ajax 跨域如何实现 2022-12-28
- Ubuntu20.04安装配置java和tomcat部署静态html网站方法 2023-10-25
- 深度剖析JavaScript作用域从局部到全局一网打尽 2023-07-09
- ajax实现用户名校验的传统和jquery的$.post方式(实例讲解) 2023-02-14
- 初学者如何快速搭建Express开发系统步骤详解 2023-07-09
- Ajax教程实例详解 2022-12-15