庞永胜

css文字效果(文字剪贴蒙版,text-shodow的应用,文字排版等…)

记录几种常见的文字效果

示例查看:http://pangyongsheng.github.io/cssFont/

一、文字剪贴蒙版

在PS中,对文字图层栅格化,然后可将其他图层创建为文字的剪贴蒙版,而在css中要实现类似的文字效果,我们需要先设置背景裁剪(background-clip)为文字(text),然后将字体颜色(color)或者文字填充(text-fill-color)设置为透明(transparent)即可实现将背景转化为当前元素的剪贴蒙版的相同效果;

 

为了更好的效果首先我们定义一个简单的的公共样式,如下:

.div{
    font-weight: bold;
    font-size80px;
    margin50px;
    border10px dashed #666;
}

1、背景图片剪贴蒙版

设置背景图片,设置背景裁剪和文字颜色

.bg-clip{
    background-imageurl(../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-imagelinear-gradient(
              45deg, 
              #ccc 0%, #ccc 30%, 
              #00B4F1 0%, #00B4F1 70%, 
              #ccc 0%, #ccc 100%);
    background-size50% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    color:transparent;
    background-position0% 50%;
    animation: aitf 8s linear infinite;
}
@keyframes aitf {
    0% { background-position0% 50%; }
    100% { background-position100% 50%; }
}
<div class="div bg-clip3">剪贴蒙版动画效果</div>

二、text-shadow的应用

text-shadow有四个属性值

属性
h-shadow 水平阴影的位置。允许负值
v-shadow 必需。垂直阴影的位置。允许负值是
blur 可选。模糊的距离
color 可选。阴影的颜色

text-shadow属性可以向文本添加一个或多个阴影,我们可由此作出许多不同的有趣效果,以下仅为几个参考示例:

1、文字的投影效果

最基本的投影效果

.shadow1 {
    color: red;
    text-shadow5px 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-shadow1px 0px 0px #00B4F1,2px 0px 0px #00B4F1,3px 1px 0px #00B4F1,0px 1px 0px #000;
}

5、文字的发光效果

添加两层无偏移的白色投影

.shadow5 {
    color: blue;
    background-color:#949191;
    text-shadow0px 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{
    width300px;
    height300px;
    margin100px;
}
.circlar svg{
    display: block;
    overflow: visible;
}

2、自右向左的竖排文字

通过设置writing-mode的值内容块固有的书写方向

属性
vertical-rl 垂直的自右到左
vertical-lr 垂直的自左到右
sideways-rl 水平的自右到左
sideways-lr 水平的自左到右

示例:

.tbl{
    margin100px;
    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元素添加换行;


 

posted @ 2018-06-25 09:29  庞永胜  阅读(5381)  评论(0编辑  收藏  举报