新手可以参考的 CSS3实现逐渐发光的方格边框

这篇博客介绍了如何使用CSS3的scale和opacity属性为元素边框创建逐渐发光的效果。通过light-inner伪元素的:before和:after,结合scaleX和scaleY的变换以及opacity的透明度变化,实现了从中间向四角渐变发光的方格边框。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个使用伪元素来实现边框逐渐发光的代码,主要用到scale和opacity这两个属性。
HTML代码:

<div class="light">
    <img src="http://tva2.sinaimg.cn/crop.0.0.180.180.180/6830a53bjw8f2qo4xzc2zj20500500t0.jpg"/>
    <div class="light-inner">
        <p>前端开发博客</p>
        <p>关注前端开发</p>
    </div>
</div>

CSS代码:

.light{
    background: #fff;
    width: 180px;
    height: 180px;
    margin: 100px auto;
    position: relative;
    text-align: center;
    color: #333;
    transform:translate3d(0,0,0);

}
.light-inner{
    padding: 60px 30px 0;
    pointer-events: none;
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    right: 0;
    text-align: center;
    transition: background 0.35s;
    backface-visibility: hidden;
}
.light-inner:before, .light-inner:after{
    display: block;
    content: "";
    position: absolute;
    left: 30px;
    top: 30px;
    right: 30px;
    bottom: 30px;
    border: 1px solid #fff;
    opacity: 0;
    transition: opacity 0.35s, transform 0.35s;
}
.light-inner:before{
    border-left: 0;
    border-right: 0;
    transform:scaleX(0,1);
}
.light-inner:after{
    border-top: 0;
    border-bottom: 0;
    transform: scaleY(1,0);
}
.light:hover .light-inner{
    background: #458fd2
}
.light:hover .light-inner:before, .light:hover .light-inner:after{
    opacity: 1;
    transform: scale3d(1,1,1);
}

.light-inner p{
    transition: opacity .35s, transform 0.35s;
    transform: translate3d(0,20px,0);
    color: #fff;
    opacity: 0;
    line-height: 30px;
}
.light:hover .light-inner p{
    transform: translate3d(0,0,0);
    opacity: 1;
}

实现步骤:

发光的方格,主要是通过.light-inner的伪元素:before和:after来实现

上下的边框是从中间往两边逐渐展开:scaleX(0)到scaleX(1)

左右的边框是从中间往上下两边展开:scaleY(0)到scaleY(1)

形成了一个四方形从中间向边角逐渐发光的效果:opacity:0到opacity:1。

其它就没什么技巧了。

scale介绍

scale([, ]):指定对象的2D scale(2D缩放)。第一个参数对应X轴,第二个参数对应Y轴。如果第二个参数未提供,则默认取第一个参数的值

scaleX():指定对象X轴的(水平方向)缩放

scaleY():指定对象Y轴的(垂直方向)缩放

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值