美文网首页
前端适配

前端适配

作者: 小小肉松 | 来源:发表于2018-07-08 19:55 被阅读16次

什么是适配

chrome 最小字体:12px,默认字体:16px

rem 单位:参照于根元素 html 的 font-size 值

适配:就是让网页在各种不同尺寸的移动设备上,都能百分之百的按相同比例还原设计图

rem 适配方案

<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="UTF-8">

        <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">

        <meta http-equiv="X-UA-Compatible" content="ie=dedg">

        <title>移动端rem适配</title>

        <style>

            body {

                margin: 0;

            }

            .box {

                width: 16rem;

                height: 4rem;

                background: #70a6ff;

            }

        </style>

    <head>

    <body>

        <div class="box"></div>

        <script>

            (function () {

                const layoutWidth = document.documentElement.clientWidth,

                          remSize = layoutWidth / 16,

                          styleNode = document.createElement('style')

                 styleNode.innerHTML = 'html {font-size: ' + remSize + 'px !important;}'

                  document.head.appendChild(styleNode) }

            )()

        </script>

    </body>

</html>

本质:将页面元素的尺寸跟布局视口的尺寸通过 rem 关联起来,不同的设备 rem 对应的像素值不一样,这样就实现了等比例

优点:使用了完美视口,太大的元素也能完好的显示在页面,不会被缩放;图片失真的情况不严重(因为一般的设计图基于 iPhone 6 都是 750px 的宽度)

缺点:页面上的每一个元素都要从 px 单位转换为 rem,计算过程比较复杂(后面用 LESS 自动计算)

viewport 适配方案

同上,把(function(){})()替换

(function () {

      const targetLayoutWidth = 320,

            currentLayoutWidth = document.documentElement.clientWidth,

            scale = currentLayoutWidth / targetLayoutWidth,

            metaNode = document.querySelector('meta[name="viewport"]')

      metaNode.setAttribute('content', 'initial-scale=' + scale + ', user-scalable=no')

    })()

本质:将页面的布局视口尺寸设置(缩放)为设计图的尺寸(一般为 320px),这样设计图跟布局视口一比一对应,页面中的元素尺寸就跟设计图中标注的尺寸一致,所以不用管设备的尺寸即可以实现等比例

优点:设计图所见即所得

缺点:由于布局视口缩放(一般是放大操作)后,它的像素个数会变少,这时如果在 meta 里写上 width="device-width" 的话,由于理想视口的像素比较多,所以布局视口会取理想视口的像素值。所以这时不能写这句话,但这样的话就无法实现完美视口了,页面中如果有太大的元素,就会被自动缩放,而不会出现滚动条

心情不太愉快,不写了。事件点透之类的下次来在写

相关文章

  • 前端移动端适配总结

    前端移动端适配总结

  • Java设置Session

    设置Session 获取Session 前端适配

  • 前端适配

    什么是适配 chrome 最小字体:12px,默认字体:16px rem 单位:参照于根元素 html 的 fon...

  • 前端适配

    一.相关概念参考https://www.cnblogs.com/zaoa/p/8630393.html[https...

  • iPhone X适配通用方案

    iPhone X H5 适配通用方案 说明 iPhone X 适配理论上需要在 UI 预先适配的基础上再做前端页面...

  • window缩放150%前端适配

    笔记本缩放125% 150% ...以及 Retina屏前端适配

  • 最佳文件上传组件 —— filepond

    这个组件为前端提供了vue适配 vue-filepond,为后端提供了Django适配 django-drf-f...

  • 移动端适配方案

    移动端众多的手机型号使得前端开发起来 难度很大。所以,为了统一众多机型的适配,前端不得不采取大而全的方案去适配大多...

  • 【Android 基础】 BaseAdapter

    Adapter :适配器 链接后端数据与前端显示适配接口,是数据(data)与UI(View)之间一个重要纽带,常...

  • 前端适配问题

    文章序 适配问题一直是前端开发中很重要的一个问题,可以说是最影响用户体验的问题之一,本文整理前端适配的相关方法,持...

网友评论

      本文标题:前端适配

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