首先简单科普一下什么是响应式网页。响应式网页是指会根据输出设备的分辨率不同,而自动调整布局的网页。同时,在输出设备分辨率改变时,也能及时自动调整。说穿了,就是三个字:自适应。

响应式网页不仅仅是响应不同类型的设备,而且需要响应不同的用户需求。响应式的初衷是为了让信息更好的传递交流,让所有人无障碍的获取信息,同时这也是 Web 的初衷。

当我们每天面对缤纷的互联网世界的时候,文字不仅仅传递给我们众多的信息资讯,而且在设计师的手里,文字在网页中的排版承载着一种艺术的直觉。

网页中常用的文字大小单位是 px(Pixels),em,现在《CSS Values and Units Module Level 3》中新增了 rem 这个单位。

相关文章:CSS3教程:相对单位rem详解

一、那到底什么是 rem 呢?

规范中明确写道:

Equal to the computed value of ‘font-size’ on the root element.

「rem」是指根元素(root element,html)的字体大小,好开心的是,从遥远的 IE6 到版本帝 Chrome 他们都约好了,根元素默认的 font-size 都是 16px。这样一个新的单位兼容性如何呢?

太好了,IE9+,Firefox、Chrome、Safari、Opera 的主流版本都支持了,我可以放肆的使用 rem 了。

可是,W3C 那些家伙为什么要闲着下面疼的新增这样一个单位呢?它和 em 有啥区别呢?

我们知道 em 的计算是基于父级元素的,在实际使用中给我们的计算带来了很大的不便。所以 rem 的出现解救了我这样不会算术的人,再也不用担心父级元素的 font-size 了,因为它始终是基于根元素(html) 的。

比如默认的 html font-size=16px,那么我想设置12px 的文字就是:12÷16=0.75(rem)

当然,你可以引入 CSS 预处理工具(Sass、LESS 、Stylus等)自动计算 rem 值,这里就不一一举例了。

但是像我这样的懒人或者团队开发中还没有引入 CSS 预处理工具的该肿么办呢?只能搬个计算器啪啪啪了吗?别急,你还可以变通一下。我们改变一下 html 的默认 font-size=10px 不就好计算了嘛!Like this:

html{font-size:62.5%; /* 10÷16=62.5% */} body{font-size:12px;font-size:1.2rem ; /* 12÷10=1.2 */} p{font-size:14px;font-size:1.4rem;}

需要注意的是,为了兼容不支持 rem 的浏览器,我们需要在 rem 前面写上对应的 px 值,这样不支持的浏览器可以优雅降级。其实不用太纠结是默认的 font-size:100%,还是设置为 font-size:62.5%,如果你引入 了 CSS 预处理工具那么自然可以使用默认值,如果由于其他原因使用 font-size:62.5% 也无可厚非,完全可以在 body 中重置回你需要的默认 font-size。

二、为啥要用 rem 呢?

黑夜给了我黑色的眼睛,我将用它寻找关怀。

浏览器中用户都是可以自定义默认的文字大小的,如果使用 px,用户自行在浏览器设置中改变了文字大小后,网页上是不会变化的。我们不能排除视障用户(如近视)、老年用户不会这么做,作为一个具有「人文关怀」的 前端,我们完全可以考虑这些情况。由其是在引入了 CSS预处理工具之后,这几乎不会增加什么成本。

也再次印证前面提到的:响应式网页不仅仅是响应不同类型的设备,而且需要响应不同的用户需求。

各个浏览器的设置方法如下:

IE浏览器:按下 Alt 键,打开菜单栏→查看→字体大小

Chrome 浏览器:设置→显示高级设置→网页内容

Firefox 浏览器:按下 Alt 键,打开菜单栏→工具→选项→内容选项卡

其他浏览器就不一一举例了……

三、什么时候用 rem?

既然 rem 的可用性更好,是不是在所有地方都去使用呢?别捉急,通常在标题,正文等大面积文字的位置可以使用 rem。但是在一些特殊的设计场景,rem 可能会导致布局错位,比如这样一个回顶部的按钮:

所以,什么时候用 rem,如何用好 rem? 这也需要你拿出 18K的黑色乌金睛来照亮整个页面。让我们一起:

抛开布局,响应文字;抛开成见,响应内心。

在面对响应式开发的时候,什么才是合适的,什么是不合适的,你真的想好了吗?

