CSS字体属性全解析

所属分类: 网页制作 / CSS 阅读数: 2065
收藏 0 赞 0 分享

话说CSS字体属性font-family、font-style、font-size、font-weight、font-variant:

使用CSS,可以对字体进行设置,字体属性包括五种常见属性:字体系列font-family、字体样式/字体风格font-style、字体大小font-size、字体粗细font-weight、字体变量font-variant。通过这五个属性,可以设定文本在web页面的显示效果或文本的打印效果。

1.字体系列font-family

支持按照优先级顺序列出各种要指派使用的字体,当用户系统没有安装首选字体时候,向后搜索,选用下一个指派的字体解析显示。
如:

复制代码
代码如下:

p{font-family:Verdana,Arial,Helvetica,sans-serif;}

其中,字体名称由两个或者多个单词构成,必须使用引号括起来,如下:

复制代码
代码如下:

p{font-family:"Times New Roman",Georgia,serif;}

说明:由于一般的操作系统与浏览器都安装与支持以下字体,所以web开发中使用最安全的字体系列为:Arial、Helvetica、 Times New Roman、 Times、 Courier New 和 Courier。而Verdana、Georgia、Comic Sans MS、Trebuchet MS、Arial Black和Impact字体对于苹果的Mac系统和微软的Windows系统来说是安全的,但可能不支持安装在像Linux这样的开源操作系统中。其他经常使用但是不太安全的字体还有:Palatino、Garamond、Bookman和Avant Garde等。

2.字体样式/字体风格font-style
font-style属性有三个值:normal、italic和 oblique。三种字体风格对应三种表现的字体效果:
normal:默认样式。浏览器显示一个标准的字体。
italic:浏览器会显示一个斜体的字体。
oblique:浏览器会显示一个倾斜的字体。

容易产生疑问和困惑是italic 和 oblique 之间的区别。主要区别总结为:

字体样式italic、oblique 需要系统中字体文件的支持。
字体名中带有“Italic”、“Cursive”(草书)或“Kursiv”(一种书信体)的字体通常标记为“italic”。
字体名中带有“Oblique”、“Slanted”(斜体)或“Incline”(倾斜)的字体通常标记为“oblique”。
如果“italic”字体不存在,而只有Oblique字体,则使用后者“oblique”字体,但若“oblique”字体不存在,则不能用“italic”替代,此时浏览器会将正常直立字体倾斜一个角度来作为倾斜字体使用。
在很多情况下,斜体和倾斜字体几乎看不出区别,特别是对那些没有特别提供这两种样式的字体来说
从本质上来说,斜体(italic)是一种简单的字体风格,对每个字母的结构有微小的变动,外观区别于正常字体风格。不过,倾斜(oblique)风格则是正常竖直文本的一个倾斜版本。

通常情况下,italic 和 oblique 文本在 web 浏览器中看上去不存在明显的差别。

3.字体大小font-size

字体大小的设置主要分两种类型:固定大小和相对大小。

字体大小的度量单位包括很多,常用的有像素px、磅pt、em、百分比。

①px,表示pixel,像素的大小随用户显示器的大小和像素深度而变。一个像素等于屏幕上一个点的高度/宽度,是屏幕上显示的最小单位。这个度量单位最适合显示器。
②pt,表示point,来源于打印设计,是一印刷行业常用单位,叫“磅”,等于1/72英寸。pt是一个标准的长度单位,最适合于印刷,但也常用于用户显示器。
③em,相当于当前字体1个字大小,用于描述相对尺寸。即%,在css中,1em=100%,结合CSS继承关系使用,具有灵活性。 需要注意的是,相对字体大小的计算是基于父元素的字体大小,如果元素之间层层嵌套,问题有时候会复杂的不可预料。例如,对于在单元格、表格、div中的一段文本,如果在每一级都规定了自己的相对字体大小规则,那么相对度量方式就会产生复合效应。 不同的浏览器间并没有一个统一的标准来定义如何指定一个给定元素的父元素,以及在相对字体大小计算中哪一个才是参考字体。所以,为了成功使用相对字体大小方式,需要仔细规划网页设计和CSS样式,尽量避免潜在的元素嵌套问题。
④百分比,相对于当前字体em的比例)。
而英寸in(72pt)、厘米cmt(约28pt)、毫米mm(约3pt)、pic(相当于12pt)这些度量单位则适合于打印,是一种印刷度量单位。ex是相对于当前字体大小,等于小写字母x的高度,是一种不常用的度量单位。

