效果:
用 background-image:linear-gradient
实现渐变、 text-shadow
实现描边
元素同时添加:
background-image: linear-gradient(to bottom, rgba(255, 255, 255, 1), rgba(143, 180, 253, 1));
-webkit-background-clip: text;
background-clip: text;
text-shadow: 3px 3px 0px #0000ff, -3px -3px 0px #0000ff, 3px -3px 0px #0000ff, -3px 3px 0px #0000ff;
会出现以下效果
所以:before
和:after
重叠在元素之上,实现,
即:使用before元素实现描边,after元素实现渐变
<span class="home-intro">
前端开发<br />
Vue
<span class="blue-text" data-text="前端开发">前端开发</span >React
</span>
最终代码:
.home-intro {
font-size: 44px;
color: #FFFFFF;
letter-spacing: 2.75px;
text-align: center;
position: absolute;
top: 50%;
left: 50%;
width: 100%;
line-height: 57px;
font-family: titleFamily;
transform: translate(-50%, -50%);
.blue-text {
letter-spacing: 2.75px;
text-align: center;
font-family: titleFamily;
position: relative;
color: transparent;
background-image: linear-gradient(to bottom, rgba(255, 255, 255, 1), rgba(143, 180, 253, 1));
-webkit-background-clip: text;
background-clip: text;
}
.blue-text::before {
content: attr(data-text);
position: absolute;
top: 0;
left: 0;
width: 100%;
color: #fff;
height: 100%;
text-shadow: 3px 3px 0px #0000ff, -3px -3px 0px #0000ff, 3px -3px 0px #0000ff, -3px 3px 0px #0000ff;
}
.blue-text::after {
content: attr(data-text);
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
color: transparent;
background-image: linear-gradient(180deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) 30%, rgba(143, 180, 253, 1) 100%);
-webkit-background-clip: text;
background-clip: text;
}
}