UI设计教程分享:字体变形—阴阳收缩法

illustrator字体设计教程 刘兵克Illustratorai字体设计日记 illustrator是矢量图形软件,主要用于产品设计、logo设计、广告设计、各类机械零件设计图、印前排版等等,用得最多的是处理印刷的图文。 多媒体设计师包括哪些? 学习网页设计、音像制品设计与制作、摄影摄像(前期拍摄)、影视后期制作的基础知识和技能,并娴熟掌握最新二维软件(Photoshop、Illustrator)以及多媒体制作软件(Flash、Premire、Director) 的操作技能... 阅读详情

阴阳师中国古代对自然规律发展变化基础因素的描述,是古代美学逻辑思维、推理分析的核心要素,也是描述万物基本要素和成因的概念之一。阴阳代表事物的对立关系,它是自然界的客观规律,是万物运动变化的本源,是人类认识事物的基本法则。万物皆有阴阳,不可割裂,阴阳相互依存。

笔画是构成字体的基本元素,汉字笔画设计融入了书写的韵味,融入了“阴阳”线的处理方法,讲究线条、笔画之美,使笔画挺拔有力、刚柔并济。

 

阴阳线看似高深,其实理解起来也很简单,字体有重量,笔画分粗细,笔画有两侧,单个笔画的两侧就是阴阳线。结合单个字体来看,字体每一笔画外围向阳(凸线的笔画,如上图红色部分)即为阳线,内阴(凹线的笔画,如上图黑色对应的笔画)则为阴线。

所谓阴阳收缩法,就是根据阴阳关系调整笔画的粗细关系与整个字体结构的处理方法。

设计要点:

1.笔画越粗,阴阳线调整的变形特征就越明显;笔画越细,变形特征就越弱。

2.阴阳线调整一般是从内阴线箱外阳线方向收缩调整。

3.调整规律为外阳内阴。

4.相同笔画的阴阳收缩要有继承关系,根据字体主题而定,要适度,不宜变化太多。

以DNF男枪职业版本标语“翱翔,天界之鹰”字体方案为例,运用阴阳线收缩法调整笔画,使字体更有男性特征。

搜集相关灵感——男性身材倒三角、忍者神龟、变形金刚狂派标志等等,提炼出三角、棱角。

 

选取原型字体——三种常用的适用于力度、硬刚劲风格的字体:方正粗谭黑简体、造字工房劲黑常规体、造字工房版黑常规体。

 

以下选取“造字工房版黑常规体”为例。

对于字体结构、重心的调整,又分为水平边缘结构调整和垂直边缘结构调整两种方法。

水平边缘结构调整:造字工房版黑体在水平方向,字的边缘结构不太规整。“翱、翔”两字笔画顶部高度不同,“天、界、鹰”三个字顶部横笔画之间的高度和重心有细微的差距,并不是真正意义上结构、重心平稳的字体。对“翔、天、界”三个字进行结构笔画和重心调整,调整字体间的字面关系,使其在水平方向保持一致,让字体整体看起来更均衡,重心一致。

垂直边缘结构调整:在垂直方向上,调整所以有字体的竖向笔画的对齐方式,使其左右对其一致,对上下结构和重心进行微调整,使其字面平稳、视觉均衡,让字体看起来更加简洁、整齐。

 

进行斜切处理。斜线比直线更有动感和力度,只是线条带来的视觉感,进一步加强字体的运动、格斗气质。

 

最后进行阴阳线收缩调整:结合男性身材倒三角的形状,对字体进一步进行个性处理。横向笔画保持不变,竖向笔画做阴阳线收缩调整。

 

 

最终效果图


编辑:千锋UI设计

【有利可图网】PS教程:制作变形文字 今天给大家更新一个有趣的制作变形文字的教程。 1 、首先我们先打开背景素材文件,单击工具箱中的横排文字工具按钮,将前景色设置为橙色#ff9702 ,选择合适的字体,设置字体大小,输入大写英文“ WOW " ,单击选项栏中的创建文字变形按钮,设置样式为花冠,选择“水平”复选框,弯曲为 1 00 % , 水平扭曲为 1 % ,垂直扭曲为 0% ,单击确定按钮结束操作。 如图所示: ... 阅读详情

