移动端rem自适应布局-最简单易懂的两种方法

html-css08

移动端rem自适应布局-最简单易懂的两种方法,第1张

em 是个相对单位,等于该元素或父元素的font-size值;

rem:  root  1rem等于根元素的font-size值

Vw(宽)、vh: 把屏幕分为100份,1vw等于屏幕的1%

1、给文件根元素设置font-size值(会影响字体,但可以解决)

 <script>

 //以iphone6为例,尺寸375,此时font-size=100px。便于计算

       var fonsiz=document.documentElement.clientWidth/3.75 

        document.documentElement.style.fontSize=fonsiz+"px"

    </script>

2、给html设置rem布局后,需要给body重新设font-size,不然很难处理正常的尺寸

 body {

            font-size: 16px

        }

3、vscode 安装 px to rem 插件,设置其扩展设置的值为100

4、选中需要把px改为rem单位的css样式,alt+z更换为rem布局

1、安装px to rem插件设置100px转换,如上图3,100px=26.667vw=100/3.75,给html标签设置vw

   html {

            font-size: 26.66667vw

        }

2、选中需要把px改为rem单位的css样式,alt+z更换为rem布局

代表性的就是阿里的flexible方案

其实是相对于,html根元素的 font-size 属性,rem等比例放大字体;其中设备宽度改变的话,取设备宽的百分之10,作为根元素的字体大小。达到不同尺寸设备自适应的效果

弊端: 通常情况下,用户使用大屏的目的:是希望能看到更多内容,而不仅仅只是放大内容

使用的时候,一般是需要借助编译工具,将 px 转化换算成为 vh 、 vw ( postcss-px-to-viewport )

也可能会遇到不能整除的情况

无论是电脑还是手机,要做到自适应屏幕,其实都是一样的。

首先,在网页代码的头部,加入一行viewport标签

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

viewport是网页默认的宽度和高度,上面这行代码的意思是,网页宽度默认等于屏幕宽度(width=device-width),原始缩放比例(initial-scale=1)为1.0,即网页初始大小占屏幕面积的100%。即让viewport的宽度等于物理设备上的真实分辨率,不允许用户缩放。

其次:网页宽度css一定要使用百分比width: xx%,不能用绝对像素。当然可以用width:auto

第三,流动布局

.left{

float: left

width: ***%

}

第四,选择加载css

这是自适应的关键部分

.abc{ height:300pxborder:1px solid #000margin:0 auto} 

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

.abc {width: 1200px}  

/* 设置了浏览器宽度不小于1201px时 abc 显示1200px宽度 */ 

 

@media screen and (max-width: 1200px) { 

.abc {width: 900px}  

/* 设置了浏览器宽度不大于1200px时 abc 显示900px宽度 */ 

 

@media screen and (max-width: 901px) { 

.abc {width: 200px}  

/* 设置了浏览器宽度不大于901px时 abc 显示200px宽度 */ 

 

@media screen and (max-width: 500px) { 

.abc {width: 100px}  

/* 设置了浏览器宽度不大于500px时 abc 显示100px宽度 */ 

需要注意是CSS代码顺序,由大到小排版CSS(判断浏览器宽度越大越放前),这样是因为逻辑关系,@media 判断CSS排错将导致判断失效。

第四,图片自适应

img { max-width: 100%}

老版本的IE不支持max-width,所以只好写成:img { width: 100%}

筚五、采用相对字体大小

字体也不能使用绝对大小(px),而只能使用相对大小(em)。

这里最重要的,是第三条和第四条,也就是采用流动布局和css选择加载。祝你好运!