移动端页面适配

作者: 麦子_FE | 来源:发表于2016-09-14 14:22 被阅读226次

说起移动端适配可能会有很多适配方案。

最开的适配方案回顾:

1.if(/Android (\d+\.\d+)/.test(navigator.userAgent)){

                var version = parseFloat(RegExp.$1);

                if(version>2.3){

                                var phoneScale = parseInt(window.screen.width) / 640;

                                document.write('');

               }else{

                                  document.write('');

             }

}else{

            document.write('');

}

上边的这种方式还好,让开发者可以正常以px单位去写移动端。如果你用火狐测试就会发现,因为userAgent检测不到Android的时候你写的东西在火狐测试上会乱掉。

2.通过media 去 控制不同屏幕宽度下的根元素的大小。假如设计稿的宽度是375,media中设置的根元素为18px,则假如一个元素在设计稿中width为180px,则180/18=10rem

@media screen and (min-width: 320px) {

        html {

              font-size: 16px;

         }

}

@media screen and (min-width: 375px) {

            html {

                    font-size: 18px;

            }

}

@media screen and (min-width: 414px) {

       html {

              font-size: 20px;

        }

}

@media (min-width: 750px) {

      html {

          font-size: 36px;

        }

}

除了以上这两种方案 可能还有很多。下边介绍一种很简单的适配方案

假如设计稿的宽度为375(iphone6),则375/100=3.75, 除以100是为了换算rem的时候简单些

//根据JS设置根元素大小

document.documentElement.style.fontSize = deviceWidth /3.75 + 'px';

根元素如下:


假如设计稿中一个元素宽度为100px 则在编写css的时候他的 width:1rem(因为要除以100);以此类推。在编写css的时候单位换成rem需要除以100。

但是!字体不推荐写成rem。

请对比下边两个页面

1.1 1.2

图1.1中 设置 外观/内饰:红色/黑色 这一行字体大小为0.14rem;

图1.2中 设置 外观/内饰:红色/黑色 这一行字体大小为14px;

会发现font-size单位为rem 字体在同一屏幕下显示偏小。而以px为单位会正常显示。

如果特殊情况需要 你也可以通过media去控制在某分辨率下的根元素大小。

我们清理下使用流程:

1看视觉稿的宽度。假如视觉稿宽度为375  则375/100=3.75 得到这个比例

2.<meta name="viewport" content="initial-scale=1,maximum-scale=1,minimum-scale=1" 这个meta必须添加

3.document.documentElement.style.fontSize = deviceWidth /3.75 + 'px'; 这段JS必须加上

4.CSS单位换位rem 视觉稿给你的标注都要除以100  例如视觉稿宽度显示100px  则你要写0.1rem

小坑:

高度不需要自适应的话建议根据视觉稿把高度写上。 否则会出现 在IOS设备显示上没问题,安卓显示下 字体会偏上。

*如果屏幕大于640则deviceWidth为640 或者是说你让路径跳到PC版本上,这里是你自己控制我不管了哦~

var deviceWidth = document.documentElement.clientWidth;

console.log(deviceWidth);

if(deviceWidth > 640) deviceWidth = 640;

document.documentElement.style.fontSize = deviceWidth /3.75 + 'px';

相关文章

  • 移动端Web页面适配浅析

    title: 移动端Web页面适配浅析date: 2018-01-31 16:38:01tags: 移动端 适配 ...

  • 解决vue移动端适配问题

    1,先看看网上关于移动端适配讲解 再聊移动端页面适配,rem和vw适配方案! 基础点:rem相对根节点 字体的大小...

  • 记一次前端技术分享(移动端相关概念讲解)

    移动端开发中的相关概念讲解 1、移动端自适配方案 移动端如何根据不同手机尺寸进行页面的适配 rem 自适应和 vw...

  • 移动端如何适配?

    1、使用Flexible实现手淘H5页面的终端适配2、再聊移动端页面的适配3、如何在Vue项目中使用vw实现移动端...

  • 解决vue移动端适配问题

    1,先看看网上关于移动端适配讲解 再聊移动端页面适配,rem和vw适配方案! 基础点:rem相对根节点字体的大小。...

  • 移动端页面适配

    移动端页面适配 rem 与 vw 再看看15年手淘方案:Flexible + rem Flexible 从流行到今...

  • 移动端页面适配

    说起移动端适配可能会有很多适配方案。 最开的适配方案回顾: 1.if(/Android (\d+\.\d+)/.t...

  • 移动端页面适配

    用rem代替px和em 注意 maxWidth为页面最大宽度 designWidth为设计稿宽度,根据自身设计稿去...

  • Vue2.x 中使用vw完成移动端页面适配

    如果你还对使用vw做移动端页面适配不了解,这里推荐大漠老师的两篇文章 再聊移动端页面的适配和如何在Vue项目中使用...

  • CSS新手向的知识点<三>

    关于移动端页面 通常来讲做移动端页面适配一般有三种方式 前端方向:移动页面响应式,用媒体查询(media quer...

网友评论

    本文标题:移动端页面适配

    本文链接:https://www.haomeiwen.com/subject/onuvettx.html