为什么会使用rem呢?主要还是浏览器和设备的大小不一。

这样就涉及到页面布局的不统一啦,先说说pc中的多栏布局吧,多栏布局有三种基本的实现方式:固定宽度、流动、弹性,下面我们就分别说说这三种布局吧。

固定宽度布局的大小不会随着用户调整浏览器窗口大小而变化,一般是900到1100像素宽。其中960像素是常见的,因为这个宽度适合所有PC显示器、而且能够被16、12、10、8、6、5、4、3整除,不仅容易计算等宽分栏的数量,而且计算结果也能得到没有小数的像素值。

流动布局的大小会随着用户浏览窗口大小而变化。这种布局能够更好的适应不同的屏幕,但同时意味着放弃对某些方面的控制,比如随着页面宽度变化,文本行的长度和页面元素之间的位置关系都可能变化,在栏宽度加大时会出现内容元素周围添加空白来保持内容居中,当宽度变小,可能会出现重叠。

弹性布局与流动布局类似,在浏览器窗口变化的时候,布局布局变宽,而且所有内容元素的大小也会变化,让人产生一种所有东西都协调的变大或者变小的感觉。

然后说说移动端,在大的pc屏幕的最佳体验和手机中的最佳体验有天壤之别。在pc上,可以使用多栏布局效果很好,但多栏布局到了手机上就会变窄。用一个栏来组织成唯一可行的方案,这样,用户使用简单的扫屏的方式,实现更好的体验。

那么如何实现说的这种响应式设计呢?

小设备上一种布局不能适应多种屏幕尺寸,我们需要一种能够检测屏幕大小的方式,然后响应地修改布局。就是需要让页面能够自己响应屏幕的变化。这这里大家都应该想到能够使用的方式 一种:就是媒体查询的方式。另一种:使用rem 或者em 采用设置html的font-size使元素大小变化,来适应布局的适应。

先说说媒体查询的方式吧,媒体查询实现响应式的要素:

媒体查询:是一种CSS语法,可以根据浏览器的特性,一般是屏幕或浏览器宽度提供CSS规则。

流式布局:同样的使用em或百分比或者rem等相对单位设定页面总体宽度,让布局能够随屏幕大小而缩放。

弹性图片:是使用相对单位确保图片再大也不会超过容器。

媒体查询是CSS代码的容器,其中的CSS只在某些条件(比如,当前页面要被打印或者要显示在某种类型或尺寸的屏幕上)具备时才会应用。媒体查询可以用两种方式来写 @media规则和<link>标签的media属性

@media print{nav{display:none;}}

这句申明为:如果当前页面要打印,就不显示nav元素。

最大屏宽度

@media screen and (max-width:568px) {.clumn{width:96%;}}

这句表示:该屏幕宽度不超过568px,那么css种的.clumn类的元素宽度为96%。

上面这种写法就是断点,断点在这里指的是媒体查询起作用的屏幕宽度,如果设备的宽度等于或者小于断点的宽度,那么css就会起作用。

ok,说了这么多现在该说重点啦,那就是px 、em、rem

在Web页面初期制作中,我们都是使用px来设置我们字体,元素高宽,因为它比较稳定和精确。但是这种方式存在一个问题,当用户在浏览器中浏览我们制作的web页面时,改变了浏览器的字体大小,这时会导致我们的Web页面的布局被打破。影响用户体验,因此,这时就使用em来定义web页面的字体。

使用px为单位是比较方便,而又一致,但在浏览器中放大或缩放浏览页面会存问题,这样就使用em就能解决,只不过em是针对父级元素而言的,使用起来不是很方便。

CSS3新增了一个相对单位rem(root em,根em),这个单位引起啦广泛关注。这个单位与em区别在于使用rem为元素设定字体大小时、仍然是相对大小、但相对的知识HTML根元素的font-size。这个单位可谓相对大小和决定大小的优势于一身,通过它既可以做到只修改根元素就成比例的调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。目前除了IE8及更早的版本以外,所有浏览器均支持rem。对于不支持它的浏览器,应对方法就是多写一个绝对但闻的声明。这样就可以忽略用rem设定的字体大小:p{font-size:14px;font-size:.7rem}

em 和rem是相对单位,可以对px和em、rem转换工具 http://pxtoem.com/

