用原生CSS编写动态字体
HTML部分:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>动态字体</title>
<link rel="stylesheet" type="text/css" href="index.css"/>
</head>
<body>
<h1>Best Look</h1>
<h2>Yeah 666!</h2>
</body>
</html>
CSS部分:
:root {
	font-size: 32px;
}
body {
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: 100vh;
	flex-direction: column;
	background-color: #33ff00;
	font-family: "arial, helvetica, sans-serif";
	perspective: 2500px;
}
h1, h2 {
	position: relative;
	padding: 0;
	margin: 0;
	color: #fff;
}
h1 {
	font-size: 6rem;
	animation: 5s bast ease-in-out infinite;
}
@keyframes bast{
	0%, 100% {
		transform: rotate3d(0, 1, 0, -20deg);
	}
	50% {
		transform: rotate3d(0, 1, 0, 20deg);
	}
}
h2 {
	font-size: 3rem;
	letter-spacing: -4px;
	animation: 2.5s ye ease-in-out infinite;
}
@keyframes ye {
	0% 100% {
		transform: translate3d(1, 0, 0, -10deg);
	}
	50% {
		transform: rotate3d(1, 0, 0, 10deg);
	}
}
h1::before,
h1::after {
	content: 'Best Look';
}
h2::before,
h2::after {
	content: 'Yeah 666!';
}
h1::before,
h1::after,
h2::before,
h2::after {
	position: absolute;
	top: 0;
	left: 0;
}
h1::before {
	color: #9900ff;
	z-index: -3;
	animation: 5s h1-before ease-in-out infinite;
}
@keyframes h1-before {
	0%, 100% {
		transform: translate3d(15px, 5px, -10px);
	}
	50% {
		transform: translate3d(-15px, 5px, -10px);
	}
}
h1::after {
	color: #330033;
	z-index: -4;
	animation: 5s h1-after ease-in-out infinite;
}
@keyframes h1-after {
    0%, 100% {
		transform: translate3d(30px, 10px, -20px);
	}
	50% {
		transform: translate3d(-30px, 10px, -20px);
	}
}
h2::before {
	color: #00ccff;
	z-index: -1;
	animation: 2.5s h2-before ease-in-out infinite;
}
@keyframes h2-before {
	0%, 100% {
		transform: translate3d(0px, 6px, -10px);
	}
	50% {
		transform: translate3d(0px, -3px, -10px);
	}
}
h2::after {
	color: #000ccc;
	z-index: -2;
	animation: 2.5s h2-after ease-in-out infinite;
}
@keyframes h2-after {
	0%, 100% {
		transform: translate3d(0px, 12px, -20px);
	}
	50% {
		transform: translate3d(0px, -6px, -20px);
	}
}
效果图:

