如何设置 font-family 比较好以及字体的中英文名
如何设置 font-family 比较好?
font-family: sans-serif。
这行代码设置所有字体为系统默认的无称线字体。如果在各种操作系统和浏览器都做对的情况下,它应该对中英文使用默认的无称线字体。即大多数情况下英文显示『Arial』或『Helvatica』,中文显示『黑体』或『微软雅黑』,日文显示『哥特体』。当然,也可以设置font-family: serif。那么相应的就是『Times』、『宋体』和『明朝』。
很可惜这项设置只能在Mac和Windows8下正确显示。在其它Windows下其实是无效的。原因如下:
- 除了Win8以外的Windows都会错误地使用宋体(称线字体)显示。(其实也没问题,只是那些想用雅黑显示的网页就没戏了)
- Windows XP及以前的操作系统上黑体显示的中文字非常难看不便阅读。
----------------------分析开始之前----------------------
为了使问题简化,在此就讨论的条件和范围说明一下:
注1:貌似某些新版本的浏览器能够在Windows上正确分辨中文的称线和无称线字体了。
注2:Win8上的IE10似乎已经修正了对无称线字体的显示问题。但是不知道Win7的IE10会怎样。
注3:不讨论Windows和Mac以外的操作系统了。
注4:不讨论一个网页内标题和正文使用不同中文字体的情况。
注5:不讨论中文、日文和拉丁字母以外的字符。
注6:不讨论用户在浏览器的设置中中强行设置字体的情况。
注7:不讨论称线和无称线字体以外的情况,如等宽字体。(因为对中文实际使无效的)
----------------------分析开始----------------------
在给出答案前,先说各种字体的在各种操作系统上现象:
宋体:
- 在Windows操作系统上显示良好。但是仅限于12像素和14像素。超出14像素的字基本就会出现字不够方正,锯齿明显的现象。
- 在Mac上各种字号都可以很好的显示。这是因为Mac上针对字体所做的反锯齿效果做的比较好。
黑体或微软雅黑:
黑体和微软雅黑都属于无称线字体。
- Windows Vista,Windows 7和Windows 8上在各种字号下显示良好。但是仅就阅读来售,雅黑在Windows下不大适合做大段阅读,因为会出现明显的字体歪歪扭扭的现象。雅黑比较适合做UI字体,比如按钮、导航、菜单。大号字体下用以显示标题也不错。因此我们看到很多新网站都开始使用雅黑了。
- Mac:黑体没有任何问题。虽然有些人号称看苹果上的黑体字很不习惯。但是个人觉得还是最适合阅读的字体。而且也适合做UI字体。
- Windows XP及以前的Windows:这里就比较复杂了。因为:
1) Windows XP原生是不带微软雅黑的。
2) 加装Office 2007后会加装微软雅黑。
3) Windows XP的Clear Type做的非常不好,导致雅黑在Windows XP上的显示效果基本无法阅读。
为了发挥雅黑的好处,同时解决兼容性问题,我在服务器端针对各种不同的操作系统做了不同的判断。如下:
- Windows XP及以前版本的Windows
font-family: Arial, 宋体, sans-serif;
- Windows Vista和Windows 7
font-family: 'Microsoft Yahei', sans-serif;
Sorry,英文就无法设置字体了,因为中文字体都包含了英文字体。好在雅黑显示英文还凑合。
- Mac及其它操作系统
font-family: sans-serif;
其实这还不够好,因为在Windows下,正文使用宋体显示比较合适。我的下一步的计划是:
- 针对Windows下的正文使用宋体。
- 针对雅黑字体,用13px和15px等奇数字体显示,因为效果更好。
CSS 定义了 5 种通用字体系列
- Serif 字体
- Sans-serif 字体
- Monospace 字体
- Cursive 字体
- Fantasy 字体
- Serif 字体
- 这些字体成比例,而且有上下短线。如果字体中的所有字符根据其不同大小有不同的宽度,则成该字符是成比例的。例如,小写 i 和小写 m 的宽度就不同。上下短线是每个字符笔划末端的装饰,比如小写 l 顶部和底部的短线,或大写 A 两条腿底部的短线。Serif 字体的例子包括 Times、Georgia 和 New Century Schoolbook。
- Sans-serif 字体
- 这些字体是成比例的,而且没有上下短线。Sans-serif 字体的例子包括 Helvetica、Geneva、Verdana、Arial 或 Univers。
- Monospace 字体s
- Monospace 字体并不是成比例的。它们通常用于模拟打字机打出的文本、老式点阵打印机的输出,甚至更老式的视频显示终端。采用这些字体,每个字符的宽度都必须完全相 同,所以小写的 i 和小写的 m 有相同的宽度。这些字体可能有上下短线,也可能没有。如果一个字体的字符宽度完全相同,则归类为 Monospace 字体,而不论是否有上下短线。Monospace 字体的例子包括 Courier、Courier New 和 Andale Mono。
- Cursive 字体
- 这些字体试图模仿人的手写体。通常,它们主要由曲线和 Serif 字体中没有的笔划装饰组成。例如,大写 A 再其左腿底部可能有一个小弯,或者完全由花体部分和小的弯曲部分组成。Cursive 字体的例子包括 Zapf Chancery、Author 和 Comic Sans。
- Fantasy 字体
- 这些字体无法用任何特征来定义,只有一点是确定的,那就是我们无法很容易地将其规划到任何一种其他的字体系列当中。这样的字体包括 Western、Woodblock 和 Klingon。
理论上讲,用户安装的任何字体系列都会落入到上述某种通用系列中,但实际上可能并非如此,不过例外情况(如果有的话)往往很少。s
-----------以上引自W3School
西方国家字母体系分为两类:serif以及sans serif。
serif是有衬线字体,意思是在字的笔画开始、结束的地方有额外的装饰,而且笔画的粗细会有所不同。相反的,sans serif就没有这些额外的装饰,而且笔画的粗细差不多。
serif字体容易识别,它强调了每个字母笔画的开始和结束,因此易读性比较高,sans serif则比较醒目。在走文阅读的情况下,适合适用serif字体进行排版,易于换行阅读的识别性,避免发生行间的阅读错误。
sans serif强调每一个字母,serif更强调于一个单词。
中文字体中的宋体就是一种最标准的serif字体,衬线的特征非常明显。字形结构也和手写的楷书一致。因此宋体一直被做为最适合的正文字体之一。不过由于强调横竖笔画的对比,在远处观看的时候横线就被弱化,导致识别性的下降 。
----------以上引自百度百科
sans serif(非衬线字体)更适合于作为标题,强调,
serif(衬线字体)更适合于正文。
------------
具体哪些字体是sans serif(非衬线字体),哪些字体是serif(衬线字体),在dreamweaver的CSS提示框中可以查到,其他的上网搜索。
------------
引自QQ.com的CSS如下
body{margin:0;padding:0 0 12px 0;font-size:12px;line-height:22px;font-family:"宋体","Arial Narrow",HELVETICA;background:#fff;}
不难看出,字体大小:12像素,行高22像素,字体:宋体,Arial,Narrow,helvetica
引自taobao.com的CSS如下
body{font:12px/1.5 tahoma,arial,\5b8b\4f53;}
这段CSS的意思为:字体大小:12像素,行高1.5倍,即150%,1.5*12=18像素,字体:tahoma,arial,\5b8b\4f53,这里的\5b8b\4f53是汉字"宋体"的Unicode编码,不采用 SimSun的原因是 Firefox 的某些版本和 Opera 不支持 SimSun 的写法。
字体英文,unicode对照表
平台 |
中文名 |
英文名 |
Unicode |
Unicode 2 |
Windows |
新细明体 |
PMingLiU |
\65B0\7EC6\660E\4F53 |
新细明体 |
细明体 |
MingLiU |
\7EC6\660E\4F53 |
细明体 |
|
标楷体 |
DFKai-SB |
\6807\6977\4F53 |
标楷体 |
|
黑体 |
SimHei |
\9ED1\4F53 |
黑体 |
|
宋体 |
SimSun |
\5B8B\4F53 |
宋体 |
|
新宋体 |
NSimSun |
\65B0\5B8B\4F53 |
新宋体 |
|
仿宋 |
FangSong |
\4EFF\5B8B |
仿宋 |
|
楷体 |
KaiTi |
\6977\4F53 |
楷体 |
|
仿宋_GB2312 |
FangSong_GB2312 |
\4EFF\5B8B_GB2312 |
仿宋_GB2312; |
|
楷体_GB2312 |
KaiTi_GB2312 |
\6977\4F53_GB2312 |
楷体_GB2312; |
|
微软正黑体 |
Microsoft JhengHei |
\5FAE\x8F6F\6B63\9ED1\4F53 |
微软正黑体 |
|
微软雅黑 |
Microsoft YaHei |
\5FAE\8F6F\96C5\9ED1 |
微软雅黑 |
|
Mac OS |
华文细黑 |
STHeiti Light [STXihei] |
\534E\6587\7EC6\9ED1 |
华文细黑 |
华文黑体 |
STHeiti |
\534E\6587\9ED1\4F53 |
华文黑体 |
|
华文楷体 |
STKaiti |
\534E\6587\6977\4F53 |
华文楷体 |
|
华文宋体 |
STSong |
\534E\6587\5B8B\4F53 |
华文宋体 |
|
华文仿宋 |
STFangsong |
\534E\6587\4EFF\5B8B |
华文仿宋 |
|
丽黑 Pro |
Pro LiHei Pro Medium |
\534E\6587\7EC6\9ED1 Pro |
丽黑Pro |
|
丽宋 Pro |
LiSong Pro Light |
\4E3D\5B8B Pro |
丽宋 Pro |
|
标楷体 |
BiauKai |
\6807\6977\4F53 |
标楷体 |
|
苹果丽中黑 |
Apple LiGothic Medium |
\82F9\679C\4E3D\4E2D\9ED1 |
苹果丽中黑 |
|
苹果丽细宋 |
Apple LiSung Light |
\82F9\679C\4E3D\7EC6\5B8B |
苹果丽细宋 |
|
Office |
隶书 |
LiSu |
\96B6\4E66 |
隶书 |
幼圆 |
YouYuan |
\5E7C\5706 |
幼圆 |
|
华文细黑 |
STXihei |
\534E\6587\7EC6\9ED1 |
华文细黑 |
如何设置 font-family 比较好以及字体的中英文名的更多相关文章
- 利用private font改变PDF文件的字体
利用private font改变PDF文件的字体 前几天做项目,需要使用未安装的字体来改变PDF的文件.以前并没有实现过类似的功能,幸运的是我在网上找到了类似的教程,并成功实现了这个功能. 下面就跟大 ...
- 如何设置HTML页面中文本的字体
字体属性介绍 CSS中的字体属性是干什么的呢?字体字体肯定和字体有关咯,就是设置HTML页面中文本的字体, CSS中常用的字体属性有几种呢,笔者给大家梳理了下,比较常用的一共有5种,今天我们就看看这5 ...
- ADT开发中的一些优化设置:代码背景色、代码字体大小、代码自动补全
初学Android开发,在网上找到一些ADT工具的优化,自己设置好了,截图保存下来.免得以后忘了. 1. 设置背景颜色: 色调85.饱和度90.亮度205 RGB:199.237.204 2. 设置代 ...
- 设置c++中cout输出的字体颜色
在c++中控制台的默认字体颜色是白色,但是有时我们需要其他颜色,比如用红色提示错误,使用绿色提示计算完成,使用黄色表示警示等等,那么如何设置控制台文字的颜色呢? 一种方法是通过右键控制台进行颜色设置, ...
- 【POI xlsx】使用POI对xlsx的单元格样式进行设置 / 使用POI对xlsx的字体进行设置
涉及到的样式都在代码中有说明: package com.it.poiTest; import java.io.FileNotFoundException; import java.io.FileOut ...
- Idea 如何设置微软雅黑等其它字体
使用过idea的同学都知道,idea的功能相对于explise来说,功能太强大了啊~个人感觉,idea真心挺智能的.但是,这里有一个小瑕疵,就是能够设置的字体,有限! 对于用惯了 微软雅黑 字体的人, ...
- DataGridView中在新增行时怎样设置每个Cell单元格的字体样式
场景 DataGridView怎样实现添加.删除.上移.下移一行: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10281414 ...
- Js动态设置rem来实现移动端字体的自适应
//设置根元素字体 var win = window, doc = document; function setFontSize() { var winWidth = $(window).width( ...
- IOS Suppot Font 苹果默认支持的字体一览(配图)
这些字体都是IOS设备(使用ipad2测试) 默认支持的字体,也就是在AIR中不用设置绑定字体情况下 看到的样子 感觉上应该IOS仅为中文设置了一种字体就是 Heiti SC
随机推荐
- 问题-关于sharemem程序访问WEB出现内存错误处理
[delphi技术] 关于sharemem造成dll错误的处理办法问题现象:如果程序和dll之间用string作为参数传递时容易出现错误问题处理:需要在程序的uses中使用sharemem.这个sha ...
- 解决org.apache.subversion.javahl.ClientException: svn: E200007: Runner for 'org.tmatesoft.svn.core.wc2.SvnMerge' command have not been found
最近使用svn的merge功能合并代码,一直出现一个错误: org.apache.subversion.javahl.ClientException: svn: E200007: Runner for ...
- 常用的windowd属性和对象
window.location.href="" 指向一个定向的url并提交数据过去 window.location.reload() 强制刷新当前 ...
- GNU LIBC源代码学习之strcmp
比較两个字符串 我的代码块 #include <string.h> int my_strcmp(const char* s1,const char * s2) { if((s1==NULL ...
- YUV422蓝屏显示输出功能辅助调试
YUV422蓝屏显示输出功能辅助调试 YUV422有YUYV,YVYU,UYVY,VYUY四种,以下笔者就就以UYVY为例介绍一下数据构成.因为常常要跟视频输入打交道,所以YUV422这种常见的视频信 ...
- ThinkPHP3.1新特性:命名范围
概述 命名范围功能,给模型操作提供了一系列的(连贯操作)封装,让你更方便的查询和操作数据.我们来具体了解下这一用法. 定义属性 要使用命名范围功能,主要涉及到模型类的_scope属性定义和scope连 ...
- Python邮箱客户端编写之接收邮件操作
Python的POP3类有很多方法来管理邮箱. 首先需要导入poplib库,import poplib POP3(server) 连接到邮箱服务器 user(username)将用户名发送至服务器,等 ...
- Emmet最全提示说明
前一篇文章简单了说明了Emmet的使用:Emmet相关使用 今天我就将关于subline中Emmet插件的snippets.json文件进行具体说明, 在snippets.json文档中,我们能够看到 ...
- 自定义QT事件
qtuserclass 1.事件ID 本质上就是一个整型值.0-999作为系统保留字段,自定义事件从QEvent::User(也就是1000)开始, 例如: #define MY_EVENT QEve ...
- Java基础知识强化之IO流笔记59:打印流
1. 打印流 (1)分类: • 字节打印流 PrintStream • 字符打印流 PrintWriter (2)打印流的特点: • 只能写数据,不能读数据 • 只能操作目的地,不能操作数据源 ...