最近一直忙着写代码了,都没怎么记录。这两天清闲下来了,打算将之前写的一些样式记录下来,封装以利于下次直接使用。喜欢的同学可以收藏起来,方便不时之需。
上一篇地址:前端常用的几种 LESS Mixins - 掘金 (juejin.cn)
今天要介绍的样式有五个,它们分别是:
- 悬浮变大效果
- 悬浮渐出下划线效果
- 彩色边框线效果
- 自定义鼠标效果
- 3D 按钮效果
我使用的预编译器是 Less。Less 中的 Mixin 类似于 Js 中的函数,可以将已经实现好的样式封装起来。下面让我们逐个看来。
1. 悬浮变大效果
.hoverBig() {
&:hover {
transform: scale(1.1);
filter: sepia(100%); /* 或者使用其他滤镜效果 */
}
transition: transform 0.3s, filter 0.3s;
}
原理说明
当鼠标悬浮在元素上时,使用CSS的:hover伪类来触发特定的样式变化。transform: scale(1.1);用于将元素的大小放大到原始尺寸的110%。同时,filter: sepia(100%);为元素应用了一个深褐色的滤镜效果,可以在悬浮时改变元素的颜色表现。transition属性则用来定义元素状态变化时的过渡效果,使元素的变换更加平滑。
效果如下所示:
2. 悬浮渐出下划线效果
.hoverLine() {
position: relative;
display: inline;
text-decoration: none;
&::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 0;
height: 2px;
background-color: #000;
transition: width 0.3s;
}
&:hover::after {
width: 100%;
}
}
效果如下所示:
原理说明
利用CSS的伪元素::after在文本下方创建一个空的内容块,并通过position: absolute;将其定位在文本的底部。初始状态下,这个下划线的宽度设置为0,即不可见。当鼠标悬浮在文本上时,通过:hover::after选择器将下划线的宽度变化为100%,从而实现渐出的下划线效果。transition: width 0.3s;则保证了宽度变化的平滑过渡。
3. 彩色边框线效果
.linearBorder(@dir:right;@color1:red;@color2:orange;@color3:yellow;@color4:green;@color5:blue;) {
border: 2px solid;
border-image: linear-gradient(to right, red, orange, yellow, green, blue) 1;
}
原理说明
使用CSS的border-image属性,该属性允许你使用图片作为边框。在这个例子中,通过linear-gradient()函数创建了一个线性的颜色渐变,并将其应用到边框上。to right指示渐变的方向是从左到右,后面跟随的颜色值定义了渐变的颜色停靠点。这样,边框就会显示为多彩的渐变效果。
效果如下所示:
4. 自定义鼠标效果
.cursor(){
cursor: url('../../../assets/globalView/图标(星).png'), auto; /* 使用自定义光标图像 */
}
原理说明
CSS的cursor属性用于改变鼠标指针在元素上时的外观。在这个例子中,cursor属性被设置为一个自定义的图像URL,这意味着当鼠标悬停在应用了该样式的元素上时,鼠标指针会变为指定的图像。如果浏览器无法加载或显示自定义光标,则会使用auto关键字指定的默认光标。
效果如下所示:
5. 3D 按钮效果
.threeDBtn(){
display: inline-block;
padding: 10px 20px;
background-color: #4CAF50;
color: white;
border: none;
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
transition: box-shadow 0.3s;
&:hover {
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
transform: translateY(-2px);
}
}
原理说明
通过CSS的box-shadow属性给按钮添加阴影效果,创造出3D的视觉效果。初始状态下的阴影较浅,当鼠标悬浮在按钮上时,通过:hover伪类增加阴影的模糊半径和扩展半径,使阴影变得更加明显,同时利用transform: translateY(-2px);稍微上移按钮,给用户一种按钮被按下的视觉效果,从而增强按钮的交互感。transition属性则保证了这些变化能够平滑过渡。
效果如下所示:
希望这些特效能够帮助到你,喜欢的话点个收藏吧~