rem 前端字体_响应式网页设计:rem设置网页字体大小自适应相关推荐

  1. 【转发】响应式Web设计?怎样进行?

    什么是响应式Web设计?怎样进行? 眼下,几乎每个新客户都希望他们的网站可以有专门的移动设备版本.最完美的情况呐,就是为iPhone.iPad.黑莓.Kindle-各自打造一款--页面分辨率还必须兼容 ...

  2. 什么是响应式Web设计?怎样进行?

    开 始第一篇.老规矩,先无聊的谈论天气一类的话题.十一长假,天气也终于开始有些秋天的味道,坐在屋里甚至觉得需要热咖啡.话说两年前也是在国庆假期里开始 做Joomla文档翻译的:长假好时光,总会可以抽出 ...

  3. 什么是响应式Web设计?

    开始第一篇.老规矩,先无聊的谈论天气一类的话题.十一长假,天气也终于开始有些秋天的味道,坐在屋里甚至觉得需要热咖啡.话说两年前也是在国庆假期里开始做Joomla文档翻译的:长假好时光,总会可以抽出一两 ...

  4. 响应式网页设计_响应式网页设计:我们从这里去哪里?

    响应式网页设计 This article is part of a web development series from Microsoft. Thank you for supporting th ...

  5. 响应式网页设计_响应式网页设计中的常用技术

    响应式网页设计 在先前的文章中,我讨论了为什么Web准备就绪以进行响应式设计 ,以及网站所有者如何使用用户设备和屏幕空间的上下文来跨各种尺寸的屏幕(包括PC,电话) 为用户提供上下文相关的体验.和控制 ...

  6. 响应式网页设计_响应式网页设计–如何使网站在手机和平​​板电脑上看起来不错

    响应式网页设计 In the rapidly evolving landscape of connected devices, responsive web design continues to b ...

  7. 响应式网页设计_响应式网页设计的意义和目的

    响应式网页设计 The following is an exclusive extract from our new book, Jump Start Responsive Web Design, 2 ...

  8. 响应式网页移动端去掉滚动条_响应式网页设计和移动环境

    响应式网页移动端去掉滚动条 There is an active, and very interesting, debate taking place right now in the web com ...

  9. flex如何做响应式设计_响应式设计-您做错了!

    flex如何做响应式设计 Responsive design is not just about the web that automatically adjusts to different scr ...

最新文章

  1. php没有phpapache,php没有被apache解析怎么办
  2. 前端JS——滑动滑块验证登录(源码及效果)
  3. boost::gil::view_type用法的测试程序
  4. 在python3中print作为函数存在_Python3中的print函数
  5. 远控免杀专题(16)-Unicorn免杀
  6. fatal error C1083:无法打开包括文件:“stdint.h”: No such file or directory解决方案
  7. Problem F: 结构体--学生信息排序
  8. vue使用canvas开发漂亮的多功能手写板组件
  9. 线程的生命周期图(附多线程)
  10. 文学系列:《叶之震颤》读书笔记
  11. jQuery焦点图插件
  12. Csdn账号如何注销?
  13. 如何用MEGA-X构建进化树
  14. 用mysql设计一个KTV点歌系统_KTV点歌系统(JAVA+MYSQL)
  15. 美国把互联网服务器都关了,到底对我们有什么影响?
  16. 有财学院http://www.godgold.com/learn/title_asp/index.html
  17. 如何用计算机二进制进行计算,计算机如何实现二进制数据运算
  18. Security2:角色和权限
  19. 英特尔新处理器i7-8559U在3DMark数据库中现身
  20. 计算机网络专业函授,函授计算机专业都考什么课程

热门文章

  1. POI 控制 excel 生成图表的方式(一)
  2. Golang 基础学习
  3. 节日APP开发详细方案解析
  4. go语言 解析html,Golang通过pup实现HTML解析
  5. cmake3.8X64编译opencv3.2出现opencv_ffmpeg、opencv_ffmpeg_64、ippicv_windows_20151201.zip无法下载问题解决方案...
  6. 中小河流水文监测系统
  7. mysql doen s exist_Mysql中大小写敏感问题导致的MySql Error 1146 Tabel doen’t exist错误_MySQL...
  8. 感受野(receptive field)
  9. 如何做好app的测试工作?
  10. 【源码】M代码的LaTeX支持包——在LaTeX文件中轻松展示M代码的语法结构