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

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

问题场景:

在实现响应式布局的过程中,如何设置字体大小在不同的视窗尺寸以及不同的移动设备的可读性?

需要了解的有:

1.px,em,pt之间的换算关系
1em = 16px
1px  = 1/16 em = 0.0625em

////以下用的比较少//////
1em = 12pt
1px = 3/4 pt = 0.75pt
1pt = 1/12 em 0.0833em
1pt = 4/3 px = 1.3333px

2.任意浏览器默认字体都是16px。所有未经调整的浏览器默认尺寸为 1em=16px

3.chrome强制最小字体为12px,即使设置成10px,最终会显示成12px。这点解释了为什么有时候在ie或mozllia里的字体大小与chrome有初入

4.px,em,rem vw,vh,vmin的区别在哪?

px:

相对单位。相对于屏幕分辨率。这就是为什么分辨率越大字体越小的原因所在。那px的优缺点又如何?

优点:比较稳定、精确。

缺点:如果对页面进行缩放,影响文本可读性。可通过使用em作为字体单位解决这个问题。

em:

相对单位。根据基准数值缩放字体大小,是一个相对值,而非具体值。基准值取决于,父级元素所设置的font-size。如果父级元素未设置font-size 依次向上寻找直到根节点。

优点:弥补了px的不足

缺点:过于依赖父级节点,容易出现字体大小重复声明。

rem:

相对单位。相对于根结点html的字体大小。

缺点:避免了em依赖父级元素字体大小

优点:参考系只有一个,根节点字体大小

CSS Code复制内容到剪贴板
  1. <SPAN style="FONT-SIZE: 16px">html{font-size:100%}    
  2.      
  3. //响应式的字体大小相对于根节点变化    
  4. @media (min-width640px) { body {font-size:1rem;} }    
  5. @media (min-width:960px) { body {font-size:1.2rem;} }    
  6. @media (min-width:1100px) { body {font-size:1.5rem;} }    
  7. </SPAN>    

5.为什么根结点字体大小要设置成62.5%?

上面介绍过浏览器默认字体大小为16px,如果想要在不同的页面尺寸下设置字体大小分别为12、14、18px怎么办?

难道必须使用 12/16 rem,14/16rem,18/16rem 这种方式来计算字体的相对大小吗?

更简便的方式,在根结点设置字体大小为10px,这样一来在media里可以直接写成1.2rem,1.4rem,1.8rem。 根结点如果设置成10px,那么相对于浏览器默认字体大小为 font-size:10/16 % 即 font-size:62.5%

CSS Code复制内容到剪贴板
  1. <SPAN style="FONT-SIZE: 16px">html{font-size:10px}    
  2.      
  3. //响应式的字体大小相对于根节点变化    
  4. @media (min-width640px) { body {font-size:1m=1.2 rem;font-size:12px;  /某些浏览器不支持rem/} }    
  5. @media (min-width:960px)  { body {font-size:1.4 rem; font-size:14px/*某些浏览器不支持rem,需要再次使用px声明font-size*/} }    
  6. @media (min-width:1100px) { body {font-size:1.8 rem; font-size:18px/*同上*/} }    
  7. </SPAN>    

CSS Code复制内容到剪贴板
  1. <SPAN style="FONT-SIZE: 16px">html{font-size:16px}    
  2.      
  3. //响应式的字体大小相对于根节点变化    
  4. @media (min-width640px) { body {font-size:12/16 rem;font-size:12px;  /某些浏览器不支持rem,需要再次使用px 声明font-size/} }    
  5. @media (min-width:960px)  { body {font-size:14/16 rem; font-size:14px/*某些浏览器不支持rem,需要再次使用px声明font-size*/} }    
  6. @media (min-width:1100px) { body {font-size:18/16 rem; font-size:18px/*同上*/} }    
  7. </SPAN>    

以上这篇css 字体单位之间的区分以及字体响应式的实现详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

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

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 分享
查看更多