1.rem搭配CSS预处理器使用

这里我就用vue+less来简单操作一下,具体可以封装到底层,这里暂且演示一下原理。

这里推荐一下使用我的自制脚手架 (songyao-cli) 来快速生成一个vue项目,安装完依赖后,开始配置less.

/rem.less/

@device-width: 375; /设备布局视口/

@rem: (@device-width/10rem);

复制代码

然后将@rem配置成less全局变量

//vue.config.js

module.exports = {

css: {

loaderOptions:{

less: {

additionalData: @import '~@/static/rem.less';

}

}

}

}

复制代码

在vue的入口文件配置计算rem的方法

// toRem.js

export default function() {

const root = document.documentElement;

/** 以iPhone6为例:布局视口为375px,我们把它分成10份,则1rem = 37.5px,

* 这时UI给定一个元素的宽为375px(设备独立像素),

* 我们只需要将它设置为375 / 37.5 = 10rem。

*/

const scale = root.clientWidth / 10

root.style.fontSize = scale + 'px'

}

//main.js

import Vue from 'vue'

import App from './App.vue'

import toRem from "./utils/toRem" //

toRem()

window.addEventListener('resize', toRem)

Vue.config.productionTip = false

new Vue({

render: h => h(App),

}).$mount('#app')

复制代码

然后就可以在vue中使用全局变量@rem进行移动端开发了

{{ username }}

了解脚手架及脚手架指令请移步个人博客

check out the

逐梦博客.

微信公众号:前端南玖

.songyao { }

复制代码

作者:南玖

链接:https://juejin.cn/post/7085931616136069156

来源:稀土掘金

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

1.vw、vh适配

vw(Viewport Width)、vh(Viewport Height)是基于视图窗口的单位,是css3中提出来的,基于视图窗口的单位。

vh、vw方案即将视觉视口宽度 window.innerWidth和视觉视口高度 window.innerHeight 等分为 100 份。

上面的flexible方案就是模仿这种方案,因为早些时候vw还没有得到很好的兼容。

