视口viewport与单位rem的本质】的更多相关文章

结论: 视口viewport的设置是为了让字的显示在不同的屏幕下保持一致. 单位rem的使用是为了让页面中的布局元素的比例在不同的屏幕下显示的比例保持一致. 现象: 我们看电脑时候的网页的时候的字体大小假如是font-size:20px,但是一换到手机上的时候显示字体就会变得过小,这是因为viewport的关系. viewport概念:决定一个屏幕能够显示的最大布局宽度,如果一个ipone6手机的可视视图为375像素,但让它的布局宽度以960px去显示就会适当的缩小整体布局来容纳可视视图,也就是…
移动端开发中,有一些基本概念需要理解清楚,才能更好的组织编程逻辑.在刚接触时,移动端视口的缩放和rem单位的缩放搞混淆了,弄得自己很蒙圈.所以仔细总结下自己的理解. 移动端的适配,我理解为两点: 第一点就是视口的缩放配置,牵扯出视口和像素等概念.目的是为让我们的CSS样式中逻辑像素匹配到手机终端的物理像素,让网页视图适合手机屏幕.虽然在代码中只是一个语句就解决的问题,但要理解它,要弄懂很多概念.<关于像素Pixel历史的详解看下一篇文档> 第二点就是rem单位的使用,目的是为了我们只需要一份代…
0 写在前面 本周惊喜地发现,其他各个老师的软工班(罗杰老师班和欧阳老师班)的软工项目的alpha版本都已经发布了!(然而我们软工项目还没开始写代码…逃…) 十分好奇的我第一时间下载了一些他们的产品进行体验,由于我是在手机上打开的他们的项目,一些基于web端开发的产品在前端效果上看起来有些古怪.进而发现,可能是在各个项目组的开发过程中,没有将移动端的适配问题考虑在内. 由于手机网络的普及,越来越多的用户开始使用移动端产品,因此在产品的开发和设计时,有必要考虑移动端的适配问题. 今天我讲通过这篇文…
× 目录 [1]布局视口 [2]视觉视口 [3]理想视口[4]meta标签[5]总结 前面的话 在CSS标准文档中,视口viewport被称为初始包含块.这个初始包含块是所有CSS百分比宽度推算的根源,它给CSS布局限制了一个最大宽度.在桌面上,视口的宽度和浏览器窗口的宽度一致.而在移动端,视口分为布局视口(layout viewport).视觉视口(visual viewport)和理想视口(ideal viewport) 布局视口 移动端设备的问题是,如果使视口的宽度和浏览器窗口宽度一样会导…
CSS3引入新的字体尺寸单位 rem ,可以简单记忆为root rm. CSS3的出现,他同时引进了一些新的单位,包括我们今天所说的rem.在W3C官网上 是这样描述rem的——“font size of the root element” .下面我们就一起来详细的 了解rem. em单位是相对于父节点的font-size,会有一些组合的问题,而rem是相对于根节点 (或者是html节点),意思就是说你可以在html节点定义一个单独的字体大小,然后所 有其他元素使用rem相对于这个字体的百分比进…
  CSS3新增了一个相对单位rem(root em,根em),这个单位引起了广泛关注.这个单位与em有什么区别呢?区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素.这个单位可谓集相对大小和绝对大小的优点于一身,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应.目前,除了IE8及更早版本外,所有浏览器均已支持rem.对于不支持它的浏览器,应对方法也很简单,就是多写一个绝对单位的声明.这些浏览器会忽略用rem设定的字体大…
