首页 > 其他分享 >CSS实现文字描边效果

CSS实现文字描边效果

时间:2023-08-19 15:23:27浏览次数:29  
标签:文字 效果 text content stroke 描边 CSS

一、介绍
最近在一个项目的宣传页中,设计师使用了文字描边效果,之前我确实没有实现过文字的描边效果,然后我在查阅资料后,知道了实现方法。文字描边分为两种:内外双描边和单外描边,也就是指在给文字加上描边效果后,描边的方向是向内外同时占用文字空间还是只向外扩充文字空间的区别。

二、具体代码
1、文字内外双描边效果
这种描边效果相当于内外同时占用相同的描边宽度,只需要借助一个css属性:text-stroke: width color 即可,该属性的第一个值表示描边的宽度,第二个值表示描边的颜色。

代码:

<p class="plan-bg1">
	这里使用了内外描边文字效果
</p>
<style>
.plan-bg1 {
  font-size: 30px;
  font-weight: 900;
  /* 设置描边宽度及颜色 默认为字体内外描边 */
  text-stroke: 2px #2173FF;
  /* 兼容Webkit(Chrome/Safari)内核浏览器的写法 */
  -webkit-text-stroke: 2px #2173FF;
  color: #fff;
}
</style>

2、文字外描边效果
文字外描边效果需要结合元素自定义属性data-content、伪元素::before、attr()以及text-stroke等多种属性才能实现。其原理为:给描边文本通过text-stroke: width color 设置描边效果,但此时为内描边,然后data-content的内容要与描边文本内容相同,通过attr()方法获取到data-content的内容,并结合::before将文本渲染出来,然后通过position: absolute 将其覆盖在要描边文字的上面,并将伪元素文本的描边要设置为0,最终就实现了文字的外描边效果。
总结:在内描边的文本上覆盖了一层文本,将text-stroke: width color 向内描边的部分给挡住,就只剩下了向外描边的部分,从而实现外描边效果。

代码:

<!-- 通过自定义属性 data-content 存储描边文字数据 -->
<p class="plan-bg2" data-content="这里使用了外描边文字效果">
	这里使用了外描边文字效果
</p>
<style>
.plan-bg2 {
  font-family: Heavy;
  font-size: 30px;
  font-weight: 900;
  /* 设置描边宽度及颜色 */
  text-stroke: 2px #2173FF;
  /* 兼容Webkit(Chrome/Safari)内核浏览器的写法 */
  -webkit-text-stroke: 2px #2173FF;
}
/* 通过属性选择器结合伪元素before 实现文字外描边效果 */
[data-content]::before {
  /* attr()是用来获取被选中元素的某属性值,并且在样式文件中使用 */
  content: attr(data-content);
  position: absolute;
  /* 实现元素外描边的关键 */
  -webkit-text-stroke: 0;
  /* 文本颜色 */
  color: #fff;
}
</style>

三、其他实现方法

我们还可以通过canvas画布,来实现绘制描边文字效果。

标签:文字,效果,text,content,stroke,描边,CSS
From: https://www.cnblogs.com/dlx609/p/17642499.html

相关文章

  • 前端入手超简单之CSS3免费教程
    CSS样式课程目标1.css引入方式(重点)2.css选择器*(重点)3.css盒子模型(重点)4.css3常见效果(重点)5.CSS3常用的规则;级联样式表css介绍引用百度百科css概述层叠样式表其实就是对静态页面进行装饰,但是,特别要注意的点是:通常建议表现形式与页面内容分离(例如:人就是内容,穿着打扮......
  • InCopy 文字编辑校对工具-InCopy 最新版安装包下载 系列软件
    AdobeInCopy2021最新版文字编写和副本编辑软件,AdobeInCopy2021最新版通常与InDesign软件协同使用,增强设计与编辑小组之间的协作。设计者用InDesign把版面排好后,输出给InCopy文档供十名文字编辑使用,他们可以随意修改文稿,随后把文档再寄回给排版者,文字会自动更新,版面丝毫没变,因为......
  • 现代CSS布局技术:Flexbox和Grid的使用指南和最佳实践
    在现代Web开发中,CSS布局技术变得越来越重要。Flexbox和Grid是两种常用的CSS布局技术,它们可以帮助我们创建灵活、可维护的布局。Flexbox布局Flexbox是一种基于弹性盒子模型的布局技术,它可以让我们更加容易地创建水平或垂直方向上的布局。以下是Flexbox的常见属性:容器属性disp......
  • 如何用CSS实现响应式设计并优化用户体验
    在移动设备的时代,网站的响应式设计变得越来越重要。响应式设计的目标是使网站适应不同尺寸和分辨率的设备,并提供最佳的用户体验。本文将介绍如何使用CSS实现响应式设计并优化用户体验。使用媒体查询设置CSS样式媒体查询是CSS3中的一个强大的特性,可以根据不同的媒体类型和设备特......
  • 3 CSS组合选择器
    3组合选择器页面元素比较复杂,存在多个嵌套。为了更加灵活选择页面中的元素,CSS中还提供了组合选择器。组合选择器就是将多个基本选择器通过一定的规则连接起来组成一个复杂选择器。后代子代选择器<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><tit......
  • postcss px转不转rem呢?
    1、用postcss时,有时候你的px不转rem;你希望他转;如:elementui的labelWidth配置了数值但是不转原因:行内元素都不转解决方法:放到vue的style元素中就行啦2、有的你不希望他转解决方法:方法1:px单位改为大写PX方法2:这行css后注释上/*no*/why?我看了下postcss的源码;大体就是先......
  • 2 css基本选择器
    2基本选择器id选择器id选择器使用“#”进行标识,后面紧跟id名,其基本语法格式为:#id名{属性1:属性值1;属性2:属性值2;属性3:属性值3;}该语法中,id名即为HTML元素的id属性值。大多数HTML元素都可以定义id属性,元素的id值是唯一的,只能对应于HTML中某一个具体的元素。id选择器不支......
  • 1 CSS的引入方式
    1CSS的引入方式CSS样式有三种不同的使用方式,分别是行内样式,嵌入样式以及链接式。我们需要根据不同的场合不同的需求来使用不同的样式。行内样式行内样式,就是写在元素的style属性中的样式,这种样式仅限于元素内部起作用。当个别元素需要应用特殊样式时就可以使用内联样式。但不......
  • 文字转语音 - 搭建微软tts整合web服务提供api接口(免费)
     微软tts是业界公认文字转语音效果最佳本文使用docker搭建微软tts服务并提供api接口对外提供服务对接官方免费在线体验接口,搭建后可免费进行调用使用,不保证永久稳定可用调用方式url:http://127.0.0.1:5003/ttsmethod:POST参数 类型 描述text string 语音文字内容voiceName stri......
  • 微软文字转语音,就用这三个免费的方法~
    总所周知,微软的TTS语音合成技术目前已经做到了非常自然,接近真人音色,在不了解前提下有时候真的很难分辨出这是机器合成的声音。  目前微软的文字转语音已经支持21个中文简体的声音,并且支持多种声音风格的选择和语速、音调的调整。  今天给大家分享三个非常实用的......