html中文字空心如何设置,css 中字体文本小诀窍

news/2024/11/17 18:42:41/

本篇介绍 css 几种文本修饰的案例。

1、现实中的文字效果

1.1 凸版印刷效果

背景知识:text-shadow

凸版印刷需要考虑两种情况:浅底深色字和深色浅底字

浅底深色字代码示例

凸版印刷效果之下投影:浅底深色字要下投影

.letterpress-down {

background: hsl(210, 13%, 60%);

color: hsl(210, 13%, 30%);

text-shadow: 0 .03em .03em hsla(0, 0%, 100%, .8);

}

9eed4af93c68?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

浅底深色字效果图

深色浅底字代码示例

凸版印刷效果之上投影:深色浅底字要上投影

.letterpress-up {

background: hsl(210, 13%, 40%);

color: hsl(210, 13%, 75%);

text-shadow: 0 -.03em .03em hsla(0, 0%, 100%, 1);

}

9eed4af93c68?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

深色浅底字效果图

1.2 空心字效果

背景知识:text-shadow

两种实现方式:通过重叠多重轻微模糊的投影和 SVG 来描边

通过重叠多重轻微模糊的投影代码示例:

描边细的空心字效果:通过重叠多层轻微模糊的投影来描边

.stroke-text-thin {

background: deeppink;

color: white;

text-shadow: 0 0 1px black, 0 0 1px black, 0 0 1px black, 0 0 1px black, 0 0 1px black, 0 0 1px black;

}

9eed4af93c68?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

重叠多重轻微模糊效果图

通过 SVG 实现描边代码示例:

描边粗的空心字效果:通过SVG来实现

.stroke-text-thick {

font: 300%/1 rockwell, serif;

background: deeppink;

color: white;

}

.stroke-text-thick text {

fill: currentColor;

}

.stroke-text-thick svg {

overflow: visible;

}

.stroke-text-thick use {

stroke: black;

stroke-width: 6;

stroke-linejoin: round;

}

9eed4af93c68?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

SVG 描边效果图

1.3 文字外发光效果

背景知识:text-shadow

代码示例:

两种实现方法:1、叠加基层text-shadow,但不能平稳退化;2、使用css滤镜,可以平稳退化

.text-blur {

background-color: #203;

color: #ffc;

/* color: white; /*使用css滤镜,可以平稳退化*/

transition: 10s;

}

.text-blur:hover {

color: transparent;

text-shadow: 0 0 .3em, 0 0 .3em;

/*filter: blur(.1em);/*使用css滤镜,可以平稳退化*/

}

9eed4af93c68?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

文字外发光效果

1.4 文字凸起效果

背景知识:text-shadow

实现方法:加一长串的颜色逐渐变暗的累加投影,最后在底部加上一层强烈的模糊的暗投影

代码示例:

实现方法:加一长串的颜色逐渐变暗的累加投影,最后在底部加上一层强烈的模糊的暗投影

.text-3D {

height: 30px;

background-color: #58a;

color: #fff;

text-shadow: 0 1px hsl(0, 0%, 85%),

0 2px hsl(0, 0%, 80%),

0 3px hsl(0, 0%, 75%),

0 4px hsl(0, 0%, 70%),

0 5px hsl(0, 0%, 65%),

0 5px 10px black;

}

9eed4af93c68?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

3D 效果图

2、连字符断行

背景知识:hyphens

文本折行一直是个痛点,到现在浏览器的支持程度也不是很好!!

以下代码只在 Firefox 浏览器下才能实现,hyphens 兼容参考。

代码示例

连字符断行

.hyphenation {

width: 7.7em;

font: 180%/1.4 Baskerville, serif;

text-align: justify;

hyphens: auto;

}

这里需要借用一个新的属性:hyphens;有三个属性值:normal、none、auto,当设置了auto属性值时,就会实现断词折行;但这必须在html标签的lang 属性中指定合适语言。如果一定要使浏览器进行断词,则可以使用一些软连字符­。但是这个在chrome里不支持这个属性!!

“The only way to get rid of a temptation is to yield to it.”

9eed4af93c68?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

连字断行效果1

9eed4af93c68?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

连字断行效果2

3、环形文字

背景知识:基本 SVG 知识

代码示例:

环形文字

