CSS中的text-shadow。

text-shadow(文字投影),box-shadow(容器投影),border-radius(圆角)这三个属性估计以后用的比较多,记录 一下。目前不支持IE系列(不过可以使用其他方法实现,下文有详细介绍),无语的IE系,只支持Firefox和chrome。

 

 一、除IE之外的text-shadow

Text Shadow 文本的阴影,给文本添加阴影效果

文字阴影的结构顺序为:x 轴偏移,y 轴偏移,模糊,颜色。

设置一个负值的 x 轴偏移将阴影转移到左侧。设置一个负值的 y 轴偏移转将阴影转移到顶部。别忘了,你可以在阴影颜色中应用 RGBA 值。

书写格式:text-shadow:apx bpx cpx #color

  其中a指X轴上的位移,b指Y轴上的位移,c指阴影的宽度,color指阴影的颜色值;ab可为负,c不能为负。

下面我们来简单的演示两个实例说明text-shadow的用法:

实例一(一种阴影)

    .demo01{text-shadow:2px 2px 5px #305999}

实例二(多种阴影)

    .demo02{background:#305999;text-shadow:1px 1px 1px #fff,-1px -1px 1px #fff}

text-shadow效果:

  效果是不错,可是让我们头痛的是IE是不支持text-shadow效果,但为了在兼容这一问题,我们只好使用滤镜filter:shadow来处 理(本人不提倡使用滤镜)。filter:shadow滤镜作用与dropshadow类似,也能使用对象产生阴影效果,不同的是shadow可产生渐近 效果,使用阴影更平滑实现。

  滤镜语法:

    E {filter:shadow(Color=颜色值,Direction=数值,Strength=数值)}

   其中E是元素选择器,Color用于设定对象的阴影色;Direction用于设定投影的主向,取值为0即零度(表示向上方向),45为右 上,90为右,135为右下,180为下方,225为左下方,270为左方,315为左上方;Strength就是强度,类似于text-shadow中 的blur值。

   我们先不管IE下的效果了,我个人认为text-shadow运用好了,也能像photoshop一样制作出非常好的效果,下面我这里罗列出一些比较好看的实例以供大家参考

  注:下面所有的Demo需要加上这个公用的样式:

    .demo {
      background: #666666;
      width: 440px;
      padding: 30px;
      font: bold 55px "微软雅黑", "Lucida Grande", "Lucida Sans", Helvetica, Arial, Sans;;
      color: #fff;
      text-transform: uppercase;
    }

 

 

  效果一:Glow and Extra Glow effect(也就是NEON effect)

    .demo2 {
      text-shadow: 0 0 20px red;
    }

 

  

 

  辉光效果,我们设置比较大的模糊半径来增加其辉光效果,你可以改变不同的模糊半径值来达到不同的效果,当然你也可以同时增加几个不同的半径值,创造多种不同的阴影效果。就如下面的NEON效果。

    .demo3 {
      text-shadow: 0 0 5px #fff, 0 0 10px #fff, 0 0 15px #fff, 0 0 40px #ff00de, 0 0 70px #ff00de;
    }

 

 

  

 

  效果二:Apple Style Effect

    .demo4 {
      color: #000;
      text-shadow: 0 1px 1px #fff;
    }

 

 

  

 

  效果三:Photoshop Emboss Effect

    .demo5 {
      color: #ccc;
      text-shadow: -1px -1px 0 #fff,1px 1px 0 #333,1px 1px 0 #444;
    }

 

 

  

 

  效果二和效果三,我想用photoshop的朋友一定很熟悉,是不是很类似我们 photoshop中的投影和浮雕效果的呀。应用这两个效果大家一定要注意,其模糊值一定要设置为0,使文本不具有任何模糊效果,主要用来增加其质感,你 也可以像photoshop中制作一样,改变不同的投光角度,从而制作出不同的效果,这里我就不举例子了,感兴趣的朋友可以自己尝试一下。

 

  效果四:Blurytext Effect

    .demo6 {
      color: transparent;
      text-shadow: 0 0 5px #f96;
    }

 

 

  

 

  用text-shadow制作模糊的效果主要要注意一点就是,把文本的前景色设置为透明transparent,如果模糊值越大,其效果越糊 糊;其二,我们不设置任何方向的偏移值。如果结合前面的photoshop emboss效果,可以让你等到不同的效果。提醒一下opera浏览器不支持这个效果。

 

  我们结合前面的Photoshop Emboss效果,我们可以制作出一个带有模糊的浮雕效果:

    .demo7 {
      color: transparent;
      text-shadow:0 0 6px #F96, -1px -1px #FFF, 1px -1px #444;
    }

 

  

 

  效果五:Inset text effect

    .demo8 {
      color: #566F89;
      background: #C5DFF8;
      text-shadow: 1px 1px 0 #E4F1FF;
    }

 

 

  

 

  这种效果需要注意以:文字的前景色要比背景色暗,阴影颜色稍比背景色亮一点点,这一步很重要,如果阴影色太亮看起来会怪,如果太暗将没有效果显示。具体实现可能看看stylizedweb的制作。Inset效果是文本的影子效果,也是常见的一种效果,阴影是同一个小偏移量给人一种微妙的突出效果。

 

  效果六:Stroke text effect

     .demo9 {
      color: #fff;
      text-shadow: 1px 1px 0 #f96,-1px -1px 0 #f96;
     }

 

 

  

 

  描边效果跟我们在Photoshop相比,我承认效果差很多,出现断点,但有时还是可以试用达到一种特殊的描边效果,其主要运用两个阴影,第一个向左上投影,而第二向右下投影,还需注意,制作描边的阴影效果我们不使用模糊值。

 

  效果七:3D text effect

    .demo10 {
      color: #fff;
      text-shadow: 1px 1px rgba(197, 223, 248,0.8),2px 2px rgba(197, 223, 248,0.8),3px 3px rgba(197, 223, 248,0.8),

        4px 4px rgba(197, 223, 248,0.8),5px 5px rgba(197, 223, 248,0.8),6px 6px rgba(197, 223, 248,0.8);
    }

 

 

  

 

  我们换过投影方向可以制作出另外一种3D文字效果:

    .demo11 {
      color: #fff;
      text-shadow: -1px -1px rgba(197, 223, 248,0.8),-2px -2px rgba(197, 223, 248,0.8),-3px -3px rgba(197, 223, 248,0.8),

        -4px -4px rgba(197, 223, 248,0.8),-5px -5px rgba(197, 223, 248,0.8),-6px -6px rgba(197, 223, 248,0.8);
    }

 

 

  

 

  3D文字效果运用原理就是像Photoshop一样,我们在文字的下方或上方复制了多个图层,并把每一个层向左上或右下方向移动一个1px距 离,从而制作出3D效果。同时我们层数越多,其越厚重。换成用text-shadow制作就是使用多个阴影,并把阴影色设置相同,给其使用rgba色效果 更佳,如上面的实例。

 

  效果八:Vintge/Retro text effect:

    .demo11 {
      color: #eee;
      text-shadow: 5px 5px 0 #666, 7px 7px 0 #eee;
    }

 

 

  

 

  Vintage retro这种风格的文字效果是由两个文本阴影合成的,这里需要注意的是:第一个阴影色和背景色相同;文本前景色和第二个阴影色相同

 

  效果九:Anaglyphic text effect

    .demo13 {
      color: rgba(255, 179, 140,0.5);
      text-shadow: 3px 3px 0 rgba(180,255,0,0.5);
    }

 

 

  

 

  anaglyphic文字效果起到一种补色的效果,从而制作出一种三维效果图。其效果是用css重新使用的文字阴影和文本前景的rgba色组合而成。在文本的前景色和阴影上同时使用rgba色,使底层的文字是通过影子可见。

   上面我主要列出了九个不同效果的实例,当然大家可以改变各种方式制作出一些特殊的效果,也再一次证实CSS3中的text-shadow实力是不浅的,希望大家能喜欢上这个属性,并能更好的使用这个属性。虽然现在IE不支持,但大家不要惧怕使用CSS3,因为我们做前端的迟早都会需要掌握这些新技术的。

 

 

  二、IE下如何实现text-shadow

1、glow滤镜下的文字阴影效果
IE滤镜中有个名叫glow的滤镜,用来实现光晕效果,于是,我们可以用来实现无方向的文字阴影效果。
该滤镜最简单的使用类似下面:
filter:glow(color=black,strength=5);
上面实现的效果就是5像素扩散大小的黑色光晕,效果类似下面(截自IE浏览器):

HTML代码:

    <div class="bg">
      <h1 class="font">空谷寻香觅幽兰</h1>
    </div>

css代码:

  .bg {
     width: 512px;
       height: 140px;
      margin: 1em auto;
    background: rgba(255, 123, 189, 0.59);
    }

  .font {
    margin: 0;
    padding: 1em;
    color: #fff;
    text-shadow: 0 0 5px rgb(0, 0, 0);
    font-size: 36px;
    font-family: "微软雅黑";
    float: left;
    filter: glow(color=black, strength=5);
}

运行结果简要展示(上为chrome,下为IE)

  

  

 

 

不足:
1. 虽然IE浏览器的glow光晕滤镜可以实现勉强可以称为的文字阴影效果,但是其效果相比原生的text-shadow属性就是玄彬和郭德纲的区别,并且对不同颜色的支持效果大相径庭,可以看到不仅光晕颜色不纯(杂色丛生),且文字边缘也有不和谐的黑色糙边,让人不仅感叹:你能不能再丑一点。

2. 既然是光晕滤镜,就决定了此方法实现的文字阴影效果是无方向性的,就四周均匀扩散性质的。这是该方法一个较大的局限性。

 

2、MotionBlur滤镜下的文字阴影效果

  IE滤镜中有个名叫MotionBlur的滤镜,用术语称呼其为“动感模糊滤镜”。该滤镜使用的示例如下:

  filter:progid:DXImageTransform.Microsoft.MotionBlur(strength=5, direction=145);

    用中文释义就是:145度方向上5像是大小的动感模糊。

HTML代码:

           <div class="bg">
      <h1 class="font">空谷寻香觅幽兰</h1>
   </div>

CSS代码:

        .bg {
    width: 512px;
    height: 140px;
    margin: 1em auto;
    background: rgba(255, 123, 189, 0.59);
    }

  .font {
    margin: 0;
    padding: 1em;
    color: #fff;
    font-size: 36px;
    font-family: "微软雅黑";
    text-shadow: 1px 1px 5px #fff;
    filter: progid:DXImageTransform.Microsoft.MotionBlur(strength=5, direction=145);
    float: left;
    }

 

运行结果简要展示(上为chrome,下为IE)  

     

    

 

不足:
1. MotionBlur滤镜虽然有了方向性,也可以设定大小,但是,其模糊出来的投影颜色却只能是文字本身的颜色。也就是说,单单一个标签,一个滤镜是无法实现类似于文字白色,投影黑色这种效果的。但是,这种先天性的不足也是可以通过某些手段修复的。

2. 此滤镜在应用动感模糊的同时本身也被模糊了,相对于挖自己身上的肉填饱自己饥饿的肚子。这种实现效果显然是会大打折扣的,正所谓人比人,气死人啊。两者的效果差距可以赶上凤姐和志玲姐的差距了。然而,通过某些小手段,我们也可以让MotionBlur滤镜下的文字阴影效果爷变得很赞,这就是下面一节的内容。

 

 

3、MotionBlur滤镜下文字阴影效果进一步优化

效果实现的原理是两端一模一样的文字相互重叠,背后的文字动感模糊,前面的文字就是很纯洁的文字了。

  filter: progid:DXImageTransform.Microsoft.MotionBlur(strength=5, direction=145);

考虑到不同IE浏览器下的兼容性问题,作为阴影效果的文字标签需要使用block水平的标签,且需要在IE6/IE7浏览器下haslayout。另外,这里的文字重叠是借助了absolute绝对定位元素的无高度性和无宽度性实现的

 

HTML代码:

    <div class="bg">
      <h4 class="font"><span class="text">空谷寻香觅幽兰</span><div class="sh">空谷寻香觅幽兰</div></h4>
    </div>

 

CSS代码:   
    .bg {
      width: 512px;
      height: 140px;
      margin: 1em auto;
      background: rgba(255, 123, 189, 0.59);
    }

    .font {
      margin: 0;
      padding: 1em;
      font-size: 36px;
      font-family: "微软雅黑";
    }

    .text {
      color: #fff;
      position: absolute;
      }

    .sh {
      color: #000;
      text-shadow: 1px 1px 5px #000;
      filter: progid:DXImageTransform.Microsoft.MotionBlur(strength=5, direction=145);
      *zoom: 1;
      }

 

 

运行结果简要展示(上为chrome,下为IE): 

    

    

不足:
  
由于要借助于两段不同的文字实现效果,所以,此方法不使用与长篇大论文字处的投影效果实现,像是标题啊,导航啊这些文字不是很多的地方就可以使用使用。

 

4、远离text-shadow和滤镜的文字阴影实现

  这里实现的原理的精髓其实跟上面的其实一致,两段一模一样的文字,重叠显示,不过,投影效果是通过两段文字的错位差实现的,例如通过margin负值让上下的文字出现1像素的偏移。

 

HTML代码:   
    <div class="bg">
      <h4 class="font"><span class="sh">空谷寻香觅幽兰</span>
        <div>空谷寻香觅幽兰</div>
      </h4>
    </div>

 

 

CSS代码:      
    .
bg {
      width: 512px;
      height: 140px;
      margin: 1em auto;
      background: rgba(255, 123, 189, 0.59);
    }

    .font {
      margin: 0;
      padding: 1em;
      font-size: 36px;
      font-family: "微软雅黑";
      float: left;
    }
    .sh {
      margin: -1px 0 0 -1px;
      color: #fff;
      position: absolute;
    }

    

 

运行结果简要展示(上为chrome,下为IE):

    

    

不足:
文字阴影效果的大小有限,且无法很好的实现透明度变化的投影效果。1像素的偏移投影是其最适用的情况。

 

兼容性解决方案:

 

1、text-shadow的各浏览器前缀

(1) Firefox4.0-

-moz-text-shadow: X轴偏移量 Y轴偏移量 阴影模糊半径 阴影颜色;

(2) Safari and Google chrome10.0-

-webkit-text-shadow: X轴偏移量 Y轴偏移量 阴影模糊半径 阴影颜色;

(3) Firefox4.0+ 、 Google chrome 10.0+ 、 Oprea10.5+ and IE9

text-shadow: X轴偏移量 Y轴偏移量 阴影模糊半径 阴影颜色;

2、text-shadow兼容IE6-8

E {filter:shadow(Color=颜色值,Direction=数值,Strength=数值)}

 

 

 


 

转载于:https://www.cnblogs.com/theWayToAce/p/5271482.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/418867.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端学习(1803):前端调试之事件伪类练习二

index.html <!DOCTYPE html> <html lang"en"><head><!--系统内置 start--><script type"text/javascript"></script><!--系统内置 end--><meta charset"UTF-8"><title>练习</title&g…

数据结构课程设计 神秘国度的爱情故事

数据结构 课程设计报告 广州大学 计算机科学与网络工程学院 计算机系 17级计科专业2班 2019年6月30日 广州大学学生实验报告 开课学院及实验室&#xff1a;计算机科学与工程实验室 2019年07月01日 学院 计算机科学与网络工程学院 年级/专业/班 计科1…

前端学习(1805):前端调试之列表伪类练习

index.html <!DOCTYPE html> <html lang"en"><head><!--系统内置 start--><script type"text/javascript"></script><!--系统内置 end--><meta charset"UTF-8"><title>练习</title&g…

Android中的一些基础知识(二)

这几天在回顾Android的基础知识&#xff0c;就把一些常见的知识点整理一下&#xff0c;以后忘了也可以翻出来看一看。 简单介绍一下Activity的生命周期 在API文档中对生命周期回调的函数描述的很详细&#xff0c;这里我只是翻译了一下。 onCreate&#xff1a;当Activity第一次…

关于Open browser failed!! Please check if you have installed the browser chrome correctly!错误的一种解决方法

新建一个文件夹&#xff0c;再在新建的文件夹里写html文件&#xff0c;再用快捷键&#xff1a;altb打开即可。

前端学习(1806):前端调试之列表伪类练习二

index.html <!DOCTYPE html> <html lang"en"><head><!--系统内置 start--><script type"text/javascript"></script><!--系统内置 end--><meta charset"UTF-8"><title>练习</title&g…

虚拟机安装

带你解密Linux的【Vm】-CSDN博客https://blog.csdn.net/lz17267861157/article/details/134031133

推荐开发工具系列之--LinrF5(自动刷新)

最近有点事&#xff1b;略忙&#xff1b;以至于上篇文章说好的明天一直到了今天才到&#xff1b; //*******************************分割是会呼吸的痛****************************** 作为一个程序员&#xff1b;尤其是作为一个网站开发程序员&#xff1b;如果再更尤其点作为一…

前端学习(1807):前端调试之列表伪类练习三

index.html <!DOCTYPE html> <html lang"en"><head><!--系统内置 start--><script type"text/javascript"></script><!--系统内置 end--><meta charset"UTF-8"><title>练习</title&g…

关于win32与win64的兼容性问题

源代码&#xff1a; &#xff08;操作系统作业&#xff09;printf("\nMemory attached at %X\n",(int)shm); shm是个char*地址&#xff1b; gcc编译出现警告&#xff1a;lcylcy-Lenovo-R720-15IKBN:~ $ gcc -o shmread shmread.c shmread.c: In function ‘main’:…

前端学习(1812):前端调试之shadow练习

index.html <!DOCTYPE html> <html lang"en"><head><!--系统内置 start--><script type"text/javascript"></script><!--系统内置 end--><meta charset"UTF-8"><title>练习</title&g…

bullet HashMap 内存紧密的哈希表

last modified time&#xff1a;2014-11-9 14:07:00 bullet 是一款开源物理引擎&#xff0c;它提供了碰撞检測、重力模拟等功能&#xff0c;非常多3D游戏、3D设计软件&#xff08;如3D Mark&#xff09;使用它作为物理引擎。作为物理引擎&#xff0c;对性能的要求是非常苛刻的&…

前端学习(1813):前端调试之微博个人banner开发

index.html <!DOCTYPE html> <html lang"en"><head> <!--系统内置 start--> <script type"text/javascript"></script> <!--系统内置 end--><meta charset"UTF-8"><title>微博实战--ban…

操作系统课设——设计模拟一个SPOOLING假脱机输出程序

广州大学操作系统课程设计报告 要求&#xff1a;书写课程设计报告&#xff0c;报告中应该包含如下内容&#xff1a; 一&#xff0e;课程设计题目及内容 课程设计题目&#xff1a;题目三&#xff1a; 设计模拟一个SPOOLING假脱机输出程序 &#xff08;1&#xff09; 系统设计要…

操作系统实验——进程管理与进程通信

广州大学学生实验报告 实验一 进程管理与进程通信 一、实验目的 1、掌握进程的概念&#xff0c;明确进程的含义。 2、认识并了解进程并发执行的实质&#xff0c;进程的阻塞与唤醒&#xff0c;终止与退出的过程。 3、熟悉进程的睡眠、同步、撤消等进程控制方法。 4、分析进程…

前端学习(1815):前端调试之css flex 练习1

index.html <!DOCTYPE html> <html lang"en"><head><!--系统内置 start--><script type"text/javascript"></script><!--系统内置 end--><meta charset"UTF-8" /><meta name"viewport…

关于操作系统的学习总结

学了一学期的操作系统&#xff0c;就瞎写点东西反思一下吧。 我是广州大学计算机科学与技术专业的&#xff0c;操作系统的知识是比较抽象的。第一看书时必要的。我们的操作系统课程是张艳玲副教授授课的。张老师讲课认真&#xff0c;是一个不错的老师。我们上课用的课本是这本…