移动端适配知识点

前言

大大小小做了十几个pc项目,感觉自己上可九天揽月,下可五洋捉鳖能得不行,但是仔细想一下在一个公司业务做的很6,好像并没有什么值得骄傲的,因为不同公司业务方向不同,其实还有很多都没有实战过的知识点,比如移动端,前端缓存,前端性能测试等一系列的东西,毕竟前端的丰富多样,总能给你不一样得惊喜,要学得还有很多,切不可骄傲自满……

移动端适配初探

  • 对前端有点了解得都只知道自从iphone6 ,6+的出现和Android屏幕的百花齐放,移动端适配全面进入到“杂屏”时代。

  • 之前也有了解过适配的值是但是没有实战过,网上也看了很多帖子,总结了一下现在的适配方案主要有三种
    rem适配,vw适配, vw + rem适配,对于那个更好也一直是嘴炮不断,纠结了一下还是选择了rem作为入门,如果要给一个理由的话---出现时间长,经过不断的完善,是比较成熟的适配方案

  • flexible.js淘宝一直在用的rem方案,直接拿来用方便快捷

关于rem适配原理的讲解

最初接触rem适配是在慕课网上 吕小鸣老师的rem适配秘籍,虽然讲的比较初级,讲真的听完之后还是很迷

可能也跟当时基础较差有关,不懂什么是媒体查询(听名字感觉很高大上),不懂什么是sass,现在回头看的时候感觉当时自己是真的菜

进入正题---记得老师举了一个例子以iphone6,7,8为例(375 * 667),ui给的2倍稿 750 * 1334,然后老师给了一个如下的scss函数

//scss
@function px2rem($px){
  $rem: 37.5px;
  @return ($px / $rem) + rem
}
//获取视窗宽度
let htmlWidth = document.documentElement.clientWidth || document.body.scrollWidth;
console.log(htmlWidth);

//获取视窗高度
let htmlDom = document.getElementsByTagName('html')[0];
//根据当前手机宽度设置字体大小
htmlDom.style.fontSize = htmlWidth / 10 + 'px';

当时看完之后楞是没有转过弯,为什么我把$rem定死成37.5px,如果是这样那么不管如何改变手机尺寸,px2rem函数返回得都是固定的值,那么这么写的意义在哪里???
直到再次看的时候才反应过来,返回相同的rem值有问题吗??? 那当然是没有问题的---只要根元素字号的px不同,宽度自然是不同的

举个例子,有一个div的设计稿宽度是100px,通过上面的px2rem返回的都是固定的值2.66667rem,这又如何能达到适配???

这次回头看视频,把视频讲的东西串起来,才恍然大悟,上面的第二部分代码就是动态的设置根字体的大小,而 1rem = html根字体的大小,不同大小的屏幕根字体的大小不一样,可不就达到适配的要求了吗

再讲一些大佬们都已经讲烂了的知识点

  • 物理像素(physical pixel)
    物理像素又被称为设备像素,他是显示设备中一个最微小的物理部件。每个像素可以根据操作系统设置自己的颜色和亮度。正是这些设备像素的微小距离欺骗了我们肉眼看到的图像效果。
    iphone 6,7,8就是 750*1334
  • 设备独立像素(density-independent pixel)
    设备独立像素也称为密度无关像素,可以认为是计算机坐标系统中的一个点,这个点代表一个可以由程序使用的虚拟像素(比如说CSS像素),然后由相关系统转换为物理像素。
    iphone 6,7,8就是 375 * 667
  • 设备像素比(device pixel ratio)
    设备像素比简称为dpr,其定义了物理像素和设备独立像素的对应关系。它的值可以按下面的公式计算得到:

设备像素比 = 物理像素 / 设备独立像素

  • retina
    指显示屏的分辨率极高,使得肉眼无法分辨单个像素,高清屏比如dpr为2的retina屏,1个设备独立像素这个时候就相当于四个物理像素,会使画面更清晰,所以苹果就起了一个很骚气的名字‘视网膜’
    在没有retina之前,物理像素和设备独立像素是一样得
    借大佬图一用
image.png

实战 vue + elementui + flexible.js

  • 把网上的flexible.js拷下来
  • main.js 引入 import './flexible.js'
  • 新建common.scss文件
//px 转成 rem
@function px2rem($px){
  $rem: 37.5px;
  @return ($px / $rem) + rem
}

//混合宏设置字体
@mixin font-dpr($font-size){
  font-size: $font-size;

  [data-dpr="2"] & {
    font-size: $font-size * 2;
  }

  [data-dpr="3"] & {
    font-size: $font-size * 3;
  }
}

  • 然后就是新建vue组件开始撸

![传送门] (https://github.com/yourdear/mobile-first

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

推荐阅读更多精彩内容

  • 刚开始做移动端web开发的同学应该都碰到过页面适配问题,为什么我在开发手机上调试好的页面在其他手机会有这样或那样的...
    留七七阅读 19,350评论 5 80
  • 移动端适配方案:1)viewport(scale=1/dpr)2)rem3)flex4)vm/vh一、什么是移动端...
    puxiaotaoc阅读 43,075评论 3 56
  • 一、meta标签的效果 移动端页面一般会在head头部添加如下meta标签。 该meta标签是否添加对页面渲染的影...
    nimw阅读 3,542评论 0 5
  • 在移动互联网快速发展的今天,手机的种类和尺寸越来越多,作为前端的小伙伴们可能会越来越头疼,但又不得不去适配一款又一...
    keenjaan阅读 26,815评论 9 86
  • 等风来的少年,
    这货是土豆呀阅读 89评论 0 0