扩展:显示器的PPI(DPI),表示pixel(dot)per inch,每英寸的像素(点)数,表示“清晰度”,“精度” 。设置更改方法:桌面上点右键,弹出快捷菜单: > 属性 > settings > Advanced > General > DPI setting > 96 DPI。

在浏览网页过程中,所有的“大”“小”概念,都是基于“屏幕”这个“显示界面”上。“屏幕”上的各种信息,包括文字、图片、表格等等,都会随屏幕的分辨率变化而变化。在不同分辨率下,无论是px还是pt,屏幕上的各种信息都会改变大小。
由于屏幕大小不同,分辨率也不同,要保证一个字体在所有用户面前呈现的大小都一样,这是一个不可能实现的任务。

在Windows系统红,px和pt的使用区别,只有当用户改变默认的96DPI下才会产生。使用px定义文字,无论用户怎么设置,都不会改变大小;使用pt定义文字,当用户设置超过96DPI的值,数值越大,字体就越大。附公式:px = pt * DPI / 72 。

4.字体粗细font-weight
font-weight用户设定字体的浓淡粗细程度,可能的值:normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit
可以分为三类:关键字属性,包括normal 、bold 两个;相对关键字属性,它的粗细是相对于从上级父元素的继承值而言的,包括bolder和lighter两个;数字属性,包括从“100”到“900”的9个数字序列(只能是100的整数倍)。这个数字序列表示从最细(100)到最粗(900)的字体粗细程度。
可用值      属性值的说明

normal      缺省值。正常字体显示。
bold        粗体
bolder      相对于父元素稍粗
lighter     相对于父元素稍细
100         至少和200一样淡
200         至少和100一样粗,至少和300一样淡
300         至少和200一样粗,至少和400一样淡
400         字体正常显示,相当于normal
500         至少和400一样粗,至少和600一样淡
600         至少和500一样粗,至少和700一样淡
700         粗体,相当于bold
800         至少和700一样粗,至少和800一样淡
900         至少和800一样粗

字体粗细属性是根据用户电脑上安装的字体作相应匹配显示的。很多情况下,由于系统作了最相近的匹配,从显示效果上很难看出不同的 font-weight值的区别。对于种类繁多花样百出的字体而言,目前并没有一个统一的规则标明粗细的程度。有的字体名称本身就能描绘粗细程度,如Arial Bold字体显示本身就比Arial粗不少,像这样的字体名称的主要作用就是在单个字体集中区别字体的粗细程度。
如果某种字体集中已使用了9级数值的范围(如OpenType一样),字体的粗细应该直接与9级数值相匹配。如果一种字体同时拥有Medium、Book、Regular、Roman或者Normal的字体集名称,Medium通常分配为“500”,其他4个分配为“400”。如果字体集中有标记为“bold”的名称,相当于数值“700”。如果字体集中少于9级粗细级别,参照缺失填补方式的规定。有了以上匹配方式,对于“bolder”和“lighter”的匹配也不难理解。“bolder”就是匹配字体集中可用的下一级较粗字体,反之“lighter”也是一样,匹配下一级较细字体。它们的参照系都是继承值,因此粗细程度都是相对于继承值而言的。

如果字体集中少于9级粗细度算法,那么填补缺失的方法如表所示:

填补填补缺失的方法

5.字体变量font-variant

