css文字效果(文字剪贴蒙版,text-shodow的应用,文字排版等…)
记录几种常见的文字效果
示例查看:http://pangyongsheng.github.io/cssFont/
一、文字剪贴蒙版
在PS中,对文字图层栅格化,然后可将其他图层创建为文字的剪贴蒙版,而在css中要实现类似的文字效果,我们需要先设置背景裁剪(background-clip)为文字(text),然后将字体颜色(color)或者文字填充(text-fill-color)设置为透明(transparent)即可实现将背景转化为当前元素的剪贴蒙版的相同效果;
为了更好的效果首先我们定义一个简单的的公共样式,如下:
.div{
font-weight: bold;
font-size: 80px;
margin: 50px;
border: 10px dashed #666;
}
1、背景图片剪贴蒙版
设置背景图片,设置背景裁剪和文字颜色
.bg-clip{
background-image: url(../img/1.jpg);
background-size: cover;
-webkit-background-clip: text;
background-clip: text;
color:transparent;
}
<div class="div bg-clip">图片背景文字剪贴蒙版</div>
效果如上第一个
2、渐变条纹背景剪贴蒙版
使用线性渐变设置一个七彩条纹的背景,然后设置背景裁剪为text和文字填充颜色为透明:
.bg-clip2{
background:linear-gradient(
90deg,
red 0%,red 14.3%,
orange 0,orange 28.6%,
yellow 0,yellow 42.9%,
green 0,green 57.2%,
blue 0, blue 71.5%,
indigo 0,indigo 85.8%,
violet 0, violet 100%
);
background-repeat:no-repeat;
background-size: cover;
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
text-fill-color: transparent;
}
<div class="div bg-clip2">渐变背景文字剪贴蒙版</div>
3、剪贴蒙版的动画效果
同上,首先设置一个渐变背景,但这里我们background-size宽度设为50%,最后在添加一个背景移动的动画:
.bg-clip3{
background-image: linear-gradient(
45deg,
#ccc 0%, #ccc 30%,
#00B4F1 0%, #00B4F1 70%,
#ccc 0%, #ccc 100%);
background-size: 50% 100%;
-webkit-background-clip: text;
background-clip: text;
color:transparent;
background-position: 0% 50%;
animation: aitf 8s linear infinite;
}
@keyframes aitf {
0% { background-position: 0% 50%; }
100% { background-position: 100% 50%; }
}
<div class="div bg-clip3">剪贴蒙版动画效果</div>
二、text-shadow的应用
text-shadow有四个属性值
属性 | 值 |
---|---|
h-shadow | 水平阴影的位置。允许负值 |
v-shadow | 必需。垂直阴影的位置。允许负值是 |
blur | 可选。模糊的距离 |
color | 可选。阴影的颜色 |
text-shadow属性可以向文本添加一个或多个阴影,我们可由此作出许多不同的有趣效果,以下仅为几个参考示例:
1、文字的投影效果
最基本的投影效果
.shadow1 {
color: red;
text-shadow: 5px 5px 5px #000;
}
2、文字的描边效果
对文字添加四个分别向上下左右位移为1px的红色投影,即可实现红色描边效果
.shadow2 {
color: white;
text-shadow: -1px 0px 1px red, 1px 0px 1px red, 0px -1px 1px red, 0px 1px 1px red;
}
3、文字的浮雕效果
对文字添加向左上偏移1px的黑色(暗)模糊值较小的投影,再分别添加向右和向下的蓝色(亮色)模糊值较大的投影,即可实现文字浮雕特效
.shadow3 {
color: white;
text-shadow: -1px -1px 3px black, 0 0 5px blue, 0 0 8px blue;
}
4、文字的剪纸效果
文字设为白色,添加向左1px的黑色投影,添加向右和向下的蓝色投影:
.shadow4 {
color: white;
text-shadow: 1px 0px 0px #00B4F1,2px 0px 0px #00B4F1,3px 1px 0px #00B4F1,0px 1px 0px #000;
}
5、文字的发光效果
添加两层无偏移的白色投影
.shadow5 {
color: blue;
background-color:#949191;
text-shadow: 0px 0px 3px white, 0px 0px 5px white;
}
三、文字的排版
1、文字的环形排版
这里应用了svg路径实现,创建一个圆形的路径,在和元素写入文本,通过xlink:href属性把它链到我们的圆上,设置圆形填充为none,svg标签overflow为visib,参考如下:
<div class="circlar">
<svg viewBox="0 0 100 100">
<path d="M 0,50 a 50,50 0 1, 1 0, 1 z" id="circle"></path>
<text>
<textPath xlink:href="#circle">
这是一个圆形文字效果w(゚Д゚)w ~~~!!!
</textPath>
</text>
</svg>
</div>
.circlar path{
fill: none;
}
.circlar{
width: 300px;
height: 300px;
margin: 100px;
}
.circlar svg{
display: block;
overflow: visible;
}
2、自右向左的竖排文字
通过设置writing-mode的值内容块固有的书写方向
属性 | 值 |
---|---|
vertical-rl | 垂直的自右到左 |
vertical-lr | 垂直的自左到右 |
sideways-rl | 水平的自右到左 |
sideways-lr | 水平的自左到右 |
示例:
.tbl{
margin: 100px;
writing-mode:vertical-rl;
}
.tbl>span::after{
content: '\A';
white-space: pre;
}
<div class="tbl">
<span>何日归家洗客袍?</span>
<span>银字笙调,心字香烧。</span>
<span>流光容易把人抛,红了樱桃,绿了芭蕉。</span>
</div>
3、换行
最后安利一种文字换行的方法,在上一的示例中已有使用:
在Unicode中有一个转义字符是等同于换行的:0x000A。在CSS中,可以写成"\000A",或"\A",通过伪类加入标签,即可实现各个标签的换行,如上示例中为没一句诗的span元素添加换行;