浅谈移动端的适配方案

194 阅读2分钟

适配方案

为什么要做适配效果?

为了迎合目前市场上的网页载体(手机或者平板)型号日益繁多的状况,我们需要对我们所开发的移动端进行适配,不然网页内容不会随屏幕分辨率的改变而适应性的改变内容大小,由此移动端的适配方案就尤为重要了,直接关系到用户的第一体验.

移动端的主流适配方案

  1. flex + rem单位 做适配效果 (比如淘宝和小米移动端) 当前市场最多
  2. flex + viewport width /vh单位 做适配效果 (比如 B站移动端 ) 新兴,马上的一个趋势 让flex做布局(盒子摆放),让rem或者vw/vh 实现网页元素的尺寸(宽度和高度)适配屏幕.

rem适配-rem单位 rem 是一个相对单位,1rem 就是 html 文字的大小

比如

html {
    font-size: 35px;
}

则此时 1rem 就是 35像素。

媒体查询(仅做了解即可)

媒体查询 mediaquery 可以自动检测视口的宽度。

媒体查询一个非常大的作用是:根据屏幕宽度修改html文字大小

使用媒体查询, 根据不同的视口宽度, 设置不同的根字号 ,就完成了适配

语法如下:

@media (width:375px) {
    html {
        font-size: 40px;
    }
}
​
@media (width:320px) {
    html {
        font-size: 30px;
    }
}

综合:

@media (width:375px) {
    html {
        font-size: 37.5px;
    }
}
@media (width:414px) {
    html {
        font-size: 41.4px;
    }
}
​
​
.box {
    width: 5rem;
    height: 5rem;
    background-color: pink;
}

通过媒体查询,检测不同的视口宽度,设定不同的html文字大小,元素设置rem单位后,可以达到元素适配效果

flexible.js

媒体查询写起来超级麻烦,而且检测不够精确,因此我们使用 flexible.js 这个 js文件,通过js 实时检测屏幕窗口的变化实现检测视口宽度。

这个也是值得提倡使用的一种方式。 有了这个js文件,可以帮我们自动检测屏幕宽度自动修改html文字大小,这样就可以让盒子配合rem完成适配。

### 如何把设计稿的px转换为rem

  1. flexible 能够修改html文字大小,修改文字大小: 当前屏幕 / 10 就是文字大小

    例如: 当前屏幕 375px,则加了 flexible之后,html文字大小为 37.5px

  2. 我们的设计稿里面元素大小是固定的吗?

    是 , 而是 px 单位 ,但是我们开发的时候,要使用 rem 才能适配。

  3. 那怎么把我们测量的px 转换为适配的rem呢?

    直接使用测量的px值 / 37.5 就是 rem的值

当我们学习vue开发的时候,所有的单位我们写 px。就足够了。