font-variant 属性设置小型大写字母的字体显示文本,这意味着所有的小写字母均会被转换为大写,但是所有使用小型大写字体的字母与其余大写文本相比,其字体尺寸偏小。

可能的值
值         描述
normal         默认值。浏览器会显示一个标准的字体。
small-caps     浏览器会显示小型大写字母的字体。
inherit     规定应该从父元素继承 font-variant 属性的值。任何的版本的IE(包括 IE8)都不支持属性值 "inherit"。
对于web开发,一般不要在一篇文章中定义超过3级的粗细程度,且页面设计时粗细程度应有所跳跃,否则反而不能突出加粗的内容。

更多精彩内容其他人还在看

Opera中国的WEB标准课程

网页制作Webjx文章简介:在这篇文章里,我要向大家介绍我和其他很多人花费数月时间开发的一个课程——Web标准课程,该课程旨在向大家提供Web设计和开发的坚实基础,无论读者是谁,此教程完全免费、可访问,并且不需要预备知识。当然,我主要还
收藏 0 赞 0 分享

CSS样式表渐进增强的基本概念

网页制作Webjx文章简介:如果你挠着头想弄清楚优雅降级和渐进增强的区别,我告诉你,这是视角问题。优雅降级和渐进增强都考虑网站在各种设备的各种浏览器上如何良好运转。两者区别的关键在于它们各自关注的焦点,以及这种关注对工作流程的影响
收藏 0 赞 0 分享

简单介绍Web Developer插件制作网页

网页制作Webjx文章简介:Firefox浏览器是一个良好支持W3C标准的开放源代码的浏览器,拥有Linux/Windows/Mac版本。因为Firefox浏览器良好支持W3C标准,所以使用Firefox来调试网页是非常好的。 Firefox浏览器是
收藏 0 赞 0 分享

CSS布局带来的巨大影响:CSS display属性值

网页制作Webjx文章简介:网页元素应用上那些与表格相关的display属性值后,能够模仿出与表格相同的特性。我将会在该文中给大家演示这种方法给CSS布局带来的巨大影响。 应原书编辑要求,先在文章顶部给出链接:《Everything You
收藏 0 赞 0 分享

用div css模拟表格对角线

这只是探讨一种CSS模拟表格对角线的用法,实际在工作中可能觉得这样做有点小题大作,这不是本主题讨论的重点。如果对此深以为然的朋友,请一笑过之 首先声明: 这只是探讨一种CSS模拟表格对角线的
收藏 0 赞 0 分享

IE Firefox在css中的差别 (部分)

1、单位问题 问题:任何距离的数值ie可以不加单位,ff必须要求写单位(0除外) 解决:写全单位如padding:0px; 2、水平居中 问题:div里的内容,ie默认为center,而ff默认left 解决:mairgin:0px auto; 3、高度问题
收藏 0 赞 0 分享

不用js可以实现信息提示效果

[code] <style> body { font:verdena; font-size:14px; color:#000 } h1{ font:verdena; font-size:22px; color:#000 } h2{ font:verdena;
收藏 0 赞 0 分享

CSS解决未知高度的垂直水平居中自适应问题

今天有人问起,晚上试着写出来,供参考; 以下代码兼容主流浏览器IE6、IE7、Firefox、Opera。 从最简单的开始………… 一、如何让一个DIV水平居中? 这个简单不作过多说明! [code] <st
收藏 0 赞 0 分享

CSS cursor 属性 -- 鼠标指针样式效果

取值: [ [<uri> ,]* [ auto | crosshair | default | pointer | move | e-resize | ne-resize | nw-resize | n-resize | se-resize | sw-resize |
收藏 0 赞 0 分享

css 简单区别ie6,ie7,firefox的写法

同一样式里可以这样 [code] margin:17px; FF +margin:17px; IE6 IE7 _margin:17px; IE6 [/code] 按这个顺序,刚好区分开三个浏览器
收藏 0 赞 0 分享
查看更多