首页 > 其他分享 >纯CSS实现炫酷文本阴影效果

纯CSS实现炫酷文本阴影效果

时间:2023-11-20 16:06:50浏览次数:40  
标签:font text variation 阴影 字体 炫酷 文本 CSS

如图所示,这是一个文本阴影效果,阴影有多个颜色,鼠标悬停时文本阴影效果消失,文本回到正常的效果。让我们逐步分解代码,看看如何使用纯CSS实现这个效果的。

基于以上动图可以分析出以下是本次实现的主要几个功能点:

  • 文本有多个颜色的阴影的效果
  • 文本有空心镂空的效果
  • 鼠标悬停时文本回到正常效果
  • 鼠标悬停时英文字体的粗细有变化

实现过程

多层颜色阴影

文字的阴影用text-shadow实现,但是一般情况下我们都是只控制一个颜色,多个颜色应该怎么控制呢?其实该属性支持添加多个文本阴影层,以创建特殊的阴影效果。每个层各自控制水平偏移量、垂直偏移量、模糊半径和颜色定义。这里的多个颜色的阴影代码如下:

text-shadow: 10px 10px 0px #07bccc,
  15px 15px 0px #e601c0,
  20px 20px 0px #e9019a,
  25px 25px 0px #f40468,
  45px 45px 10px #482896;

文本镂空效果

文字的镂空效果是用-webkit-text-stroke这个属性实现,-webkit-text-stroke 是一个用于在网页中设置文本描边的 CSS 属性。它是 WebKit 浏览器引擎(如Chrome、Safari)的专有属性。

这个属性允许开发者为文字添加一条描边线,使文字看起来更加突出和醒目。通过指定描边的宽度和颜色,可以控制描边的外观。

语法如下:

-webkit-text-stroke: <width> <color>;

<width> 指定描边的宽度,可以是正值或负值(负值用于创建内部描边)。<color> 指定描边的颜色值。

请看以下在浏览器中调试-webkit-text-stroke的效果。

文本粗细变化

文本粗细变化是基于 font-variation-settings 属性完成,这个属性用于设置字体的变体属性。可以用来定义 OpenType 字体的变化轴(variation axis)和对应的值(value),以便控制字体的外观和样式。

OpenType 字体是一种可缩放字型的字体类型,支持多种语言和高级排版功能的字体文件格式,它提供了更大的灵活性和一致性,使得设计师和排版师能够创建出更具创意和专业的排版作品。

它允许开发者通过调整字体的参数来获得不同的字形效果。这些参数可以包括字重(weight)、宽度(width)、斜度(slant)、粗细(contrast)等。

以下是 font-variation-settings 属性的语法:

font-variation-settings: <axis-name> <axis-value>;
  • <axis-name> 指定字体变体的轴名称,如“wght”表示字重,可以根据具体字体的支持情况选择对应的轴。
  • <axis-value> 指定字体变体轴的值,可以是一个数值或一个具体的字符串。

例如,要设置字体的字重为 700,可以使用以下代码:

font-variation-settings: "wght" 700;

需要注意的是,font-variation-settings 属性需要字体本身支持相应的变体轴和值。由于不同浏览器支持的字体和变体轴可能有所不同,本文的示例本文可以看到中文字体是没有发生变化的,就是因为这里使用的字体不支持中文。

有兴趣的可以看这篇文章详细介绍:CSS小技巧使用 font-variation 让文字起飞

这里的示例效果增加的代码如下:

font-variation-settings: "wght" 900, "ital" 1;

动画实现

接下来完成鼠标悬停时的动画效果,基于以上完成的 font-variation-settingstext-shadow,当鼠标悬停时设置文本阴影为none移除文本阴影,消除多层阴影效果,同时设置字体的粗细为100(正常)和字体样式设置为非斜体,从而恢复默认设置的font-variation-settings属性值。这里因为设置了字体的粗细为100所以字体的镂空效果也会消失,但这前提是使用的字体支持font-variation-settings属性。代码如下:

main:hover {
  font-variation-settings: "wght" 100, "ital" 0;
  text-shadow: none;
}

为了在悬停期间所应用的更改具有平滑的过渡效果,还增加了transition: all 0.5s过渡设置,持续时间为0.5秒。

优化版本

上面的版本是默认有阴影,鼠标悬停后恢复正常,以下将顺序调整为默认正常,鼠标悬停后显示阴影效果,并调整了阴影的颜色。

文本阴影代码如下:

