rem 移动端适配

rem移动端适配:

在移动端(手机端、Pad端),设备尺寸参差不齐。如果想要写完一套代码,能够在所有移动设备上都正常运行,那么采用原生的px单位来设置是不行的。举个例子:iPhone6的尺寸是375px,如果我们想要一个盒子是占据整个宽度的一半,那么会将这个盒子的宽度设置为187.5px,但是并不是所有手机的宽度都是375px,因此就会造成问题。这时候我们可以通过rem来解决这个问题。

什么是rem

  1. em:当前元素字体大小相对于父标签的字体大小。比如:

    <div style="font-size:16px;">
         <span style="font-size:2em">你好</span>
     </div>

    div中字体大小是16px,而在span标签中因为用的是2em,因此是2倍的父标签字体的大小,也就是32px

  2. rem:跟em类似,只不过此时的参照元素不是父元素,而是根元素,也就是html元素的大小。比如:

    <html style="font-size:14px">
         <div style="font-size:16px;">
             <span style="font-size:2rem">你好</span>
         </div>
     </html>

    此时的span标签字体大小为html标签字体大小的2倍,也就是28px

rem适配原理:

rem虽然本身是用来设置字体的大小,但是也可以延伸到设置其他属性的尺寸。利用rem我们可以实现等比缩放。比如我将一个页面的宽度平均分成100unit=windowWidth/100,然后让htmlfont-size等于unit,那么以下问题都可以实现:

  1. 要实现浏览器一半的宽度,我们就可以通过50rem来实现(rem是单位)。
  2. 设置字体大小为16px,转化成rem就是:(16/unit)rem

Vue-cli中实现rem布局:

在使用vue-cli创建的项目中,我们可以通过一些第三方包来方便的实现rem的布局。要安装两个包,分别是:postcss-pxtoremlib-flexible。安装命令通过npm install --save-dev postcss-pxtorem lib-flexible安装即可。在安装完包后,还需要配置两个地方:

  1. package.json

    "postcss": {
         "plugins": {
           "autoprefixer": {},
           "postcss-pxtorem": {
             "rootValue": 37.5,
             "propList": [
               "*"
             ],
             "selectorBlackList": [
               "van-*"
             ]
           }
         }
       }
  2. main.js

     import "lib-flexible"

这样以后在写单位的时候,就不需要换算成rem,直接写px就可以,postcss-pxtorem会自动的将我们写的px转化成rem。而lib-flexible会根据当前的尺寸,来调整html上的font-size进行适配。

原文地址:https://www.cnblogs.com/huameixiao/p/11615424.html

时间: 2024-10-02 06:48:54

rem 移动端适配的相关文章

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(

vue rem移动端适配

p.p1 { margin: 0.0px 0.0px 0.0px 36.0px; font: 14.0px Tahoma; color: #e36c0a; background-color: #ffffff } p.p2 { margin: 0.0px 0.0px 0.0px 36.0px; font: 12.0px "PingFang SC"; color: #000000; background-color: #d9d9d9 } p.p3 { margin: 0.0px 0.0px

移动端适配之rem 笔记

/*移动端适配 width|height|font-size = 视觉稿量出来的值 / 100rem;@lbl*/ @media screen and (max-width:359px) and (min-width:320px) { html,body{ font-size: 50px !important; } } @media screen and (max-width:374px) and (min-width:360px) { html,body{ font-size: 56.25px

移动端适配之REM

随着手机等移动设备的普及,移动端带来的流量已经不可忽视,一个网站不只是只有pc的页面就足够了,移动端的适配已经势在必行.但是移动设备种类繁多,屏幕尺寸也千奇百怪,能不能找到一种方式可以适配所有的手机屏幕呢? 答案就是rem. 俗话说 “授人以鱼不如授人以渔”,但今天我就反其道而行,就是授人以鱼的.因为要跟你说什么设备像素比.css像素.ppi等东西,估计你会晕的(主要是我也搞不懂).废话不多说,先上代码. 1 /*移动端适配 width|height|font-size = 视觉稿量出来的值 /

Rem实现移动端适配

移动端适配 web页面跑在手机端(h5页面) 跨平台 基于webview() 基于webkit 常见适配方法 pc端采用display:inline-block,让div盒子横着排 移动web:采用定高,宽度百分比,flex弹性布局,meDIA QUERY 媒体查询: 媒体查询 结合css,通过媒体类型(screen.print)和媒体参数(max-width) @media screen and (max-width: 320px){ /* css在屏幕跨度<=320px时这段样式生效 */

移动端适配rem

第一种:根元素为100px,再按照750设计稿转化成vw单位,这样只要按照设计稿的单位/2即可.如果是小程序,不需要除以2. html{ font-size: 26.66vw; //移动端适配 这里使用rem+vw方案 省去媒体查询 } 第二种:媒体查询 按照750设计稿,根元素是100px,兼容性比较好. html { font-size: 625%; /*100 ÷ 16 × 100% = 625%*/ } @media screen and (min-width:360px) and (m

移动端页面使用rem来做适配

rem介绍 rem(font size of the root element)是指相对于根元素(即html元素)的字体大小的单位.假设根元素的字体大小是10px, 则5rem的大小为 5*10=50px,例如 1 html{ 2 font-size: 10px; 3 } 4 width: 2rem; /* 2*10 = 20px;*/ 5 margin: 1rem; 6 } 7 img{ 8 width:.6rem; 9 } rem来做适配 以前我们往往这样做页面:viewport width

移动端适配方案研究

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

移动端适配知识梳理

了解移动端的知识 viewportviewport是用户网页的可视区域.手机浏览器是把页面放在一个虚拟的"窗口"(viewport)中,通常这个虚拟的"窗口"(viewport)比屏幕宽,这样就不用把每个网页挤到很小的窗口中(这样会破坏没有针对手机浏览器优化的网页的布局),用户可以通过平移和缩放来看网页的不同部分. 像素css中的像素只是一个抽象的单位,早期的手机屏幕像素密度较低,一个css像素等于一个物理像素.但是随着手机的屏幕像素密度越来越高,比如Retina,