CSS3 逐渐发光的方格边框

light

演示:http://caibaojian.com/demo/2017/03/light.html

一个使用伪元素来实现边框逐渐发光的代码,主要用到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:0opacity:1

其它就没什么技巧了。

scale介绍

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

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

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

 

原创文章:CSS3 逐渐发光的方格边框 ,未经许可,禁止转载,©版权所有
原文出处:前端开发博客 (http://caibaojian.com/css-light.html)
评论已关闭。