利用text-shadow和box-shadow进行制作
利用padding将文字和边框隔远
利用@keyframesc插帧对text-shadow,box-shadow进行光源的关闭,到达闪烁的效果
关键点:要text-shadow,box-shadow(内外都可以发光)的特性进行多层叠加,以达到真实光源的效果(近强远弱),字体白色
注意点:真实的霓虹灯灯带都是带着淡淡的白色
<style>
:root {
--neon-text-color: #E684AE;
--neon-border-color: rgb(108, 45, 192);
@font-face{
font-family: AnoStencil;
src: url("./fonts/AnoStencil-Light.otf");
body {
font-family: 'AnoStencil', sans-serif;
display: flex;
display: -webkit-flex;
justify-content: center;
align-items: center;
background: #000;
min-height: 300px;
font-size: 13rem;
border: 5px solid #fff;
padding: 50px;
border-radius: 10px;
text-transform: uppercase;
color: #fff;
animation: flicker 3s infinite alternate;
h1::-moz-selection {
background-color: var(--neon-border-color);
color: var(--neon-text-color);
h1::selection {
background-color: var(--neon-border-color);
color: var(--neon-text-color);
@keyframes flicker {
0%, 19%, 21%, 23%, 25%, 54%, 56%, 100% {
text-shadow:
-0.2rem -0.2rem 0.5rem #fff,
0.2rem 0.2rem 0.5rem #fff,
0 0 2rem var(--neon-text-color) ,
0 0 4rem var(--neon-text-color) ,
0 0 6rem var(--neon-text-color) ,
0 0 8rem var(--neon-text-color) ,
0 0 10rem var(--neon-text-color) ,
0 0 12rem var(--neon-text-color) ;
box-shadow:
0 0 .5rem #fff,
inset 0 0 .5rem #fff,
0 0 3rem var(--neon-border-color),
inset 0 0 3rem var(--neon-border-color),
0 0 6rem var(--neon-border-color),
inset 0 0 6rem var(--neon-border-color)
20%, 24%, 55% {
text-shadow: none;
box-shadow: none;
</style>
复制代码
最终效果
/* 参考文章
codepen.io/GeorgePark/…
*/