计划介绍

挪动端设计稿: 375*768 【基准】
通常有两种计划,对立的思维就是 设计稿基准值*设施宽度比

375px=100% 宽度   也就是说1px = 100/375 %

在375下1px,则在750px下 750/375 * 100/375 =  200/375 %;

计划一:px 转vw

vw: 页面总宽度为100vw。
能够配置转换时的设施宽度是375,会在不同设施宽度上进行适配。能够设置在横屏时持续应用设施宽坐基准值。

        'postcss-px-to-viewport': {            unitToConvert: 'px', //须要转换的单位,默认为"px"            viewportWidth: 375, // 视窗的宽度,对应的是咱们设计稿的宽度            viewportHeight: 667,//视窗的高度,依据375设施的宽度来指定,个别指定667,也能够不配置            unitPrecision: 13, // 指定`px`转换为视窗单位值的小数位数(很多时候无奈整除)            propList: ['*'], // 能转化为vw的属性列表            viewportUnit: 'vw', // 指定须要转换成的视窗单位,倡议应用vw            fontViewportUnit: 'vw', //字体应用的视口单位            selectorBlackList: ['.ignore-', '.hairlines'], //指定不转换为视窗单位的类,能够自定义,能够有限增加,倡议定义一至两个通用的类名            minPixelValue: 1, // 小于或等于`1px`不转换为视窗单位,你也能够设置为你想要的值            mediaQuery: false, // 容许在媒体查问中转换`px`            replace: true, //是否间接更换属性值,而不增加备用属性            exclude: [], //疏忽某些文件夹下的文件或特定文件,例如 'node_modules' 下的文件            landscape: true, //是否增加依据 landscapeWidth 生成的媒体查问条件 @media (orientation: landscape)            landscapeUnit: 'vh', //横屏时应用的单位            landscapeWidth: 375 //横屏时应用的视口宽度        }

计划二: rem

把基准值设置为rem, 在款式里都是依照rem来写

      (function() {        var designWidth = 375;        var rem2px = 100;        var tid;        function setRfs() {          document.documentElement.style.fontSize =              Math.max(                (window.innerWidth / designWidth) * rem2px,                (document.documentElement.clientWidth / designWidth) * rem2px,                85.3333              ) + 'px';        }        setRfs();        window.addEventListener(          'resize',          function() {            clearTimeout(tid);            tid = setTimeout(setRfs, 300);          },          false        );      })();

手机端实际

通用解决

  • 字体大小/行间距/元素宽高/元素内外间距 这些能够依据下面的规定开发间接解决

对齐形式

  • 边距固定,内容居中
  • 高度固定,内容居中
  • 吸顶/吸底

图片

  • 页面个别应用png图片(反对通明)
  • 图片要给到研发能做切图,研发切图分辨率个别为2x
  • 要指明图片在容器中如何适应? 是100%适应缩放还是宽/高 任意一边达到容器了就不再缩放

动画

  • 不要求高清晰度或者区域很小的动画的最简略解决是给gif
  • 要求品质高/区域大的动画能够用apng, 然而apng 在极少数手机上显示有问题,不会循环播放
  • 前端也能够写动画,须要给到动画参数(比方每一帧图像/动画的静止轨迹等)

非凡设置

  • 投影: 前端能够做简略的元素投影,无奈做多方向混合投影
  • 圆角:前端能够做圆角,然而如果元素里有图片无奈做到无缝填充,这时候须要把带有圆角的容器做成背景图
  • 字体:能够设置非凡字体,须要给到字体包,字体包要求尽量小,这就须要包里尽量做到只蕴含用到的字体,参考值150k
  • 字重:安卓只有两个:normal(400) bold(700); IOS 反对设置数值

Pad适配 

依据设施宽度判断是什么设施
针对不同的宽度,css里设置不同的款式

手机端的页面如何间接适配到ipad上?

  • 如果不解决,在pad上的显示会依照下面的计划失常缩放。
  • 如果想在pad上在不扭转整体布局的状况下做整屏适配,研发能够设置整个页面的scale,设计须要给到pad稿在放在手机基准上等比缩放宽度撑满之后的页面高度,这样就得出了scale 值
  • pad端的设计与手机端的标准不一样,这时候须要研发在pad上从新写款式,给到研发一个在某个设施下的设计稿就作为基准,让研发依据设施宽度进行缩放。

横屏适配

css增加横屏状态下的款式设置

pad + 手机横屏 适配

通过设置不同设施下的宽度来适配。 pad: 7681024 iphoneSE 横屏:568 320 能够认为 >=568就设置具体款式