悟空CRM系统移动端适配探究

2,919 阅读3分钟

前言

近期对悟空CRM开源系统进行前端移动端适配研究 在此记录相关问题和修复方法

viewport

viewport

  • 项目显示地配置了移动端的viewport 看来还是考虑到了移动端自适应(有关于移动端viewport的探究可以点击这里

ui框架

element-ui

ui框架

  • 项目前端使用vue+element-ui构建的

布局

布局

  • 项目在布局方面基本是使用flex进行的弹性盒子布局

可能大部分人看到这里会觉得 此项目应该会有一定的适配能力 虽然没有使用rem和媒体查询 但是element-ui框架有自带适配的方法并且flex在移动端作为布局是比较智能的自适应方式 那么我们一起看一下移动端的效果

悟空crm

是不是有点和想象中不大一样 页面出现了滚动条 自适应的处理并不是很科学 我们下面一起来分析下为啥会有这样的情况

问题

1.页面存在写死的宽度

写死的px

  • 虽然父元素使用了flex布局 但是同时规定死了宽度 这样是没办法自适应的

让我们把宽度改成百分比再来看一下效果

百分比改造

  • 可见在893px屏幕下已经能实现适配效果了

不过我们需要做的是移动端的适配 893px显然太大了 接下来我们把父元素的flex方向变一下 然后把他的子元素写死的宽度都改成百分比

flex改造

首页是不是已经基本能适配移动端了 哈哈~~

2.使用绝对定位

当我们在移动端看到很多字重叠在一起时 很有可能就是采用了绝对定位造成的 例如:

绝对定位问题

  • 虽然绝对定位简单粗暴 但是很多时候如果有其他的代替方案 并不被推荐使用它 因为在适配方面确实有点糟糕

我们可以用flex或者float替代绝对定位 float一定要配合clearfix(清除浮动) 实在不行 用媒体查询来改变定位位置来达到适配

下面看一下 经过修复上诉两个问题之后的样子

修复

1.工作台

  • 修复前

修复前


  • 修复后

工作台修复后

2.日程

  • 修复前

修复前


  • 修复后

日程修复后

3.任务

  • 修复前

修复前


  • 修复后

任务修复后

4.公告及之后的模块

  • 修复前

修复前


  • 修复后

公告以及之后的模块修复后

小结

可以看到我们只是简单地把设置flex布局的父元素的宽度变成百分比 然后尽量去掉一些绝对定位 必要时配合媒体查询改变flex方向为竖向之后 一个看起来很乱出现滚动条的系统也能适配移动端 这主要得益于 整个系统原本就大量使用flex布局 所以当我们项目考虑到移动端自适应时 选用flex加百分比布局是十分不错的选择 但是一定不要在项目里面把宽度固定死 如果想做到一套代码适配不同端 并且要做到比较细腻的控制 建议加上rem和媒体查询 个性化定制不同端的效果 这里可以看我的另一篇介绍--移动端适配方案总结