字体

作者: DARKSIIIDE | 来源:发表于2019-02-10 14:02 被阅读0次

    一、font-family

    font-family 规定元素的字体系列。

    1.font-family设置多个字体

    font-family 可以把多个字体名称作为一个“回退”系统来保存。如果浏览器不支持第一个字体,则会尝试下一个。也就是说,font-family 属性的值是用于某个元素的字体族名称或/及类族名称的一个优先表。浏览器会使用它可识别的第一个值。

    有两种类型的字体系列名称:

    • 指定的系列名称:具体字体的名称,比如:"times"、"courier"、"arial"。
    • 通常字体系列名称:比如:"serif"、"sans-serif"、"cursive"、"fantasy"、"monospace"
    • 提示:使用逗号分割每个值,并始终提供一个类族名称作为最后的选择。
    p{
        font-family: "Times New Roman",Georgia,Serif;
    }
    

    注意:使用某种特定的字体系列(Geneva)完全取决于用户机器上该字体系列是否可用;这个属性没有指示任何字体下载。因此,强烈推荐使用一个通用字体系列名作为后路。

    2.使用引号

    您也许已经注意到了,上面的例子中使用了引号。只有当字体名中有一个或多个空格(比如 New York),或者如果字体名包括 # 或 $ 之类的符号,才需要在 font-family 声明中加引号。

    单引号或双引号都可以接受。但是,如果把一个 font-family 属性放在 HTML 的 style 属性中,则需要使用该属性本身未使用的那种引号:

    <p style="font-family: Times, TimesNR, 'New Century Schoolbook', Georgia, 'New York', serif;">...</p>
    
    3.CSS 字体系列

    在 CSS 中,有两种不同类型的字体系列名称:

    • 通用字体系列 - 拥有相似外观的字体系统组合(比如 "Serif" 或 "Monospace")
    • 特定字体系列 - 具体的字体系列(比如 "Times" 或 "Courier")

    CSS 定义了 5 种通用字体系列:

    • Serif 字体
    • Sans-serif 字体
    • Monospace 字体
    • Cursive 字体
    • Fantasy 字体

    关于五种通用字体的介绍:
    https://www.cnblogs.com/hunter001/articles/2076102.html

    二、字体风格

    1.font-style 属性

    最常用于规定斜体文本。

    该属性有三个值:

    • normal - 文本正常显示
    • italic - 文本斜体显示
    • oblique - 文本倾斜显示

    italic 和 oblique 的区别:
    斜体(italic)是一种简单的字体风格,对每个字母的结构有一些小改动,来反映变化的外观。与此不同,倾斜(oblique)文本则是正常竖直文本的一个倾斜版本。
    通常情况下,italic 和 oblique 文本在 web 浏览器中看上去完全一样。

    2.font-variant 属性

    可以设定小型大写字母。

    小型大写字母不是一般的大写字母,也不是小写字母,这种字母采用不同大小的大写字母。

    <head>
      <style type="text/css">
        p.normal {
          font-variant: normal
        }
        p.small {
          font-variant: small-caps
        }
      </style>
    </head>
    <body>
      <p class="normal">This is a paragraph</p>
      <p class="small">This is a paragraph</p>
    </body>
    
    字体变形.jpg
    3.font-weight 属性

    设置文本的粗细。
    使用 bold 关键字可以将文本设置为粗体。

    关键字 100 ~ 900 为字体指定了 9 级加粗度。如果一个字体内置了这些加粗级别,那么这些数字就直接映射到预定义的级别,100 对应最细的字体变形,900 对应最粗的字体变形。数字 400 等价于 normal,而 700 等价于 bold。

    如果将元素的加粗设置为 bolder,浏览器会设置比所继承值更粗的一个字体加粗。与此相反,关键词 lighter 会导致浏览器设置比所继承值更细的一个字体。

    4.font-size 属性

    设置文本的大小。

    font-size 值可以是绝对或相对值。

    绝对值:

    • 将文本设置为指定的大小
    • 不允许用户在所有浏览器中改变文本大小(不利于可用性)
    • 绝对大小在确定了输出的物理尺寸时很有用

    相对大小:

    • 相对于周围的元素来设置大小
    • 允许用户在浏览器改变文本大小

    普通文本(比如段落)的默认大小是 16 像素 (16px=1em)。

    使用像素来设置字体大小:

    通过像素设置文本大小,可以对文本大小进行完全控制:

    在 Firefox, Chrome, and Safari 中,可以重新调整以上例子的文本大小,但是在 Internet Explorer 中不行。

    虽然可以通过浏览器的缩放工具调整文本大小,但是这实际上是对整个页面的调整,而不仅限于文本。

    使用 em 来设置字体大小:

    如果要避免在 Internet Explorer 中无法调整文本的问题,许多开发者使用 em 单位代替 pixels。

    1em 等于当前的字体尺寸。如果一个元素的 font-size 为 16 像素,那么对于该元素,1em 就等于 16 像素。在设置字体大小时,em 的值会相对于父元素的字体大小改变。

    浏览器中默认的文本大小是 16 像素。因此 1em 的默认尺寸是 16 像素。

    可以使用下面这个公式将像素转换为 em:pixels/16=em

    (注:16 等于父元素的默认字体大小,假设父元素的 font-size 为 20px,那么公式需改为:pixels/20=em)

    使用 em 单位,则可以在所有浏览器中调整文本大小。

    不幸的是,在 IE 中仍存在问题。在重设文本大小时,会比正常的尺寸更大或更小。

    结合使用百分比和em:

    在所有浏览器中均有效的方案是为 body 元素(父元素)以百分比设置默认的 font-size 值:

    在所有浏览器中,可以显示相同的文本大小,并允许所有浏览器缩放文本的大小

    px,em,rem这几个单位有什么不同:

    a.概念

    px:绝对单位,页面按精确像素展示。

    em:相对单位,基准点为父节点字体的大小,如果自身定义了font-size按自身来计算(浏览器默认字体是16px),整个页面内1em不是一个固定的值。

    rem:相对单位,可理解为”root em”, 相对根节点html的字体大小来计算,CSS3新加属性,chrome/firefox/IE9+支持。

    b.特点

    px特点:

    1. IE无法调整那些使用px作为单位的字体大小;

    2. 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位;

    3. Firefox能够调整px和em,rem,但是96%以上的中国网民使用IE浏览器(或内核)。

    em特点 :

    1. em的值并不是固定的;

    2. em会继承父级元素的字体大小。

    rem特点:

    rem是CSS3新增的一个相对单位(root em,根em),这个单位引起了广泛关注。区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。

    这个单位可谓集相对大小和绝对大小的优点于一身,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。

    相关文章

      网友评论

        本文标题:字体

        本文链接:https://www.haomeiwen.com/subject/fsateqtx.html