关于css的字体设置font-famliy多值显示规则,微软雅黑侵权问题,微软雅黑不生效问题
程序员文章站
2024-01-04 21:41:10
...
今天由于其他公司因为微软雅黑字体的版权问题罚款,我们总监开始问我关于字体设置的一些问题,通过查阅资料,记录下相关重点。如果有不对的地方,望同仁指正!
文章主要描述字体的多项设置规则,以及版权问题
一、font-famliy字体设置规则
常用的字体设置:
body,h1,h2,h3,h4,h5,h6{
font-family: "Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hiragino Sans GB", STHeiti, "Microsoft YaHei", sans-serif;
}
注意:定义font-family时,最好在最后加一个sans-serif,这样如果所列出的字体都不能用,则默认的sans-serif字体能保证调用。
显示规则总结:
- 从第一个向右识别,当系统字体(windows系统字体、mac系统字体)中有这个字体,则显示此字体,并且,同一台电脑所有浏览器显示相同。
- 如果没有这些字体,则会显示浏览器的默认字体,这种情况下,所有的浏览器用的默认字体就不一致了!
- 所以给body设置那么多字体,就是为了保证满足所有的系统,包括mac,window
- 当系统识别到能用的字体,便不会再向后查
- 当识别到的字体是拉丁文字体,比如Tahoma,即只对字母数字符号有作用的字体设置,会生效,但也会继续向后检测,直到识别到对中文字符的字体设置。注意,如果先设置了中文字体,包含了中英文及字符的设置,则会停止向后识别,后面设置的拉丁文字体就不会生效。
字体分为有衬线字体、无衬线字体
- sans-serif (我们常用的字体格式)没有这些额外的装饰,笔划粗细大致差不多
- serif 在字的笔划开始及结束的地方有额外的装饰,而且笔划的粗细会因直横的不同而有不同(就是写某个字开始和结尾的那一笔,带上卷卷)
注意:定义font-family时,最好在最后加一个sans-serif,这样如果所列出的字体都不能用,则默认的sans-serif字体能保证调用。
二、微软雅黑字体的侵权问题 – Microsoft YaHei
网站上使用“微软雅黑”字体有三种形式:
- 图片中使用“微软雅黑”字体,比如网站头图;
- 网站CSS用font-family声明网站使用“微软雅黑”字体,比如文章标题和正文;
- 网站通过@font-face引用“微软雅黑”,这种方式不常见。
三种形式只有一种不会设计侵权:
- 第一种情况,图片上使用“微软雅黑”字体,肯定涉及版权问题。
- 第二种情况,网站代码只了CSS声明,“微软雅黑”字体的文件是用户的客户端提供的,如果客户端电脑有“微软雅黑”字体,就会显示“微软雅黑”样式,如果客户端电脑用了是Windows XP系统,或者英文操作系统没有“微软雅黑”字体,那么会显示宋体。这种方式不会涉及到版权问题。
- 第三种情况,这种方式相当于把“微软雅黑”字体文件上传到网站服务器,它会 在需要的时候下载到客户端电脑,即便是WinXP客户端观看网页,或者没有“微软雅黑”字体的英文操作系统,网页 依然会显示微软雅黑 字体样式,这种方式会涉及版权问题。
三、微软雅黑不生效问题
建议使用font-family: “Microsoft YaHei”;
支持UTF-8和GB2312字符集。
不生效的3种情况:
- 当此属性定义的是全局样式时,对于表单类的标签就不会生效,还需要再次定义如:
body {font-family: “Microsoft YaHei”;}对表单input就不生效,
还需要定义一个input {font-family: “Microsoft YaHei”;}才可以。 - 本地计算机不存在微软雅黑字体,有的系统默认没有微软雅黑,则一般默认为宋体,只要下载一个微软雅黑字体,安装后即可。
- 还有一个是字符集问题,建议把中文font-family:" 微软雅黑";改为font-family: “Microsoft YaHei”;字符集申明一下UTF-8或GB2312。