用原生CSS编写动态字体的更多相关文章
- canvas :原生javascript编写动态时钟
		canvas :原生javascript编写动态时钟 此时针是以画布的中心为圆心: g.translate(width/2,width/2); 此函数是将画布的原点移到(width/2,wid ... 
- 用原生CSS编写-怦怦跳的心
		<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ... 
- HTML+CSS编写规范
		在任何一个项目或者系统开发之前都需要定制一个开发约定和规则,这样有利于项目的整体风格统一.代码维护和扩展.由于Web项目开发的分散性.独立性.整合的交互性等,所以定制一套完整的约定和规则显得尤为重要. ... 
- 原生 Javascript 编写五子棋
		原文地址:原生 Javascript 编写五子棋 博客地址:http://www.extlight.com 一.背景 近一个月没写 Javascript 代码,有点生疏.正好浏览网页时弹出五子棋的游戏 ... 
- css加载字体跨域问题
		刚才碰到一个css加载字体跨域问题,记录一下.站点的动态请求与静态文件请求是不同的域名的.站点的域名为 www.domain.com,而静态文件的域名为 st.domain.com.问题:页面中加载c ... 
- 原生css 中变量的使用
		前两天看到阮大神的一篇在css中使用变量的文章,整理了一下. 这个重要的 CSS 新功能,所有主要浏览器已经都支持了.本文全面介绍如何使用它,你会发现原生 CSS 从此变得异常强大. 一.变量的声明 ... 
- CSS编写指导规范和建议
		在参与规模庞大.历时漫长且参与人数众多的项目时,所有开发者遵守如下规则极为重要: 保持 CSS 易于维护 保持代码清晰易懂 保持 CSS 的可拓展性 为了实现这一目标,我们要采用诸多方法. 本文档第一 ... 
- 使用 jQuery 基本选择器获取页面元素,然后利用 jQuery 对象的 css() 方法动态设置 <span> 和 <a> 标签的样式
		查看本章节 查看作业目录 需求说明: 使用 jQuery 基本选择器获取页面元素,然后利用 jQuery 对象的 css() 方法动态设置 <span> 和 <a> 标签的样式 ... 
- 原生 CSS 网格布局学习笔记
		下是来自Oliver Williams的帖子. Oliver已经学习了相当长时间的原生CSS网格,可以说是在CSS网格方面有一定的发言权.在这篇文章中,他将以非同寻常的思路分析自己的CSS网格布局学习 ... 
随机推荐
- noip模拟11
			T1 math 就挺水一小破题目,第一眼看好像不可做,看着看着突然发现假设x和y的最大公约数是gcd,那么kx%y一定是gcd的倍数, 然后想到可以把所有数字与k的gcd求出来,打一个完全背包,可是仔 ... 
- 最长子序列(线性DP)学习笔记
			子序列和子串不一样.子串要求必须连续,而子序列不需要连续. 比如说\(\{a_1,a_2\dots a_n\}\),他的子串就是\(\{a_i,a_{i+1},\dots, a_j|1\leq i\l ... 
- 你知道怎么从jar包里获取一个文件的内容吗
			目录 背景 报错的代码 原先的写法 编写测试类 找原因 最终代码 背景 项目里需要获取一个excle文件,然后对其里的内容进行修改,这个文件在jar包里,怎么尝试都读取不成功,但是觉得肯定可以做到,因 ... 
- linux exit 和 _exit的区别
			今天仔细看了一下exit和_exit这两个函数的区别,实际上exit也是调用了_exit退出函数的,只不过在调用_exit之前,exit还进行了一些多余的工作,也正是因为这样,相比起来exit就没有那 ... 
- cf 11B Jumping Jack(贪心,数学证明一下,,)
			题意: 给一个数X. 起始点为坐标0.第1步跳1格,第2步跳2格,第3步跳3格,.....以此类推. 每次可以向左跳或向右跳. 问最少跳几步可以到坐标X. 思路: 假设X是正数. 最快逼近X的方法是不 ... 
- docker  存储驱动(storage driver)知识总结
			http://www.sohu.com/a/101016494_116235 一,先看docker镜像是如何构建和存储. 下面是ubuntu:15.04的镜像分层.一共是4层,每一层都由一些只读并且描 ... 
- "迷途"的野指针,都快找不着北了
			指针,C语言开发者表示很淦,指针的使用,很多人表示不敢直面ta,不像Java一样,有垃圾自动回收功能,我们不用担心那么多内存泄漏等问题,那C语言里边呢,指针又分为了"野指针",&q ... 
- SQL注入之猫舍
			第一步:先查看是否存在注入点:构造?id=1 and 1=1 回车后发现页面正常 构造?id=1 and 1=2 发现页面异常,得出结论:存在注入点 第二步:判断字段数 当输入order by 1和o ... 
- [python]Appium+python +pytest 实现APP自动化,基于安卓
			1.安卓环境搭建 &关于app自动化,个人觉得安装过程比较复杂,脚本难度实现和web自动化差不多封装关键字即可,因此,下面会写安装.启动APP以及过程中遇到的一些坑(这一篇偏向解释给个人) & ... 
- centos7.2安装nginx
			1 安装相关编译环境 yum install gcc-c++ yum install pcre pcre-devel yum install zlib zlib-level yum openssl o ... 