vw(Viewport's width):1vw等于视觉视口的1%

vh(Viewport's height) :1vh 为视觉视口高度的1%

vmin : vw 和 vh 中的较小值

vmax : 选取 vw 和 vh 中的较大值

如果按视觉视口为375px,那么1vw = 3.75px,这时UI给定一个元素的宽为75px(设备独立像素),我们只需要将它设置为75 / 3.75 = 20vw。

这里我们同样可以借助less来实现,不用自己去手动算,算的过程我们交给less就好了,我们直接按照设计稿上去开发就行

// 还是rem.less 我们加一个@vw变量

@device-width: 375;

@rem: (@device-width/10rem);

@vw: (100vw/@device-width);

复制代码

{{ username }}

了解脚手架及脚手架指令请移步个人博客

check out the

逐梦博客.

微信公众号:前端南玖

.songyao { }

移动端及pc端适配的更多相关文章

  1. 关于移动端和PC端的交互的区别

    对于现在的移动端设备的普及,移动端上的用户体验成了一个重要的关注点. 看了一些网上的关于移动端的交互和用户体验的知识,这里总结了一些.若有不足的地方,希望大家能够积极补充. PC端和移动端的产品的设计 ...

  2. 前端:移动端和PC端的区别

    在阿里的几次面试中,总是被问到移动端和PC端有什么区别,当时回答的时候主要是回答了在兼容性.网速.适配.页面布局等方面的不同,但是还是很不系统,所以这里做一个总结. 第一: PC考虑的是浏览器的兼容性 ...

  3. 简述移动端与PC端的区别

    1.移动端与PC端的区别 PC考虑的是浏览器的兼容性,而移动端开发考虑的更多的是手机兼容性,因为目前不管是android手机还是ios手机,一般浏览器使用的都是webkit内核,所以说做移动端开发,更 ...

  4. JavaScript判断移动端及pc端访问不同的网站

    JavaScript判断移动端及pc端访问不同的网站 现在很多网站都是分为两个版本,一个pc端的一个移动端的(响应式除外),针对这两个版本,就需要对访问的设备进行判断,如果是pc,就直接访问pc网站, ...

  5. js判断游览器是移动端还是PC端

    js判断网页游览器是移动端还是PC端 <script type="text/javascript"> function browserRedirect() { var ...

  6. 检测当前运行环境——移动端与PC端。

    方法1: $(function checkBrowser(){ var browser={ versions:function(){ var u = navigator.userAgent, app ...

  7. 【Javascript Demo】移动端访问PC端网页时跳转到对应的移动端网页

    不想通过CSS自适应在PC端和移动端分别显示不同的样式,那么只能通过在移动端访问PC端网页时跳转到对应的移动端网页了,那么怎么跳转呢,网上也有很多文章说明,下面是本人测试有效的方式. 1.效果图 PC ...

  8. js判断是移动端还是pc端

    运行页面的时候,执行到js会判断来自于移动端还是pc端,如果是移动端则跳转制定链接地址,这样在手机端会有额外的不必要浪费的加载时间 var browser={ versions:function(){ ...

  9. html与css的移动端与pc端需要注意的事项

    一个移动端与pc端之间最主要的也就是尺寸问题,苹果与安卓的机型尺寸大小相差甚多,一个尺寸都会影响用户的体验.那么我们来了解一下一些常用的解决方法. 一般在网页中都会在头部有一些这样的代码 <me ...

  10. C# 移动端与PC端的数据交互

    小记:针对目前功能越来越强大的智能手机来说,在PC端支持对手机中的用户数据作同步.备份以及恢复等保护措施的应用已经急需完善.不仅要对数据作保护,而且用户更希望自己的手机跟PC能够一体化,以及和远程服务 ...

随机推荐

  1. .net core 根据需求不同的数据有不同的颜色

  2. git仓库搭建及免密使用

  3. 【RTOS】RTOS汇编入门 (1)

    引言 为了提高效率,进行更为底层的操作,RTOS常采用汇编语句,因此了解常用的汇编语句,很有必要 汇编指令 1..equ:类似于c中的#define,表声明常量 例如:.equ PSW 0x10000 ...

  4. Linux 第七节(LVM,网卡配置)

    LVM 逻辑卷管理器: 解决分区灵活调整大小问题 PV 物理卷 VG 卷组 LV 逻辑卷 pvcreate /dev/sdc vgcreate xiaochong  /dev/sdb /dev/sdc ...

  5. element ui中el-tree文字显示不全解决方案

    // 问题描述 // 在项目中使用element-ui前端框架来开发界面时,使用el-tree组件实现树形菜单,遇到当节点文字过长会出现显示不全的问题 <el-tree ref="tr ...

  6. dart+flutter中使用PaginatedDataTable分页时最后一页多出空白行问题

    使用PaginatedDataTable时解决最后一页不够当前行的话会有很空白行的问题 解决的场景: 比如下图,28行数据,每页5行最后一页会多出两行空白. 解决方法: 可以使用PaginatedDa ...

  7. [转]cfs 调度

    https://www.cnblogs.com/LoyenWang/p/12495319.html 背景 Read the fucking source code! --By 鲁迅 A picture ...

  8. 给含有关键词的label着色

    给含有关键词的label着色 FineFileType() { let arr = document.querySelectorAll('.el-checkbox__label'); for (let ...

  9. jsonpath表达式

    JsonPath是一种简单的方法来提取给定JSON文档的部分内容,其中正则表达式的包含或不包含配制有时候非常有用! json操作实例 { "store": { "book ...

  10. zabbix5.2+mysql+ubuntu20.4

    服务端 0.初始化机器 1.mysql安装 # apt-get install mysql-server # apt update 根据提示一步一步确认,要求输入的密码是创建管理员的密码 2.安装za ...