相关推荐

相片变形扭曲工具

相片变形扭曲工具,可以将图片进行变形、扭曲,很好用。

超详细的字体设计干货教程!!

文字的外在形式特征,就是文字的风格,也就是文字的外衣。字体的艺术性体现在其完美的外在形式与丰富的内涵中,字体是文化的载体,社会的缩影。(这里解释一下,字体简单一点来说,就是字和体,例如设计补丁四个字,站在字的角度,它就是单纯的四个字,但是站在体的角度,我用的是毛笔字还是粉笔字来书写设计补丁。体现出来的风格或者说目的是不一样的,毛笔字体现复古风或者文学气息,粉笔字可能是为了装饰教师节。

2401_89266634的博客 3557

基于FPGA的TDC延迟链优化与码密度校准方法(1)——原理与实现

本文深入探讨了基于FPGA的时间数字转换器(TDC)延迟链非均匀性问题及其码密度校准方法。通过分析工艺偏差、温度电压影响等根源,详细介绍了码密度测试原理、逐位校准技术及气泡消除算法,并分享了自适应校准策略与多场景应用实践,有效提升TDC测量精度至皮秒级。

kiwi8的博客 488

AI绘图的场景应用:文生图、图生图

AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。感兴趣的小伙伴,赠送全套AIGC学习资料和安装工具,包含AI绘画、AI人工智能等前沿科技教程,模型插件,具体看下方。

qq_41314882的博客 7654

预处理详解(三)—— 命令行定义 + 条件编译 + 文件包含

文章目录前言 前言

2021dragon的博客 2187

Java 开发打飞机小游戏(附完整源码)

上图 写在前面 技术源于分享,所以今天抽空把自己之前用java做过的小游戏整理贴出来给大家参考学习。java确实不适合写桌面应用,这里只是通过这个游戏让大家理解oop面向对象编程的过程,纯属娱乐。代码写的很简单,也很容易理解,并且注释写的很清楚了,还有问题,自己私下去补课学习。 完整代码 敌飞机 import java.util.Random; 敌飞机: 是飞行物,也是敌人 public class Airplane extends FlyingObject implements Enemy {

一只独孤的程序猿 1万+

UI字体设计的几种常用方法

User Interface简称UI,行业内称为视觉设计。今天给大家分享一下,UI设计中常用的几种字体设计方法。初学者学习UI字体设计应该从哪个方向入门!网上有很多种类型的好看字体,有些很好看的字体设计则是需要花费钱进行购买的。所以,如果自己能够进行设计,则是避免了费用的产生,同时也会让别人增加对你的印象分,自己也学会了新的一种小技能。那么,我们平时常用的几种字体有哪些了?UI 设计中常用的几种字...

weixin_33847182的博客 1598

Qt 5.9.1 32位下,手把手搞定周立功CAN二次开发库的加载与配置(含常见错误排查)

本文详细介绍了在Qt 5.9.1 32位环境下配置周立功CAN二次开发库的完整流程,包括环境准备、项目配置、常见错误排查及性能优化建议。特别针对MinGW 32bit环境,提供了.pro文件的精准配置和DLL部署策略,帮助开发者快速解决库文件匹配、编译报错和运行时问题,实现高效的CAN总线通信开发。

weixin_28717431的博客 356

UI设计教程分享:让你彻底读懂字体

一份普普通通、规规矩矩的设计一份让人印象深刻、新颖有趣的设计差在哪?其实就差在三个字上!“优秀的设计不是每一个细节都有亮点,而是弱化其他元素,让某一个亮点最大化。” 今天“骉叔的设计心得”就来总结一下关于“字”的心得。在设计和选择字体前,我们要先想明白文字的功能是什么?从原始时期的人类在墙壁上画下的那几个抽象的符号,到殷墟发现的甲骨文,再到现在发展到上万个现代文字。有各种各样的文字形式,但其实它们...

weixin_34392843的博客 367

深入理解Cornerstone3D.js渲染Stack影像数据

这个是调用的core\src下的init.ts的init方法,作用是:初始化cornerstone-core,检测客户端是否支持WebGL,默认情况下是支持中等GPU层级.另外一个重要的是实例化WebWorkManager.WebWorkManager类似于Java的线程池,是用来对Web Worker进行管理的管理器。使用DICOMwebClient获取影像文件的元数据,然后将它们缓存到imageLoader的metaDataManager中,在上面我们可以输出元数据看一下是什么。

wangwei19820517的博客 1492

TMC2209串口配置实战:从寄存器解析到电机精准控制

本文详细解析TMC2209步进电机驱动芯片的串口配置方法,从硬件连接到UART通信协议,再到核心寄存器功能详解。通过实战案例展示电流控制、微步细分和速度调节等关键配置,帮助工程师实现电机精准控制,并提供了常见故障诊断和优化技巧。

f6g7h8i9j的博客 1174

6. Z 字形变换 (Python 实现)

题目: 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下: P A H N A P L S I I G Y I R 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGYIR”。 请你实现这个将字符串进行指定行数变换的函数: string convert(string s, int numRows); 示例 1: 输入:s

d_l_w_d_l_w的博客 616

手把手教你学Simulink——基于Simulink的CLLC谐振变换器双向对称控制

本文介绍了一种基于Simulink的CLLC谐振变换器双向对称控制方法。针对CLLC拓扑的多阶谐振特性,采用固定频率、50%占空比、仅调节相位差的对称控制策略,实现了宽电压范围调节和全负载ZVS软开关。详细阐述了Simulink建模步骤,包括功率级搭建、相位差生成逻辑和双向切换实现,并通过仿真验证了稳态性能和双向无缝切换能力。该方法解决了传统PFM控制的不足,具有控制简单、效率高、易于工程实现的优势,适用于车载充电和储能系统等双向功率应用场景。

MHD0815的博客 302

浅谈文字变形

工作中常常会用到文字变形这个工具,很多情况下文字是不能直接编辑的,必须将文字图层转化为普通图层,即栅格文字图层,这样才可以对文字添加一些特效,但是新的问题又出现了,如果将文字转换层普通的图层也许经过多次的编辑和变形最终得到的图片会有模糊不清晰的现象,那么这个时候我们需要用到另外一种方法,即将文字图层转换成路径,这样不管我们对文字图层做怎么样的变形都不会出现模糊的现象,现在我们就以对文字进行透视,切片

yingtaojiayue的博客 1110

手把手教你学Simulink--人形机器人控制场景实例:基于Simulink的多连杆人形机器人拉格朗日动力学建模仿真

matlab编辑% 连杆长度 (m)% 躯干(髋到CoM)% 大腿% 小腿% 质量 (kg)% 转动惯量(绕质心,简化为杆)matlab编辑% 躯干CoM(假设在髋上方L_body/2处)% 左大腿CoM% 左小腿CoM% (右腿类似,略)本文完成了基于Simulink的多连杆人形机器人拉格朗日动力学建模仿真,实现了:✅ 定义7-DOF平面人形结构✅ 使用Symbolic Math Toolbox自动推导动力学方程✅ 生成。

MHD0815的博客 146

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Unity3d-UGUI特效之Image的Skew变形、倾斜效果

这次在项目中,做动画时,想要多UI的图片做倾斜动画,比如进场有一定的斜度,然后又变回原来的样子。于是在网上搜索有关Image变形或倾斜的做法,后面找到根据文档发现可以通过继承Image来做一些修改,关键是在Image渲染之后,我们拿到顶点坐标,对坐标做一定的偏移,就可以达到目的了。先来看看效果:看着效果还不错,看代码:using System.Collections; using System.C...

苏小败在路上 1万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

ElementUI table动态展开收起,以及初始收起状态(另累写法仅作参考)

最近的需求碰到一个使用ElementUI table表格的时候需要实现点击动态加载数据并展开和收起。 效果图 实现 ????ElementUI 树形数据与懒加载 <el-table ref="table" :row-key="id" :tree-props="{ children: 'children' }" @expand-change="handleExpendRow" ></el-table> //

qq_45487080的博客 5632

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【UI设计培训】字体设计-偏旁部首变形

  UI设计培训中字体设计也是非常重要的一节课,字体在UI设计岗位中可以说用到的频率是非常高的,是设计师必须学会并且要有娴熟运用的一项必备技能,在进行汉字设计的时候,可以把汉字拆分成几个偏旁部首的形式进行设计,这样可以有效帮助入门设计师降低字体设计的门槛。但大家不要误认为字体设计就是偏旁部首变形的一个组合,整体的字体设计还是要根据字体立意,品牌方向等多方面的因素进行设计的。偏旁部首的字体变形知识给大家提供一种思路与工具性的参考。   最近这几年一直流行的设计趋势就是萌,萌萌哒的设计作品当然也需要同种类型的

qinge_Crazy的博客 931

jquery ui放大缩小_电商UI设计的最佳做法

Nov10 阅读时长约12分钟作者:Suzanne Scacca翻译:Fiona审校:Fiona当你想象购物者在你创建的电商平台中浏览时,你或多或少希望他们遵循这个过程:步骤1:进入首页或者分类页。步骤2:使用导航元素引导用户进到商店,并根据他们要查找的特定内容进行准确定位。步骤3:查看他们感兴趣产品的描述和其他相关的购买详细信息。步骤4:选择产品规格(如果可能),然后将所需的物品添...

weixin_28870939的博客 368

最优秀的六种造字方法

中华文字博大精深,关于汉字的造字法,从汉朝以来,相沿有“六书”的说法。六书之首,就是象形法。一般来说,汉字的造字方法有象形、指事、会意、形声、转注和假借。但是严格来说,转注和假借这两种应属于用字的方法。象形法:象形字当中,也有一些不是直接用来表示具体实物,而是用来表示与实物有关的概念。例如:“大”字,原来是像一个正面直立的人的形状,手足展开,就表示“大”的意思了。指事法:就是用象征性的符号或在图形...

zoomla188的博客 6139

Illustrator+FontLab 进行字体设计教程

        Illustrator 提供了强悍的绘图工具以及丰富的笔刷,让你简单高效的绘制字体形状。但当你在 Illustrator 中完成字体制作之后,你就要面对如何将矢量数据转入 Fontlab 的问题了。最简单的办法就是直接把你的字形复制粘贴过去,但你马上就会发现两者的缩放比例可能有天壤之别。这里提供一种方法,可以让你将数据以精确的尺寸从 Illustrator 传递到 FontLab。...

RENYUAN 6235

【AI】简单的方法教你做一组字体设计

字体设计初级方法交流、学习,喜欢可以分享,下面上设计教程。 首先,你要有一个软件——AI,这一点非常重要!!切记!! 然后我们开始设计,这次设计的是工作室出品的一组明信片上面的文字:2014琼州学院——琼院是枕边温暖的絮语,路还在继续,梦刚刚开始(有木有文绉绉的?哈哈……瞬间觉得特有文化、有内涵、小清新气质有木有?!!) 主要这组明信片在2014发售,并且是我大琼院首次有学院风景的名片,对很

米饭工作室 1万+

7款漂亮的纯css字体样式

简单粗暴,直接上马:<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <h1 class="vintage1">美丽的中国语</h1> <h1 class="vintage2">美丽的中国语</h

开心大表哥 8万+
上一篇: UI设计教程分享:让你彻底读懂字体
下一篇: web前端开发工程师坚守前端还是做全栈开发好?
码农王也
博客等级 码龄9年 1817粉丝 267原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值