首页 编程语言 css

带你看好玩的CSS-霓虹灯按钮

对于前端开发人员来说,css是我们再熟悉不过的朋友的,它就相当于是我们页面的衣服,页面好不好看,就看我们css运用的是否炉火纯青。css学起来简单,但是我们要把它“修炼”到出神入化境界,那这可不是一丁点时间就可以的,需要我们的日积月累,时刻专研。

而今天,就带给大家一个CSS特效-霓虹灯按钮,这也是我看到很不错的效果,带来分享给大家,希望大家喜欢

效果如下:

最终效果

那好,废话不多说,开始我们的CSS代码。

准备一个HTML标签

// 这里我们用div标签来模拟button按钮,标签可以随意,a、p、span等都可以
// 通常在开发中使用别的标签来代替button标签,是因为原始的标签样式不好看,
// 我们还得重置样式,而其他标签不带有样式,我们可以更好的控制自己想要的样式,
// 当然,button标签也是可以的,但是如前面所说,原始的样式需要我们重置。
<div >button</div>

CSS部分的代码

body {
    margin: 0;
    padding: 0;
    background: #000; // 黑色背景,只为更能突出样式效果
}
// 初始化按钮样式
.btn {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 200px;
    height: 60px;
    text-align: center;
    line-height: 60px;
    color: #fff;
    font-size: 24px;
    font-family: sans-serif;
    text-decoration: none;
    text-transform: uppercase;
    box-sizing: border-box;
    // linear-gradient() 渐变属性,函数用于创建一个表示两种或多种颜色线性渐变的图片
    background: linear-gradient(90deg, #03a9f4, #f441a5, #ffeb3b, #03a9f4);
    background-size: 400%;
    border-radius: 30px;
}

初始样式为这样:

初始样式

然后我们给按钮加上动画,代码如下:

.btn:hover {
  	// linear: 动画从开始到结束具有相同的速度。
    // infinite: 无限次播放
    animation: animate 8s linear infinite;
}
@keyframes animate {
    0% {
        background-position: 0%;
    }
    100% {
        background-position: 400%;
    }
}

效果就变为下面这样:

最后我们给它加上鼠标移上去的效果,代码如下:

.btn::before {
    content: '';
    position: absolute;
    top: -5px;
    left: -5px;
    right: -5px;
    bottom: -5px;
    z-index: -1;
    background: linear-gradient(90deg, #03a9f4, #f441a5, #ffeb3b, #03a9f4);
    background-size: 400%;
    border-radius: 40px;
    opacity: 0;
    transition: .5s;
}
.btn:hover::before {
    filter: blur(20px);
    opacity: 1;
    animation: animate 8s linear infinite;
}

现在这样,就是我们的最终效果了:

就此,我们的霓虹灯的按钮效果就完成了

不足百行,我们就完成了这个效果,以下是我们的CSS的全部代码:

body {
    margin: 0;
    padding: 0;
    background: #000;
}
.btn {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 200px;
    height: 60px;
    text-align: center;
    line-height: 60px;
    color: #fff;
    font-size: 24px;
    font-family: sans-serif;
    text-decoration: none;
    text-transform: uppercase;
    box-sizing: border-box;
    background: linear-gradient(90deg, #03a9f4, #f441a5, #ffeb3b, #03a9f4);
    background-size: 400%;
    border-radius: 30px;
}
.btn:hover {
    animation: animate 8s linear infinite;
}
@keyframes animate {
    0% {
        background-position: 0%;
    }
    100% {
        background-position: 400%;
    }
}
.btn::before {
    content: '';
    position: absolute;
    top: -5px;
    left: -5px;
    right: -5px;
    bottom: -5px;
    z-index: -1;
    background: linear-gradient(90deg, #03a9f4, #f441a5, #ffeb3b, #03a9f4);
    background-size: 400%;
    border-radius: 40px;
    opacity: 0;
    transition: .5s;
}
.btn:hover::before {
    filter: blur(20px);
    opacity: 1;
    animation: animate 8s linear infinite;
}
相关推荐