/* body {

font: bold 100% Helvetica, sans-serif;

}*/

.circular-text {

width: 25em;

height: 25em;

margin: 4em auto 0;

font-size: 18px;

}

.circular-text svg {

display: block;

overflow: visible;

transition: 10s linear transform;

}

.circular-text path {

fill: none;

}

这个不能通过纯css实现只能通过SVG实现

// 创建一个工具函数

function $$(selector, context) {

context = context || document;

var elements = context.querySelectorAll(selector);

return Array.prototype.slice.call(elements);

}

// 为了不重复写代码,用js动态创建SVG的方法

$$(".circular-text").forEach(function(el) {

// 创建SVG的命名空间

var NS = "http://www.w3.org/2000/svg";

var xlinkNS = "http://www.w3.org/1999/xlink";

var svg = document.createElementNS(NS, "svg");

var circle = document.createElementNS(NS, "path");

var text = document.createElementNS(NS, "text");

var textPath = document.createElementNS(NS, "textPath");

svg.setAttribute("viewBox", "0 0 100 100");

circle.setAttribute("d", "M0,50 a 50,50 0 1,1 0,1 z");

circle.setAttribute("id", "circle");

textPath.textContent = el.textContent;

// 这个地方容易写错

textPath.setAttributeNS(xlinkNS, "xlink:href", "#circle");

text.appendChild(textPath);

svg.appendChild(circle);

svg.appendChild(text);

el.textContent = "";

el.appendChild(svg);

})

9eed4af93c68?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

环形文字效果图


http://www.ppmy.cn/news/526913.html

相关文章

cmake常用命令解析

关键字 project可以⽤来指定⼯程的名字和⽀持的语⾔,默认⽀持所有语⾔。eg. project(HELLO),project(HELLO CXX)set⽤来显式指定变量,eg. set(SRC_LIST main.cpp)message向终端输出用户自定义的信息,主要包含三种信息&#xff1a…

跨 OT 部门管理来自新兴技术的网络风险挑战

本文首发微信公众号网络研究院,关注获取更多。 随着 AI 和自动化工具被引入企业,解决这些新技术(包括 OT 环境中的生成 AI)带来的网络风险需要一种综合方法。 这些新兴技术进步可以在 OT(运营技术)基础设…

一句话说清帧同步(附服务器Golang关键代码,客户端JS关键代码)。

任何对帧同步有疑问的人,都应该来看这篇文章,这是参考了2个帧同步模型,遇到各种问题并一一解决之后,彻底明白帧同步讲的是什么玩意的一篇文章。断断续续修改了将近2个月,说多了都是泪:(。 言归简短,书归正…

Roguelike到底是啥?讲讲和Roguelike 相关知识(搬运)

(搬运自 http://m.sohu.com/a/126992200_483399) (个人觉得可以从Rogue - 一切的开始这里开始往下看_(:з」∠)_) (这篇文章虽然很长,但的确是篇好文章,它里面不仅科普了一些知识,…

秦皇岛 2019 CCPC区域赛 部分代码

Decimal Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 2010 Accepted Submission(s): 894 Problem Description 给定一个正整数 n,要求判断 1n 在十进制下是不是一个无限小数。如果是,输出…

python著作_Python 常用库和著作介绍 ---全能与潮流

2017年最新IEEE世界编程语言排行榜公布,Python高居榜首。 在此之前,Python被广泛应用在web开发、系统运维、数据爬虫、数据分析和游戏服务器开发等,随着人工智能的浪潮,Python以其独特的语法特性和丰富的第三方类库成为了机器学习算法编程的优…

【知识蒸馏】让LSTM重返巅峰!

点击上方,选择星标,每天给你送干货! 来自 | AINLP 原创 作者 | 叶文杰 工作单位 | vivo 深圳AI研究院 NLP技术组 研究方向 | 自然语言处理 个人介绍 | 就读于东南大学二年级,在2020年8月至2021年1月在vivo 深圳AI研究院 NLP技术组…

科普:为什么DOTA2和LOL没有全图挂

转载自:http://www.acfun.cn/a/ac757653 全图挂,也就是可以看到视野外的东西。这个在WAR3中是非常普遍的。这里说一下WAR3,星际2,LOL,dota2这4款游戏的原理,外挂是根据游戏原理的漏洞做的,先说原…