前端文本描边的使用和创建

1.什么是文本描边

正常情况下,我们的文本是这个样子的


image.png

此时,如果文字颜色和背景颜色一致的话,会导致文字看起来就是消失了一样。


image.png

文字描边呢,就是在文字周围加上一圈描边,可以设置不同的颜色。
image.png

在设计层面,文字的填充和描边如下所示:


image.png

对于描边,我们是可以设置宽度的:
image.png

如果设置fill为none,或者透明,则会出现如下效果
image.png

还可以设置描边的位置
image.png

2.使用css实现

有如下三种方式实现:

  • -webkit-text-stroke
  • shadow
  • 伪元素

1.-webkit-text-stroke

这个属性可以指定描边的宽度和颜色。如下:

h1 {
  -webkit-text-stroke: 3px white;
   color:transparent;
}

-webkit-text-stroke的值是-webkit-text-stroke-width和-webkit-text-stroke-color的简写。
也可以这样写

h1 {
  -webkit-text-stroke-width: 3px;
  -webkit-text-stroke-color: white;
   color:transparent;
}

结果如下:


image.png

但是使用这种方式实现的描边,有个不好的地方,描边覆盖在文字上方的,相当于是内嵌,看起来是往内延伸,如果宽度设置的大一点,就会发现文字变得很难看。


image.png

可以通过paint-order属性,将描边放置到文字下方。
paint-order: stroke fill;

结果


image.png

但是如果是在chrom浏览器,需要特殊设置

@supports (-webkit-text-fill-color: white) {
  h1{ {
       color: white;
  }
}

需要注意的是,这个属性不是标准属性,在不同浏览器上,表现是很有可能不一致的。

2.shadow

可以使用text-shadow来实现

h1{
  color:blue;
  text-shadow: 
    1px 0 0 white, /*right */
    0 1px 0 white, /*top */
    -1px 0 0 white, /*left */
    0 -1px 0 white; /*bottom */
}

结果


image.png

可以把offset的值设置成3px,结果如下:


image.png

这种实现方式需要设置很多的阴影才能达到效果,并且fill不能为透明的颜色。

3.伪元素

使用伪元素的话,原理就是在文本下方再创建一个相同的文本,让上面的看起来有了阴影效果。

首先,给元素添加一个自定义的属性,值为文字的内容

<h1 data-text="HI">HI</h1>

然后添加一个伪元素:after

h1 {
  position: relative;
}
h1:after {
  content: attr(data-text);
  position: absolute;
  left: 0;
  z-index: -1;
  -webkit-text-stroke: 5px white;
  font-size: 1em;
}

结果如下


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • CSS如何实现文字描边效果?下面本篇文章就来给大家介绍一下使用CSS给文字添加描边效果的方法,希望对大家有所帮助。...
    phpCN中文网阅读 2,689评论 0 0
  • CSS如何实现文字描边效果?下面本篇文章就来给大家介绍一下使用CSS给文字添加描边效果的方法,希望对大家有所帮助。...
    浅浅而谈阅读 3,451评论 0 0
  • 引用CSS方式 内部引用 html文件中写一个 标签,并将样式写入到里面,举例: 外部引用 通过 标签实现,里面有...
    dawsonenjoy阅读 484评论 0 0
  • 你可以看看其他常用的 CSS 技巧: 常用的一些 CSS 技巧二 — 选择器(伪类与伪元素)[https://ww...
    lio_zero阅读 757评论 0 13
  • 前端开发工作中遇到的文本有很多特效,比如渐变色、描边、带渐变色的描边、文字外发光、投影等等。现在总结一些经验,方便...
    gaoshu883阅读 3,152评论 0 2