zoukankan      html  css  js  c++  java
  • 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中,可以写成"00A",或"A",通过伪类加入标签,即可实现各个标签的换行,如上示例中为没一句诗的span元素添加换行;


  • 相关阅读:
    我了解到的新知识之----如何使用Python获取最新外汇汇率信息
    软工实践个人总结
    第06组 Beta版本演示
    第06组 Beta冲刺(5/5)
    第06组 Beta冲刺(4/5)
    第06组 Beta冲刺(3/5)
    第06组 Beta冲刺(2/5)
    第06组 Beta冲刺(1/5)
    第06组 Alpha事后诸葛亮
    第06组 Alpha冲刺(6/6)
  • 原文地址:https://www.cnblogs.com/pangys/p/9222365.html
Copyright © 2011-2022 走看看