动态REM

响应式

1.meta:vp 阻止缩放
<meta name="viewport" content="width=device-width, initial-scale=1.0">
2.尽量不要写width / height,改用max / min

不要把宽高写死,使用最小宽度和最大高度

3.flex布局

尽量使用flex布局

4.media query

尽量使用媒体查询,给不同的宽度,使用不同的样式。


动态REM

动态REM不是响应式,只针对移动端方案。
原因:手机的尺寸问题,手机特点,长宽高不相同。

为了在做出一套布局,在各个手机上是一样的。淘宝的前端工程师想到了一种方案,等比放大/缩小。可以在所有手机上做到完美展示

中国大公司都不做响应式。除了博客和新闻类网站,其他类型绝不做响应式。一般做两套网站,PC端一个/移动端一个。


设备像素比

设备像素比 = 用物理像素宽度 ÷ 虚拟像素;


像素的大小是多少?

像素的大小,是由操作系统算出来的,硬件不管。比如1920*1080分辨率,使用屏幕 ÷ 1920*1080;
像素的意义,这个像素只能显示一种颜色,不能显示多种颜色。

像素是绝对单位,还是相对单位?

对于物理世界来说,像素肯定不是绝对的,但也不是相对的,因为没办法知道相对于谁。一般不讨论,如果一定要说,像素是一个绝对单位。因为像素不随着设备
em是一个相对单位,相对于font-size;
px ,相对于用户设置系统的分辨率,大的说是一个绝对单位。

REM是什么?

HTML默认字体大小 16px;
REM = root em; (根元素的em;根元素就是HTML)===>HTML font-size

html{
  font-size: 26px;
}
p{
  font-size: 2rem; /* html font size*/
}
REM和EM的区别?
EM是继承父元素的font-size大小,并乘以自身倍数。

很少用em;如果指定自身大小,自身font-size就不会有变化。

REM就是相对根元素的大小。
总结:REM永远相对于根元素,EM相对于自身的font-size;
由于自身的font-size经常受影响,所有EM有很多不稳定性,基本都是继承来的。

font-size最小值

font-size设置的数值过低,受浏览器自己的逻辑判断,浏览器会认为你看不清,数值不会变化,不同字体最小值可能不同。
保险的最小字体: 12px;
手机浏览器不会限制最小值。


动态REM

设计稿

动态REM就是把html和font-size,动态的计算出来,其他的所有元素,都以HTML为基准,HTML就是一个屏幕宽度,REM就是一个屏幕宽度;

<script>
  document.write(`
    <style>
      html{
        font-size: ${document.documentElement.clientWidth}px;
      }
    </style>
  `)
</script>
使用js计算出屏幕宽度

单位放大10倍

实现

动态REM实例



任何手机设备上都是这个样子。


动态REM会被淘汰

动态REM实际在实现VW的功能。(如25vw,屏幕宽度的25%;1vw屏幕的1%),以后趋势是基于vw去做,根本不要动态REM。

目前不能普及使用的原因,VW的兼容并没有那么好,

如果用户手机全是Android 4.2VW用不了了,如果手机全是iPhoneVW动态REM都可以。
(iPhone用户升级欲望很强,大部分人都已经升级到最新版。),系统升级,浏览器就会升级,浏览器升级就会支持VW。不同的用户,针对不同的代码


1像素的border

当设备窗口变化时,是虚拟的一像素,还是物理的一像素?

虚拟一像素。



iPhone 6 Plus / iPhone 7 plus 都是x3的屏幕;

需求,做出一像素物理border
  • 想法一,做个缩放,transform: scale(.5);(放弃,缩放效果也会影响宽高。)
  • 想法二,只放回动态REM,整个页面缩为原来的一半,如果单位是REM,就把REM的初始值×2,
    如果单位是px,就不还原,如果单位是REM,就×2。


(以REM为单位的所有单位,先缩小一倍,再放大一倍,就是不变。以像素为单位的所有东西,缩小为原来的一半,但是不放大。只有REM放大了。)

如何实现。

使用js,获取当前屏幕是×2还是×3。

打印出设备像素比
alert(window.devicePixelRatio)

meta的viewport只能设置一次,浏览器看了一次之后就不会再看。
使用js生成meta:vp,不能生成之后再改,没有效果。


在安卓低端版本的UC浏览器不支持。
可伸缩布局方案

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,630评论 1 92
  • 设备像素(device pixel): 设备像素是物理概念,指的是设备中使用的物理像素。 比如iPhone 5的分...
    fredah阅读 348评论 0 0
  • rem是什么 rem(font size of the root element)是指相对于根元素的字体大小的单位...
    shadow123阅读 461评论 0 0
  • 不是响应式 动态rem的效果就是一套CSS 虚拟像素和物理像素 rem相对于root font-size root...
    林立镇阅读 417评论 0 1
  • layout 和 screen的宽度 在比较遥远的时候,网页还是在pc端流行,很少有人开发移动端网页,所有网页的宽...
    sunny519111阅读 514评论 0 2