`
dowhathowtodo
  • 浏览: 778630 次
文章分类
社区版块
存档分类
最新评论

{{CSS}}字体font属性详解

 
阅读更多
1.字体系列font-family
CSS定义了5种通用字体系列:
1.Serif字体
2.Sans-serif字体
3.Monospace字体
4.Cursive字体
5.Fantasy字体
当然还有各种特定字体系列,如Times,Verdana,Helvetica,Arial

最佳实践:
1.在所有的font-family规则中都提供一个通用字体系列,这样就提供了一条后路,在用户代理无法提供与规则匹配的特定字体时,可以选择一个候选字体。
2.当一个字体名中有一个或多个空格(如New Century Schoolbook),或者字体名中包含#,%或$之类的符号时,必须要在font-family声明中加引号,在这种情况下整个字体名应用用引号括起,这样用户代理才能搞清楚字体名到底是什么。
还有一种必须加引号的的是与所接受关键字匹配的字体名。如有一种名为"cursive"的字体,就必须加引号。显然,字体名中如果只包含一个词,而且这个词与font-family的任何关键字都不冲突,就不需要加引号,通用字体系列名(serif,monospace等)在指示具体的通用系列时就不能加引号。如果将一个通用名引号引起,用户代理就会认为你需要一个与此同名的特定字体,如'serif',而不是一个通用字体系列。

2.字体加粗font-weight
font-weight:normal|bold|bolder|lighter|100|200|300|...|900|inherit
初始值:normal
应用于:所有元素
继承性:有
计算值:数字值或某个数字值加上某个相对数

3.字体大小font-size
font-size:xx-small|x-small|small|medium|large|x-large|xx-large|smaller|larger|<length>|<percentage>|inherit
初始值:medium
应用于:所有元素
继承性:有
百分数:根据父元素的字体大小来计算
计算值:绝对长度

4.字体风格(font-style)和字体变形(font-variant)
1)有风格的字体font-style:normal|italic|oblique
font-style很简单,就3种值,唯一有点复杂的就是italic文本和oblique文本之间的差别。基本上说,斜体(italic)是一种单独的字体风格,对每个字母的结构有一些小改动,来反映变化的外观。对serif字体尤其如此,除了文本字符“有些斜”以外,serifs可以修改为一种斜体字体。与此不同,倾斜(oblique)文本则是正常竖直广西的一个倾斜版,标为Italic,Cursive,Kursiv的文本总是映射到italic关键字,而oblique总是对应到标为Oblique,Slanted,Incline的字体。
2)字体变形font-variant:small-caps|normal|inherit

5.font属性
font:[[<font-style>|<font-variant>|<font-weight>]?<font-size>[/<line-height>]?<font-family>]|captio|icon|menu|...|inherit
初始值:根据单个属性
应用于:所有元素
继承性:有
百分数:对于<font-size>要相对于父元素来计算;对于<line-height>则相对于元素的<font-size>来计算
计算值:见单个属性(font-style等)

注:
1)font的前三个值允许采用任意的顺序。
2)font的后两个值font-size,font-family不仅要以此顺序(font-size在前,font-family在后)作为声明中的最后两个,而且font声明中必须有这两个值。如果少了其中某个属性,那个整个规则就都是无效的,很可能被用户代理完全忽略。如
h1 {font:noraml normal italic 30px sans-serif;} /* OK */
h1 {font:30px sans-serif;} /* OK */
h1 {font:sans-serif;} /* Invalid 缺少font-size */
h1 {font:lighter 14px;} /* Invalid 缺少font-family */
3)为font设置line-height,尽管line-height是一个文本属性而不是字体属性。增加这个line-height值完全是可选的,就像font前3个属性。但若包含了一个line-height,要记住font-size总是在line-height之前,绝对不能在line-height后面,而且这两个属性要有/分隔。
4)最后再强调一下(好罗嗦啊):font中font-size和font-family值是必须的,而且顺序不可变。不过其他值都是可选的。

6.字体匹配过程详解
CSS允许匹配字体系列,加粗,变形。所有这些都是通过字体匹配来完成的,这是一个相当复杂的过程。
1.用户代理创建(或访问)一个字体属性数据库,这个数据库列出了用户代理能访问的所有字体的各种属性。
2.用户代理取得应用了字体属性的元素,并构建一个字体属性列表,其中列出显示该元素的必要字体属性。基于这个列表,用户代理先对显示元素使用的字体系列做第一个选择。如果完全匹配,那么用户代理就可以使用这个字体。否则,需要多做一些工作。
a.字体首先根据font-style属性进行匹配,关键字italic可以与所有标有italic,oblique的字体匹配,若没有这样的字体,则匹配失败;
b.再根据font-variant属性匹配。未标"small-caps"的字体都认为是normal,与small-caps匹配的字体可以标为"small-caps"的字体,也可以是允许合成small-caps风格的字体或者用大写字母替换小写字母的字体。
c.然后根据font-weight匹配,由于CSS中处理font-weight的特殊方式,这个匹配不会失败。
d.之后再针对font-size匹配,必须在某个可忍受的范围内匹配,不过这种忍受程度要由用户代理定义。
3.如果在第2步中未匹配任何字体,用户代理就会在这个字体系列中查代下一个候选的字体,如果找到了,就对该字体重复第2步。
4.假设找到一个通用匹配,但其中不包括显示给定元素所需的一切——例,这种字体没能版权符号——用户代理就回到第3步,再搜索另一个候选字体,然后再通过第2步来验证这种字体是否匹配。
5.最后,如果没有找到匹配,而且所有候选字体已经都试过了,用户代理就会为给定的通用字体系列选择默认字体,尽其所能正确地显示这个元素。

分享到:
评论

相关推荐

    css常用样式font设置字体的多种变换(实例详解)

    CSS 字体属性定义文本的字体系列、大小、加粗、风格(如斜体)和变形(如小型大写字母)font-family控制字体,由于各个电脑系统安装的字体不尽相同,但是基本装有黑体、宋体与微软雅黑这三款字体,通常这样写font-...

    详解使用 CSS 的 font-size-adjust 属性改善网页排版

    CSS 中的 font-size-adjust 属性允许开发者基于小写字母的高度指定 font-size ,这可以有效地提高网页文字的可读性。 在这篇文章中,你不仅能了解到font-size-adjust 属性的重要性,并且还能学会如何在你的项目中...

    详解CSS3 rem(设置字体大小) 教程

    在Web中使用什么单位来定义页面的字体大小,至今天为止都还在激烈的争论着,有人说PX做为单位好,有人说EM优点多,还有人在说百分比方便,以至于出现了CSS Font-Size: em vs. px vs. pt vs. percent这样的PK大局。...

    Css样式–字体样式和链接样式详解

    1.指定字体:font-family (1)实用通用字体系列: 复制代码代码如下:body {font-family: sans-serif;} (2)制定字体系列: 复制代码代码如下: h1 {font-family: Georgia, &lt;span xss=removed&gt;serif;} 在所有 ...

    详解如何在css中引入自定义字体(font-face)

    本篇文章主要介绍了详解如何在css中引入自定义字体(font-face),能将自定义的字体添加到网页中,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    CSS Web安全字体组合详解

    font-family属性是多种字体的名称,作为一个应变制度,以确保浏览器/操作系统之间的最大兼容性。如果浏览器不支持的第一个字体,它尝试下一个的字体。 你想要的字体类型如果浏览器找不到,它会从通用的字体类型中...

    css中一些常用的font-size字体单位和line-height详解

    px(pixel)像素 相信大家对像素这个名词并不陌生,接下来来介绍下这个单位的...相对于当前对象内文本的字体尺寸.也可以理解为是一个百分比单位, 1em=100%.那么来介绍下在css样式中em呈现的是什么样的效果吧: 如果当前子

    详解CSS3中字体平滑处理和抗锯齿渲染

    要知道,W3C对CSS中字体的抗锯齿渲染是有过考虑的,如font-smooth,不过可能由于不同操作系统以及浏览器内核对字体的渲染存在差异,总之,他并没有被选入Web标准。但是WebKit还是保留了一套自有的非标准选择器来实现...

    css 字体单位之间的区分以及字体响应式的实现详解

    在实现响应式布局的过程中,如何设置字体大小在不同的视窗尺寸以及不同的移动设备的可读性? 需要了解的有: 1.px,em,pt之间的换算关系1em = 16px1px = 1/16 em = 0.0625em ////以下用的比较少//////1em = 12pt1px = ...

    详解中文字体在CSS样式中font-family对应的英文名称

    宋体:SimSun 黑体:SimHei 微软雅黑:Microsoft YaHei 微软正黑体:Microsoft JhengHei 新宋体:NSimSun 新细明体:PMingLiU 细明体:MingLiU ...宋体:SimSuncss中中文字体(font-family)的英文名称

    Nginx实现跨域使用字体文件的配置详解

    今天在使用子域名访问根域名的CSS时,发现字体无法显示,在确保CSS和Font字体的路径加载无问题后,基本确定是因为跨域的问题。 通过Nginx模块Http_Headers_Module来添加Access-Control-Allow-Origin允许的地址 ...

    css入门笔记

    属性:font-size 取 值:数值 px (pt) 2.内部样式 在网页独立地方声明所有样式 在头元素&lt;head&gt;&lt;/head&gt;中先增加一对&lt;style&gt;&lt;/style&gt;,在&lt;style&gt;标记写样式规则 样式规则:由选择器和...

    CSS网站布局实录 (第二版)PDF版

    6.5.1 font字体缩写 6.5.2 margin与padding边距缩写 6.5.3 border边框缩写 6.5.4 list列表缩写 6.5.5 background背景缩写 6.5.6 color颜色缩写 6.6 CSS代码优化 6.6.1 增加代码重用率 6.6.2 使用样式覆盖进行简化 ...

    css属性行高line-height的用法详解

    偶然看到的一篇介绍line-height的文章,图文并茂很详细也很透彻,转过来学习。 什么是行间距? 古时候我们使用印刷机来...你可以定义line-height属性来覆盖初始值:p{line-height:140%} 你可以有5种方式来定义line-

    举例详解CSS中的字体尺寸设置

    在CSS中可以用很多不同的方式来设定字体的尺寸。一般来说,这些单位被分成两大类:绝对单位(absolute)和相对单位(relative)。  绝对单位在大多数情况下是相对于某些实际量度而言的固定值,即是说它们一旦设定,就...

    详解CSS3中常用的样式【基本文本和字体样式】

    摘要:为了使你的网页看上去更美观,在这里你将会看到一些CSS3中常用到的样式。非常适合初学者!大鹏一日同风起,扶摇直上九万里!一起学习,一起进步! 1、字体大小的单位 px (像素):这是一个绝对单位; em :1...

    CSS默认可继承样式详解

    常听说,颜色和字体是可继承的,盒模型样式是不可继承的,但其他样式呢?本文内容包括所有可继承的样式 常用可继承样式 CSS Code复制内容到剪贴板 color  cursor  direction  font  letter-spacing  line...

    详解CSS中iconfont的使用

    我们都知道网页中的字体我们可以控制大小、样式、变形、拉伸、默认字体等属性,所以这个iconfont必须是以文字嵌入到样式中,所以想到的必须是font;既然是图标那么它就必须有一个路径来引入进来,首先我们一开始想到...

    ASP.NET4 GridView的四种排序样式详解

    与ASP.NET 的其他Web控件一能够,Gridview控件拥有很多不同的CSS样式属性设置,包括象CssClass,Font字体,ForeColor,BackColor,BackColor, Width, Height等等。Gridview还包括了一些应用在表格的行上的样式属性,...

Global site tag (gtag.js) - Google Analytics