rem 我们首先介绍下和我们熟悉的很相似的货.em 被定义为相对于当前对象内文本的字体大小.炒个栗子,如果你给body小哥设置了font-size字体大小,那么body小哥的任何子元素的1em就是等于body设置的font-size. body {     font-size: 14px; } div {     font-size: 1.2em; // calculated at 14px * 1.2, or 16.8px } 你看,这里div这娃的字体大小是1.2em.解释来说,就是他从bo…
移动端常用单位: ①px:像素大小,固定值 ②%:百分比 ③em(不常用,但是在首行缩进时可以使用):相对自身的font大小(当自身的字体大小也是em做单位时,才会以父元素的字体大小为基准单位) ④rem(移动端主流):相对根节点(html)的font大小 ⑤vw(视口宽度):相对视口宽度比例,1vw相当于视口宽度的百分之一 ⑥vh(视口高度):相对视口高度比例,1vh相当于视口高度的百分之一 视口宽度(clientWidth)用JS获取,修改html{ font-size : ?rem } 从…
rem(root em) 如果你给body设置了font-size字体大小,那么body的任何子元素的1em就是等于body设置的font-size demo: body {  font-size: 14px; } div {  font-size: 1.2rem; // calculated at 14px * 1.2, or 16.8px} em: 从它上一级父元素继承了字体大小,并且逐渐得增加. Demo: Html: <body> <div class=”div1”> &l…
转载链接:移动端开发中,关于适配问题的一点总结(一) 视口 布局视口layout viewport 视觉视口visual viewport 理想视口 缩放 一个重大区别 最小缩放 和最大缩放 分辨率 物理分辨率dpi 设备像素比 dpr dipsdevice-independent pixels 例子 meta视口 完美的meta 视口 视口 <meta name="viewport" content="width=device-width"/> 我们一…
rem vh vw vmin vmax做为CSS3中的新单位,其实都出来挺久的了,这篇文章将总结并理解下它们. rem 如果你给body设置了font-size字体大小,那么body的任何子元素的1em就是等于body设置的font-size body { font-size: 14px; } div { font-size: .2rem; // calculated at 14px * 1.2, or 16.8px} em 从它上一级父元素继承了字体大小,并且逐渐得增加. <body> &l…
最近接收了一份面试题,内容是移动端传播的H5(在中国通常这么叫)广告页. 秉承移动端web尽量少用px的概念,我使用rem进行了一次重构.对于rem,基本是给 html/body 元素定义一个字体大小,来作为整个页面的参考值.在移动端可以做到适配不同的手机分辨率,如果保持整体缩放,没有设计上的差异可以不需要用到`media query`. 在这份PSD中,设计师的视觉稿是按照640px宽度*900px高度来设计的,那么我们完全可以按照设计稿的尺寸设置浏览器尺寸,然后完全按照视觉稿上的尺寸来赋值给…
一.预备知识 1.窗口是基于逻辑坐标的. 2.视口是基于设备坐标. 3.设备坐标是以像素为单位的,逻辑坐标是以.cm,m,mm,..... 4.系统最后一定要把逻辑坐标变为设备坐标. 5.设备坐标有3种: a.客户区域坐标,包括应用程序的客户区域,客户区域的左上角为(0, 0).   b.屏幕坐标,包括整个屏幕,屏幕的左上角为(0, 0).屏幕坐标用在WM_MOVE消息中(对于非子窗口)以及下面的Windows 函数中:CreateWindow 和MoveWindow(都对于非子窗口).GetM…
PC端大部份是用px单位,小部分用em单位,而移动端,请全部用rem单位吧.目前大部份设备,包括但不限于iOS 5+.Android 2.3+.Window Phone 8+都是可以兼容的,具体兼容表请看caniuse. rem是什么意思呢?CSS手册上的说明:相对长度单位,相对于根元素(即html元素)font-size计算值的倍数. rem用法很简单,就是根标签html设置文字大小后(不设置的话,大部份浏览器默认为16px),其他标签设置rem都是html大小的倍数. html{ font-…
总结过的:定宽320 缩放适配手机屏幕 参考文章:web app变革之rem 先了解一下rem css3 中引入了新的长度单位,rem. 官方定义 font size of the root element rem:rem和em单位一样,都是一个相对单位.不同的是em是相对于元素的父元素的font-size进行计算:rem是相对于根元素html的font-size进行计算.这样一来rem就绕开了复杂的层级关系,实现了类似于em单位的功能. 兼容性:IE9+,Firefox.Chrome.Safa…
rem是CSS3新增的一个相对单位(root em,根em),这个单位引起了广泛关注.这个单位与em有什么区别呢?区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素. 通常的,我们把html的font-size设置成0.625%;因为浏览器默认的字体大小是16px,所以font-size:0.625也就相当于16px*0.625=10px;往后我们要设置字体大小的时候,就可以用rem了.例如font-size:1.2rem; 就相当于 font-size:12px…
使用canvas的api时, 使用的都是绝对数值, 如: 方法传参是坐标位置,不带单位,如ctx.translate(10,10); 那么此时, 我就需要将rem或rpx 转换成 px; 首先, 获取设备宽度 h5: var clientWidth = document.documentElement.clientWidth; 小程序没有document对象, 所以要使用小程序自带的api获取设备宽度 var clientWidth = wx.getSystemInfoSync().window…
一.viewport 1. 何为视口? 视口是浏览器显示网页的矩形区域. 2. 默认视口:模拟一个大约1000像素宽的视口. 理想视口:因设备.操作系统.浏览器而异,一般而言,手机宽带大约在300-500像素之间(iphone 5宽度320像素),平板宽度在800-1400像素 可见视口:浏览器窗口减掉所有按钮.工作条.滚动条等组件之后,实际包含网页内容的空间. 布局视口:放大网页后某些部分会跑到可见视口之外.我们看到的那部分为可见视口,而假想的约束“整个页面”的矩形区为布局视口. <meta…
html <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"…
我们做了一个抽奖的H5活动页面,被一个oppo R9手机客户反馈,抽奖的转盘错位了.刷新了好几次都不行.网上百度一搜真的有部分安卓手机有坑.赶紧修复bug.分享完整的rem.js代码出来.各位看官自己去核对你们的js是不是和我分享的不一样.请尽快修复bug.免得被祭天吐槽~ //rem.js(function(doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? 'orie…
!(function(doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize', recalc = function() { var clientWidth = docEl.clientWidth; if (!clientWidth) return; if (clientWidth < 750) { docEl.st…
前言 不像响应式布局,通过media query,设置几个变化点来适配,流体排版通过调整大小,适配所有设备宽度.这个方法可以使我们开发的网页,在几乎所有屏幕尺寸上都可以使用.但出于一些原因,它的使用率还远远没有响应式技术高. 在印刷的历史上,排版是根深蒂固的.关于"流体"的概念,在传统思想里并不存在.这是因为,在印刷上,尺寸大小都是有固定的,不用考虑在页面上使用.我认为流体排版技术可以和网页很好的匹配.这是在不同媒介上的一种解决方法. 并不意味着我们要推翻之前的所有关于排版的认识,只需…
关于css中的单位 大家都知道在css中的单位,一般都包括有px,%,em等单位,另外css3新增加一个单位rem. 其中px,%等单位平时在传统布局当中使用的比较频繁,大家也比较熟悉,不过px单位在进行自适应布局的过程当中则会有些力不从心,大部分的解决方案是使用%为单位配合@media媒介查询来进行自适应布局.不过还有另外一个css3新添加的单位也同样可以拿来进行自适应布局,在我看来这种方法也更加方便直观. em和rem 首先先介绍一下em,这个单位是根据其父元素的字体大小来进行计算的,即1e…
rem单位 rem基础 px是固定单位,不同分辨率下效果不一样,导致网页布局出现偏差. em是根据父元素来改变字大小 rem是根据根元素html来改变字体大小,只要改变了根元素的font-size就可以改变所有字体的大小. 1, html{font-size:20px;} body{width:6rem;} 此处1rem=20px 2, html{font-size:62.5%;} body{width:6rem;} 此处1rem=10px;因为默认1rem=16px; 10/16=62.5%…
有哪些网页尺寸单位? CSS 中的单位有很多种: 百分比(%) 英寸(in) 厘米(cm) 毫米(mm) 磅数(pt) 12 点活字(pc) 字母高度一半(ex) 父级字体(em) 像素(px) 根元素字体(rem) 相对于视窗的宽度(vw) 相对于视窗的高度(vh) 相对于视口的宽度或高度中较大的那个(vmax) 相对于视口的宽度或高度中较小的那个(vmin): 查询浏览器兼容网站:http://caniuse.com/ 设备像素dp(device pixels) ppi(pixels per…
一.关于css中的单位 大家都知道在css中的单位,一般都包括有px,%,em等单位,另外css3新增加一个单位rem. 其中px,%等单位平时在传统布局当中使用的比较频繁,大家也比较熟悉,不过px单位在进行自适应布局的过程当中则会有些力不从心,大部分的解决方案是使用%为单位配合@media媒介查询来进行自适应布局. 不过还有另外一个css3新添加的单位也同样可以拿来进行自适应布局,在我看来这种方法也更加方便直观. 1.em和rem 首先先介绍一下em,这个单位是根据其父元素的字体大小来进行计算…
昨天发现了个好用的方法去设置手机端的rem单位,在这里记录下. html{ font-size:calc(100vw/7.5);} 这是按照750的设计稿(也就是iphone6的设计稿). 100vw是设备的宽度,除以7.5可以让1rem的大小在iPhone6下等于50px. 替换页面中的单位,把所有的px单位替换成rem,除以100,比如某字体大小在设计稿上是36px,就是0.36rem. 在iPhone6下,所有元素的尺寸还是和视觉稿的尺寸一样,而iphone5/iphone6plus中,因…
视口 在前一段时间,我曾经写过一篇关于viewport的文章.最近由于在接触移动端开发,对viewport有了新的理解.于是,打算重新写一篇文章,介绍移动端视口的相关概念. 关于这篇文章说到的所有知识,本质上离不开以下代码 <meta name="viewport" content="width=device-width, initial-scala=1, maximum-scale=1, minimum-scale=1, user-scalable=no"…
rem布局是移动端常见的布局之一,也是较为成熟的方案.接下来就详细说以下rem布局的实际操作. 1.首先加<meta />标签,设置视口的大小,不多说. <meta name="viewport" content="width=device-width initial-scale=1"  /> 2给html设置字体大小 ,设置为font-size;20px; 3添加一段js 动态控制根节点字体的大小 (function (doc, win)…
对于移动端开发来说,无可避免的就是直面各种设备不同分辨率和不同DPR(设备像素比)的问题,在此忽略其他兼容性问题的探讨. 一. 移动端开发有关于像素的概念: 1.设备像素(dp),也叫物理像素.指设备能控制显示的最小物理单位,意指显示器上一个个的点.从屏幕在工厂生产出的那天起,它上面设备像素点就固定不变了. 2.分辨率,屏幕上物理像素的数量. 3.设备独立像素(dip),又称密度无关像素.可以认为是计算机坐标系统中的一个点,这个点代表一个可以由程序使用并控制的虚拟像素.由相关系统转化为物理像素在…