CSS 字体

一. 字体大小
font-size是可以继承的。换句话说,改变一个元素的字体大小,可能会导致其子元素字
体大小成比例地变化。比如说把body元素的font-size设定为200%,那么页面中所有元素
的文本都会增大一倍。
之所以出现这种效果,是因为浏览器样式表在设定所有元素的字体大小时,使用的都是相
对单位em。比如,h1被设定为2em,h2是1.5em,p是1em。默认情况下,1em等于16像素,
这也是font-size的基准大小。换算成绝对值,h1就是32像素,h2是24像素,p是16像素。
如果把body的字体大小设定为20px,就是重新设定了基准大小(body可是所有元素的祖先
啊)。因此,h1会变成40像素,h2会变成30像素,而p会变成20像素。不过,那些以像素之
类的绝对单位重新设定字体大小的元素,不会继承祖先元素的字体大小,它们会按照设定
的大小显示。
好了,下面看一看设定字体大小的两种方法。

  1. 绝对字体大小
    使用像素、派卡(pica)或英寸设定字体大小很简单,它们是绝对单位,因此设定多大就多
    大,与祖先元素的字体大小无关。使用绝对单位的缺点很明显,那就是在需要调整页面所
    有元素的字体大小时,必须一个一个地修改样式表中的font-size,相当麻烦。
    设定绝对字体大小时,也可以使用关键字值,比如x-small、medium、x-large,等
    等。其中,medium等于基准大小,其他关键字要么小一点,要么大一点。
    简言之,修改body元素的字体大小,不会影响页面中以绝对单位控制的元素,但没有设定
    字体大小的元素则会与body的字体大小成比例变化。
    简言之,修改body元素的字体大小,不会影响页面中以绝对单位控制的元素,但没有设定
    字体大小的元素则会与body的字体大小成比例变化。
  2. 相对字体大小
    使用百分比、em或rem(根元素的字体大小)设定字体大小要复杂一些。如果你给某个元素
    设定了相对字体大小,则该元素的字体大小要相对于最近的“被设定过字体大小的”祖先元
    素来确定。
    比如以下标记
    <body>
    <p>This is <strong>very important!</strong></p>
    </body>
    和下面的CSS
    p {font-size:.75em;}
    strong {font-size:.75em;}
    如果你想使用em,但又需要设定具体的像素大小,可以把body的font-size设定
    为62.5%。这样,就等于把基准大小从16像素改为10像素(16×62.5%=10)。然后,em与
    像素的对应关系就十分明确了,比如1em等于10像素,1.5em等于15像素,2em等于20像
    素,等等。
    p元素的文本为12像素(body的16像素基准大小×.75=12),折合成点单位是9点。strong
    是p的子元素,它的文本是多大呢?相对大小会逐层复合,strong的大小应该是16像素
    ×.75×.75=9像素。要熟悉相对单位的这种计算方式,需要多实践。最终你会知道,改变一
    个元素的相对字体大小,其子元素的字体大小也会同比例变化。
    使用相对字体大小,自动调整各层元素
    相对大小的好处也很明显,因为使用相对大小后,通过调整body元素的字体大小,可以成
    比例地改变所有元素的字体大小。或者,至少能通过改变某个祖先元素,只影响它的所有
    子元素。在反复修改布局设计的时候,这样显然能节省时间。可反过来,毕竟是“牵一发而
    动全身”的事,所以使用相对字体大小时,必须事先规划好。
    使用绝对字体大小是没有办法统一调整的。绝对字体大小只能个别设定,个别修改。当然
    啦,使用绝对单位的好处呢,就是在祖先元素的字体大小变化时,不会出现意外的“连锁反
    应”。
    不管怎么说,今天设备的屏幕尺寸可谓千差万别,既有特大的显示屏,又有很小的手机屏
    幕。在这种形势下,更容易缩放的相对大小应该是首选。
    3.关于rem单位
    CSS3新增了一个相对单位rem(root em,根em),这个单位引起了广泛关注。这个单位与
    em有什么区别呢?区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只
    是HTML根元素。这个单位可谓集相对大小和绝对大小的优点于一身,通过它既可以做到只
    修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。目
    前,除了IE8及更早版本外,所有浏览器均已支持rem。对于不支持它的浏览器,应对方法
    也很简单,就是多写一个绝对单位的声明。这些浏览器会忽略用rem设定的字体大小。下面
    就是一个例子:
    p {font-size:14px; font-size:.875rem;}
    二 . CSS文本属性
    :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,796评论 1 92
  • 一、字体的一些属性及定义 例子: 二、字体系列 font-family指定字体系列 一组候选字体: Verdana...
    April_17阅读 1,857评论 0 1
  • 字体系列 运行图片 字体风格 运行图片 字体加粗 运行图片 字体大小 正常展示
    Lv_0阅读 268评论 0 1
  • 字体body{font-family:Verdana,Geneva,Arial,sans-serif}每个字体系列...
    Holase阅读 286评论 0 1
  • 学习CSS的最佳网站没有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_阅读 1,094评论 0 1