移动端适配方案-rem(基础篇)

  

  常见移动web适配方案一般有3种方法,如下图:

  

    ①:定高,宽度百分比(百分比适配简单,一般用来做一些适配性不高的页面,比如只有一些文字和图片等简单的屏幕适配)

    ②:flex (更多的用于复杂页面的布局。具体参照阮一峰大神写的-Flex 布局教程:语法篇和实例篇

      http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool   (语法篇)

      http://www.ruanyifeng.com/blog/2015/07/flex-examples.html  (实例篇)

    ③:媒体查询(css3 media媒体查询器用法总结:

    注:flex和媒体查询这2种方案可以实现移动端的日常响应式开发。但不推荐媒体查询,因为针对不同屏幕的不同页面都要去单独写样式,很麻烦,而且低效。

    Rem:

    以下是我在学习rem的过程当中看过的几篇写得比较好的文章,内容容易理解,也比较全面,适合入门。看完以后,对rem就了解得差不多了,所以我就不再赘述了。

    http://www.w3cplus.com/css3/define-font-size-with-css3-rem  CSS3的REM设置字体大小

    https://www.jianshu.com/p/b00cd3506782  手机端页面自适应解决方案—rem布局基础篇

    https://www.jianshu.com/p/985d26b40199  手机端页面自适应解决方案—rem布局进阶版(附源码示例)

  最近跟着某视频学rem,然后写了个简单的demo。用JS动态修改根元素的字体大小,跟上面链接里引用的JS不同,个人感觉更简单,容易理解 

  

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
        <title>动态修改font-size方法-rem</title>
        <style type="text/css">
            * {
                margin: 0;
                padding: 0;
            }
            html {
                font-size: 16px;
            }
            .box {
                width: 10rem;
                height: 10rem;
                background-color: black;
            }
            .text {
                color: #fff;
            }

        </style>
    </head>
    <body>
        <div class="box">
            <p class="text">hello rem</p>
        </div>

        <script type="text/javascript">
            //  获取视窗可视宽度
            let htmlWidth = document.documentElement.clientWidth || document.body.clientWidth;
            console.log(htmlWidth);

            //    获取视窗可视高度
            let htmlDom = document.getElementsByTagName(‘html‘)[0];
            console.log(htmlDom);

            //  这里除以10方便计算,不要除以太离谱的数值,比如200,浏览器无法识别这么小的值
            //  这里htmlDom计算出的值,相当于给html设置font-size
            htmlDom.style.fontSize = htmlWidth / 10 + ‘px‘;
        </script>
    </body>
</html>

    

    

    

    

    

    

  

原文地址:https://www.cnblogs.com/tu-0718/p/9146631.html

时间: 2024-11-08 03:14:30

移动端适配方案-rem(基础篇)的相关文章

html移动端适配方案rem

为了做到一次开发的网页能够在不同尺寸的移动端设备上适配,我们需要使设计稿上标注的固定尺寸在不同设备上按照设备大小的比例显示不同的尺寸. 比如设计稿是按照 IPhone6 的 750px 像素设计的,设计稿上的头部导航条的高度是75px. 那么在 IPhone6 的手机上导航条显示的高度就是75px,在640px像素的手机上显示的高度就应该是(640/750) * 75 = 64px,以此类推,在不同像素手机上元素的大小就是(实际设备大小/设计稿大小)*设计稿上该元素的大小. 而在实际开发中,我们

rem移动端适配方案

一. rem vs em 单位 定义 特点 rem font size of the root element 以根元素字体大小为基准 em font size of the element 以父元素字体大小为基准 二.js计算 为了避免造成因为动态设置<html>元素的font-size而造成页面抖动,一般这部分代码我们放在header底部去加载,并内联到html文档里面. <script> const oHtml = document.getElementsByTagName(

移动端适配方案

Flexible适配方案 最早的文章,是15年阿里手淘团队的移动端适配方案. 设计师常选择iPhone6作为基准设计尺寸,交付给前端的设计尺寸是按750px * 1334px为准(高度会随着内容多少而改变). 前端开发人员通过一套适配规则自动适配到其他的尺寸. 先了解一些基本概念 视窗viewport 简单理解,viewport是严格等于浏览器的窗口,在桌面浏览器中,viewport就是浏览器窗口的宽度高度. 但是在移动端的viewport太窄,为了能更好的为css布局服务,所以提供了两个vie

还在用rem做移动端适配?最新移动端适配方案vw,vh了解一下!

vw,vh都是相对于屏幕视口的单位. vw:相对于视口的宽度.视口被均分为100单位的vw: vh:相对于视口的高度.视口被均分为100单位的vh: vmax:相对于视口的宽度或高度中较大的那个.其中最大的那个被均分为100单位的vmax: vmin:相对于视口的宽度或高度中较小的那个.其中最小的那个被均分为100单位的vmin: 解释完相关观念,下面就来说说具体的适配方案: 一般UI给的设计稿都是采用750X1334的,因此可以使用sass来编写一个函数: 1 $containerWidth:

手淘H5移动端适配方案flexible源码分析

移动端适配一直是一个值得探讨的问题,在业余时间我找了一些页面,查看了一些厂商对于移动端H5页面的适配方案,看到了几个典型的例子,今天就来记录一下我看到的第一个典型的例子,也是我们公司目前普通H5项目正在使用的适配方案. 这个适配方案是lib-flexible,在看这个源码的同时,我想先来回顾一下几个概念: 1.  viewport 在移动设备上,viewport是设备屏幕用来显示我们网页的那一块区域,或者说是浏览器(或者Hybird App内的webview)用来展示我们网页的那部分区域,vie

移动端适配方案研究

初次接触移动端的时候,以为终于可以不用像pc那样考虑令人头疼的ie浏览器兼容问题,有强大的css3的帮助,可以随心所欲..可是后来才发现原来移动端各种层次不齐的终端更会让人抓耳挠腮,同样的页面在不同的手机上显示的完全不一样的效果,于是抛开功能,页面适配性也成了一个大的课题. 说到移动端,下面这一行代码大家一定不陌生: <meta name="viewport" content="width=device-width, initial-scale=1, maximum-s

h5移动端适配方案

flex布局 flex布局,不使用rem,直接使用px. <!DOCTYPE html> <html> <head> <title></title> <style> /*利用flex属性,可以实现块级元素1:1:1*/ /*简单的就能使里面的内容居中(尤其是垂直居中,好用到爆)*/ .box{ display: flex;width: 50px;height: 30px; /*默认 row*/ flex-direction:colum

08-移动端开发教程-移动端适配方案

由于移动端的特殊性,屏幕的尺寸碎片化严重,要想很好的适配不同的尺寸的设备,需要我们前端开发相比PC端要做一些基层的适配方案. 1. 常见的适配方案 百分比+固定高度布局方案 固定屏幕为理想视口宽度 少许的媒体查询设置字体 水平百分比布局 水平方向部分也可以使用弹性布局 Rem解决方案 Rem的大小取值:根据页面的dpr动态改变 Rem的取值: 1rem = 100px 或者 1rem = 1/10 * 理想视口的宽度 chrome浏览器字体小于12px(会被重置为12px) 固定设计稿的宽度开发

Vue移动端适配方案.md

移动端主要采用rem布局,vue+webpack,通过webpack编译,将css中px自动转成rem或其它单位,这里采用px2rem-loader进行转换,最后引入lib-flexible,实现不同设备不同分辨率的弹性适配. 实现步骤 第一步:引入lib-flexible # 下载lib-flexible npm i lib-flexible --save # 在vue入口main.js导入 // The Vue build version to load with the `import`