CSS中的rem的更多相关文章

  1. CSS中的 REM PX EM

    px像素(Pixel).相对长度单位.像素px是相对于显示器屏幕分辨率而言的 em是相对长度单位.相对于当前对象内文本的字体尺寸.如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸. ...

  2. CSS 中的rem,em,vh,vw一次说清楚

    关于css中的长度单位,我们用的最多就是px,因为他简单直接.但是当一套方案匹配不同终端时,px就会显得过于生硬,不容易变通. 然而rem,em,vh,vw就可以有效的解决这一问题.让我们来看看这些东 ...

  3. CSS中em,rem的区别

    首先这两个单位一般用在移动端 不太清楚得求证  再记录 1.em w3cschool中给出css中尺寸单位如下: 单位 描述 % 百分比 in 英寸 cm 厘米 mm 毫米 em 1em 等于当前的字 ...

  4. CSS中的rem的换算

    rem好像也是一个相对大小的值,它是相对于根元素<html>,比如假设,我们设置html的字体大小的值为 html{font-size: 87.5%;}(也就是14px,这是twentyt ...

  5. css中单位px、pt、em和rem的区别

    国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢? px :像素(Pixel).相对长度单位.像素px是相对于显示器屏幕分辨率而言的.(引自CSS ...

  6. 彻底弄懂css中单位px和em,rem的区别

    国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢? PX特点 -1. IE无法调整那些使用px作为单位的字体大小: -2. 国外的大部分网站能够调 ...

  7. css中单位em和rem

    一.介绍 1.em w3cschool中给出css中尺寸单位如下: 单位 描述 % 百分比 in 英寸 cm 厘米 mm 毫米 em 1em 等于当前的字体尺寸. 2em 等于当前字体尺寸的两倍. 例 ...

  8. CSS中单位px和em,rem的区别

    PX特点: 1 IE无法调整那些使用px作为单位的字体大小: 2. 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位: 3. Firefox能够调整px和em,rem,但是96%以上 ...

  9. css中的px、em、rem 详解

    概念介绍: 1.px (pixel,像素):是一个虚拟长度单位,是计算机系统的数字化图像长度单位,如果px要换算成物理长度,需要指定精度DPI(Dots Per Inch,每英寸像素数),在扫描打印时 ...

随机推荐

  1. Oracle Redo Log 机制 小结(转载)

    Oracle 的Redo 机制DB的一个重要机制,理解这个机制对DBA来说也是非常重要,之前的Blog里也林林散散的写了一些,前些日子看老白日记里也有说明,所以结合老白日记里的内容,对oracle 的 ...

  2. 面包板入门电子制作(class1)视频 全套30集高清

    面包板入门电子制作(class1)套件(30集高清) 本套件以电子制作中最基础的元器件在面包板上搭建电路,用启发性的视频教学方式,使学习者熟悉电子电路基础.发挥想像力.在创新设计和制作中学会独立设计和 ...

  3. zookeeper Watcher API 说明

    Watcher 在 ZooKeeper 是一个核心功能,Watcher 可以监控目录节点的数据变化以及子目录的变化,一旦这些状态发生变化,服务器就会通知所有设置在这个目录节点上的 Watcher,从而 ...

  4. android studio svn不显示问题

    今天更新android studio SDK 重启后发现SVN功能没有了,工具栏也没有了更新提交按钮,刚开始以后是SVN程序可以不行了(在我的电脑提交更新没问题)我在官网下了最新1.9.4 打开and ...

  5. ASP.NET MVC中的模型装配 封装方法 非常好用

    下面说一下 我们知道在asp.net mvc中 视图可以绑定一个实体模型 然后我们三层架构中也有一个model模型 但是这两个很多时候却是不一样的对象来的 就拿微软的官方mvc例子来说明 微软的视图实 ...

  6. 关于meta知多少

    本来打算写关于手机端的知识,想了想先从meta着手.接下来请大家看几个网站的例子. 一.天猫(http://m.tmall.com) <title>天猫触屏版</title> ...

  7. Java开发者值得关注的7款新工具

    云计算.大数据地快速发展催生了不少热门的应用及工具.作为老牌语言Java,其生态圈也出来了一些有关云服务.监控.文档分享方面的工具.本文总结了7款较新的Java工具,大家不妨看下. 1. JClari ...

  8. 大型网站系统架构演化之路【mark】

    前言 一 个成熟的大型网站(如淘宝.天猫.腾讯等)的系统架构并不是一开始设计时就具备完整的高性能.高可用.高伸缩等特性的,它是随着用户量的增加,业务功能的 扩展逐渐演变完善的,在这个过程中,开发模式. ...

  9. IT Operations(IT 运营),运维的更价值化认识

    一直想努力向别人(甚至包括从事运维的人)解释清楚什么是运维,发现很难! 6月20号,在InfoQ高效运维群里面,对运维创业做了一次激烈的讨论,很自然地,过程中不可避免的谈到运维苦逼和运维无法产品化的问 ...

  10. Android Studio 简单功能介绍

    Android Studio  建立系统工具包你用来生成,测试,运行您的应用程序和软件包.构建系统是独立于Android的工作室,所以你可以调用它的Android的工作室或从命令行.在你写你的应用程序 ...