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

所属分类: 网页制作 / CSS 阅读数: 1429
收藏 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 字体单位之间的区分以及字体响应式的实现详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

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

CSS配合JavaScript做酷的动态页面效果

  利用CSS配合JavaScript的可以做很多更酷的动态页面效果,在本教程的最后给大家简单介绍一下CSS配合JS的应用。首先,要搞清楚事件和动作的概念。在客户端脚本中,JavaScript 通过对事件进行响应来获得与用户的交互。例如,当用户单击一个按钮或者在某段文字上移动鼠标
收藏 0 赞 0 分享

WEB标准,Web前端开发工程师必备技术列表

  想要打造并拥有一流的Web产品开发团队,在团队成员基础能力上一定要下功夫。对于Web前端产品开发来说,仅仅掌握Web1.0时代简单的"网页套接"是完全不够的。我结合自己的团队配备,特此罗列了Web前端产品工程师所涉及的技能列表如下:   通过许多实际项目,
收藏 0 赞 0 分享

用CSS制作Alpha滤镜测试板

alpha滤镜给制作网页特效提供了较大的创作空间,但由于它控制参数较多,在实际应用时,为了确定一组合适的参数值,不得不反复调整修改,在编辑窗口和预览窗口来回倒腾,甚是麻烦,本文介绍了一种简单的方法。制作一个“Alpha滤镜参数测试板”,在测试板上输入参数
收藏 0 赞 0 分享

非常流行的所谓的气泡窗口

普通的Alt无法自定义风格,而Sweet Titles通过JS脚本与CSS的集合.自定义了这种伪Alt风格. 前一段时间非常流行的,就所谓的气泡窗口(鼠标移到链接处出现的). 我们这里实现的用的是Sweet Titles的插件.显示效果完全由CSS控制.. 先下载Sweet Ti
收藏 0 赞 0 分享

CSS教程:li和ul标签用法举例

LI代码的格式化: A).运用CSS格式化列表符: ul li{ list-style-type:none; } B).如果你想将列表符换成图像,则: ul li{ list-style-type:none; list-style-image: url(/blog/images/
收藏 0 赞 0 分享

CSS教程:CSS中的定位(position)

  使用CSS来定位页面内层的位置,一直是比较难以掌握的事情,很多时候,往往被绝对定位的元素,总是以浏览器的左上角为坐标原点,此时,如果浏览器的大小改变,被定义的层就会偏离设计想要的位置,让人很挠头。   其实,要想控制好层的绝对定位,只要理解CSS中关于定位
收藏 0 赞 0 分享

CSS教程:盒模型(BOX Model)

  如果想熟练掌握DIV和CSS的布局方法,首先要对盒模型有足够的了解。每个HTML元素都可以看作一个装了东西的盒子,盒子里面的内容到盒子的边框之间的距离即填充(padding),盒子本身有边框(border),而盒子边框外和其他盒子之间,还有边界(margin),如图1所示。
收藏 0 赞 0 分享

无延迟翻滚的图形与CSS混合风格按钮

  在一个具有图形背景的按钮中添加CSS风格的文本,这种建立按钮的方法结合了具有CSS翻滚(CSS rollover)标记的开发速度和效率,从而有效地提高按钮外表图像的三维效果。   相比于常规的图形按钮,这些图形/CSS混合按钮可易于建立和载入,因为你只需要为空白按钮外面
收藏 0 赞 0 分享

css里expression实现界面对象的批量控制

用过css样式我们就知道, 可以定义一批对象的class属性来指定同一个样式来统一界面. 但如何统一同类型的对象的事件? 比如:界面有无数个 <img src="**.jpg"> 如何实现鼠标经过此图片, 图片的src变成是**_over.jpg?
收藏 0 赞 0 分享

CSS教程:水平对齐(text-align)

  水平对齐(text-align),用以设定元素内文本的水平对齐方式。   1.语法   text-align具体参数如下: 语法:text-align:left|right|center|justify 说明:设定元素内文本的水平对齐方式。 参数:left:左
收藏 0 赞 0 分享
查看更多