text-shadow: 
  10px 10px 0px #07bccc, 
  15px 15px 0px #01e647,
  20px 20px 0px #e9b701,
  25px 25px 0px #f40468,
  45px 45px 10px #482896;

在线预览

码上掘金地址: https://code.juejin.cn/pen/7300188992132743220

最后

本文解析了通过 CSS text-shadow实现多层文字阴影效果,并使用 font-variation-settings-webkit-text-stroke 实现鼠标悬停时文本粗细以及文本阴影的变化,有兴趣的朋友可以尝试看看~

看完本文如果觉得有用,记得点个赞支持,收藏起来说不定哪天就用上啦~

专注前端开发,分享前端相关技术干货,公众号:南城大前端(ID: nanchengfe)

参考

原文动画参考:https://codepen.io/gayane-gasparyan/pen/vYmYMeV

标签:font,text,variation,阴影,字体,炫酷,文本,CSS
From: https://blog.51cto.com/react/8489371

相关文章

  • CSS选择器
    CSS选择器是用来选择需要改变样式的HTML元素的模式。到CSS3为止,支持的选择器类型有6种,包括标签选择器、派生选择器(上下文选择器)、id选择器、class选择器、属性选择器和通配符*选择器。以下是这六种选择器的简要介绍:标签选择器:通过HTML元素的标签名来选择元素。派生选择器(上下文选择......
  • Vue动态改变css样式的3种方法
    在网页开发中,我们经常会遇到动态的改变某个元素样式的需求,在vue里如何实现呢?官网上其实写的很详细了,对象语法,数组语法等。我自己总结了在开发中,个人用的比较多的三种方式1.class,三元表达式:class="[occupation==='请选择'?'lh60':'lh61']"css.red{color:red;}.blue......
  • vue2+element+vue-quill-editor实现富文本框组件(使用链接引入视频+上传本地视频+上传
    参考文档:https://www.duidaima.com/Group/Topic/Vue/12272前提不赘述,npm引入插件并全局导入 components文件夹下创建ArticleEditor.vue:<template><divclass=""><!--富文本框--><quill-editorref="myQuillEditor"v-bind:va......
  • 纯CSS动态渐变文本特效
    如图所示,这是一个炫酷的文本渐变效果,如同冰岛的极光一般。本次的文章让我们逐步分解代码,了解其实现原理。基于以上动图效果可以分析以下是本次动效实现的主要几点:文本中有多个颜色的动画每个颜色显示的半径不同,有大有小整体动画是有规律的重复进行着实现过程接下来开始正......
  • 一句话网页变灰 -css
    文档说明:只记录关键地方;发布时间:2023-11-19试验环境:chromium内核浏览器意义:记录一下怎么实现的工具:编写CSShtml{filter:grayscale(100%);}参考文档网站都变成灰色了,它是怎么实现的?一句话网页变灰百度一句话网页变灰谷歌......
  • css-1
     ......
  • Xpath获取指定元素相邻的不被标签括起来的文本
    如图:已知图片中标注1、2、3对应的内容在业务中我需要获取标志2对应的"58"这个值,但是这个值不包括在某个标签中,在span“集数”和br标签之间,为了减小获取"58"这个值不被之前的标签数量的影响先获取标签1所对应的元素,因为标签1有property="v:initialReleaseDate"这个属性和属......
  • Spring Boot 如何实现纯文本转成.csv格式文件?
    前言数据处理在现代软件开发领域中占据着重要的位置。在这些处理过程中,转换文本格式是很常见的一个需求,比如将纯文本转化为CSV格式文件。本文将介绍如何使用SpringBoot实现这一需求。摘要本文将会介绍使用SpringBoot将纯文本转化为CSV格式文件的方法。我们将会探讨这......
  • 35文本文件的读写
    一、最后效果   二、代码:1procedureTForm1.Button1Click(Sender:TObject);2begin3ifOpenDialog1.Executethen4Edit1.Text:=OpenDialog1.FileName;5end;678procedureTForm1.Button2Click(Sender:TObject);9var10SFileName,DFile......
  • Geany 2.0 发布使其成为更通用的文本编辑器和 IDE
    导读Geany 被认为是 Linux 上最好的PythonIDE 之一,它是一个基于GTK3工具包的开源、轻量级IDE。考虑到Geany的功能集对各种用户的吸引力,它也可以算作 Linux上Notepad++的替代品之一。现在,新版本已以“Geany2.0”的形式推出,提供了许多改进。让我们看看......