js学习总结----响应式布局之流式布局

苹果手机的尺寸:5s及以下都是320px  6是375px宽度   6plus是414px宽度

常用的安卓尺寸:320、360、480、540、640、720...

在真实项目中,设计师给我们的设计稿一般都是:640*960 / 640*1136 / 750*1334

响应式布局的解决方案:

  1)、流式布局法

  容器或者盒子的宽度一般都不写固定的值,而是使用百分比(相对于视口区域的百分比)

  其余的样式:字体、高度、margin、padding等等都按照设计稿上标注尺寸的一半来设置

  对于有些屏幕尺寸下,我们设置的固定值看起来不是特别的好看的话,使用@media进行微调整

特殊情况:设计师的设计稿是640px,我们的素材图也是640px的,这样的话在iphone6/iphone6 plus展示的时候,图片不够大、对于这种情况我们需要单独的找设计师要一张更大的图。

  @media all and (-webkit-min-device-pixel-radio:2) and (min-width:321px){}

  @media all and (min-width:641px){} 

  2)、REM响应式布局

  我们做的H5页面只是在移动端访问(REM不兼容低版本的浏览器)

  REM:当前页面中元素的REM单位的样式值都是针对于HTML元素的fontSize的值进行动态计算的

  第一步:从UI设计师拿到设计稿(PSD格式的设计稿) 640*1136

  第二步:在样式中给HTML设计一个fontSize的值,我们一般都设置一个方便后面计算的值,例如:10px、100px...这里我们之所以用100px,主要是浏览器最小的字体大小都是12px,用10px比例计算的结果和真是UI设计稿会存在一点点的偏差

  html{

    font-size:100px;/*1REM = 100px*/

  }

  第三步:写页面,写样式

  完全按照设计稿的尺寸来写样式,此时不用管任何的事情,设计稿给你的宽度、高度、字体大小、margin、padding的值是多少,我们就写多少

  但是我们在写样式值的时候,需要把得到的像素值除以100,计算出对应的REM的值,我们设定的也都是REM的值(值得注意的是:真实项目中外层盒子的宽度我们一般还是不写固定值,我们沿用流式布局法的思想,我们用百分比的方式布局)

  第四步:根据当前屏幕的宽度和设计稿的宽度来计算我们HTML的fontSize的值(当前屏幕的宽度/设计稿的宽度*fontSize)

  设计稿:640   600*300  font-size=100

  手机:320   300*150 font-size=50

当页面的宽度大于设计稿的宽度的时候,可以通过判断clientWidth 然后不再修改fontSize的值,页面大小不在改变

有时候也会检测浏览器和项目,当两个都是pc端的或者移动端的,来跳转到相对应的项目。window.location.href = xxx

posted @ 2017-08-10 17:02  diasa  阅读(525)  评论(0编辑  收藏  举报