为什么会使用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. windows 2012 试用180天

    windows server 2012 官方下载,可以使用180天, 快到期的时候执行以下命令 slmgr.vbs -rearm

  2. Linux文件和windows文件在 换行符的区别

    Linux或Unix文件,和windows文件,在来回处理时,如果不注意 换行符的区别,可能导致程序错误!!!深刻的教训.... 在早期的打印机时代,开始新的一行要占用两个字符的时间.如果到了一行的结 ...

  3. hadoop错误之ClassNotFoundException

    http://www.cnblogs.com/kaizhangzhang/p/3495438.html 在win7下运行hadoop-1.1.2 worldcount代码的时候出现下面的错误,折腾了差 ...

  4. EF Repository Update

    问题描述: 解决办法: http://www.cnblogs.com/scy251147/p/3688844.html 原理: Attaching an entity of type '' faile ...

  5. 360随身WiFi驱动下载

    一场不算太好的体验,但还是解决问题了 360随身WiFi驱动下载地址 事情经过: 某天在家里组装起PC,才发现当时没有在这屋里预留网线接口,走明线穿堂过户肯定是不合适的,还是买个无线网卡吧 自然还是要 ...

  6. CYQ学习教程

    http://www.cyqdata.com/cyqdata/article-detail-413

  7. Kafka - SQL 代码实现

    1.概述 上次给大家分享了关于 Kafka SQL 的实现思路,这次给大家分享如何实现 Kafka SQL.要实现 Kafka SQL,在上一篇<Kafka - SQL 引擎分享>中分享了 ...

  8. duilib 的IE浏览器控件去边框和去滚动条的代码

    近些天在duilib群里经常有朋友问起,怎么让duilib的IE控件可以去边框,去滚动条的问题,或者是如何去控件IE控件的行为.为了避免重复的回答,我就写一篇博文,把处理方法说明一下. duilib中 ...

  9. typeof instanceof 之间的区别总结

        typeof   它返回值是一个字符串,该字符串说明运算数的类型. a=1; b=true; c="c"; d=function(){ console.log(" ...

  10. Microsoft 2013 新技术学习笔记 四

    在继续学习Model的实践经验之前,先思考一下Controller和View的实践原则在本次系统重构中的应用,我手上是一个后台管理系统(不是门户系统.不是具体业务系统),通俗点讲就是给企业的运维人员用 ...