CSS中的rem
为什么会使用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的更多相关文章
- CSS中的 REM PX EM
px像素(Pixel).相对长度单位.像素px是相对于显示器屏幕分辨率而言的 em是相对长度单位.相对于当前对象内文本的字体尺寸.如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸. ...
- CSS 中的rem,em,vh,vw一次说清楚
关于css中的长度单位,我们用的最多就是px,因为他简单直接.但是当一套方案匹配不同终端时,px就会显得过于生硬,不容易变通. 然而rem,em,vh,vw就可以有效的解决这一问题.让我们来看看这些东 ...
- CSS中em,rem的区别
首先这两个单位一般用在移动端 不太清楚得求证 再记录 1.em w3cschool中给出css中尺寸单位如下: 单位 描述 % 百分比 in 英寸 cm 厘米 mm 毫米 em 1em 等于当前的字 ...
- CSS中的rem的换算
rem好像也是一个相对大小的值,它是相对于根元素<html>,比如假设,我们设置html的字体大小的值为 html{font-size: 87.5%;}(也就是14px,这是twentyt ...
- css中单位px、pt、em和rem的区别
国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢? px :像素(Pixel).相对长度单位.像素px是相对于显示器屏幕分辨率而言的.(引自CSS ...
- 彻底弄懂css中单位px和em,rem的区别
国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢? PX特点 -1. IE无法调整那些使用px作为单位的字体大小: -2. 国外的大部分网站能够调 ...
- css中单位em和rem
一.介绍 1.em w3cschool中给出css中尺寸单位如下: 单位 描述 % 百分比 in 英寸 cm 厘米 mm 毫米 em 1em 等于当前的字体尺寸. 2em 等于当前字体尺寸的两倍. 例 ...
- CSS中单位px和em,rem的区别
PX特点: 1 IE无法调整那些使用px作为单位的字体大小: 2. 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位: 3. Firefox能够调整px和em,rem,但是96%以上 ...
- css中的px、em、rem 详解
概念介绍: 1.px (pixel,像素):是一个虚拟长度单位,是计算机系统的数字化图像长度单位,如果px要换算成物理长度,需要指定精度DPI(Dots Per Inch,每英寸像素数),在扫描打印时 ...
随机推荐
- TCP/IP 端口号大全
常用端口: 20 ftp-data FTP 数据端口 21 ftp 文件传输协议(FTP)端口:有时被文件服务协议(FSP)使用 22 ssh 安全 Shell(SSH)服务 23 telnet T ...
- CCNA实验2.VLAN
一. 二.配置主VTP上的信息 sw2上配置为domain server,sw1上配置为domain client,sw2上增加vlan并命名和添加描述 conf t vtp domain corp ...
- Angular学习笔记--last_update 20151106
参考来源:http://www.angularjs.cn/tag/AngularJS?p=1&s=50 基本要求:一周搞定33篇学习文章 目标:develop/refactor lms系统an ...
- 极简MVC的实现
我们来打造一个简单的专用于json调用的mvc实现,最终会将如下的C#代码暴露给js调用(代码在最后面有下载): public class UserController { public static ...
- Android判断当前线程是否是主线程的方法
开发过程中有时候会在Thread类中执行某些操作,有些操作会由于Android版本的不同,尤其是低版本而Crash,因此必要的时候会查看某些容易引起crash的操作是否是在主线程,这里举三种方法: 方 ...
- String和包装类Integer\Double\Long\Float\Character 都是final类型
String和包装类Integer\Double\Long\Float\Character\Boolean 都是final类型 不可以改变
- LCLFramework框架之数据门户
LCLFramework框架之数据门户职责 形成统一的数据访问方式. LCLFramework框架之数据门户设计 数据门户分为客户端/服务端. LCLFramework框架之数据门户设计代码 数 ...
- Html5 localstorage解决Ajax回退的坑
A页面通过ajax加载数据,并且是滚动加载效果,当滚动几个屏幕之后,进入新的链接页面B,再返回到A的时候,A页面的数据有需要重新加载,从头开始了,体验非常不好. 解决办法:1)hash:2)html5 ...
- 没有公网IP的服务器如何通过有公网的服务器实现远程管理的功能?即VPN服务器搭建过程
由于很多PPPoE帐号都没有公网IP了,那我们如何实现远程管理呢? 答案是比较简单的,首先,你要拥有一台有公网IP的路由器,其他品牌的也可以,但是下面我以WayOs作为VPN服务器,给大家一个教程. ...
- 一台服务器部署多个tomcat
bin 目录下两文件 catalina.sh.startup.sh conf 目录下一个文件 server.xml