前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >对自适应的一些理解

对自适应的一些理解

作者头像
wade
发布2020-05-12 15:40:23
7150
发布2020-05-12 15:40:23
举报
文章被收录于专栏:coding个人笔记

最近公司在招人,对于移动端自适应的问题大部分回答的都不在我认为的答案。今天说一下自己对移动端自适应的理解,有错欢迎指正。

移动端自适应最重要的就是单位了,移动端的屏幕尺寸实在太多了,所以一般会用单位实现,然后大部分会定义一个移动端最大宽度,超过这个宽度的移动端也只是显示这个最大的宽度。一般我们会使用rem单位,配合vw、vh和百分比,这就可以解决移动端的自适应问题了。

rem应该不用多说了,建议使用手淘的就可以,很多会自己写,简单的几行代码,不过还是建议使用手淘的,不喜欢引用外部的,可以下载到本地。下载下来看看源码,手淘的有一个初始化css的代码的自执行函数,也有添加meta的函数,其中有判断android、iPhone和dpr的代码,还监听了document和window的resize、pageshow、DOMContentLoaded。可以下载了然后格式化代码简单看一下。

http://g.tbcdn.cn/mtb/lib-flexible/0.3.4/??flexible_css.js,flexible.js。

vw、vh单位其实就是百分比,针对于可视区域的百分比。一般我们也会用百分比,百分比是针对父元素的,而vw、vh则是可视区域。比如你在一个宽高定死的块元素内,定义宽度100vw,其实就是可视窗口的百分百,会超出这个父元素。

单位有了,再加上table、flex、grid这三个布局,移动端自适应几乎完美解决了。一般推荐使用flex,table相当于创建了一个table,grid布局是css最强大的布局。普通场景跟flex布局差不多,但是flex是一维布局,grid是二维布局。兼容性几乎也没什么问题。感兴趣的可以自己去查查。

移动端自适应也会有比较常见的坑,小数像素问题。比如1px边框、圆角不圆。因为小数的像素会被四舍五入,但是被舍去或者添加的小数像素会被临近的元素填充。还有,有文章说rem不支持dpr是3的情况。其它好像都问题不大了。

很多人会提到媒体查询,其实现在做这方面的自适应比较少了,大部分都是一套PC和一套移动端,很少会有那种不同尺寸不同布局的网站了。

所以下次如果面试有人问到怎么做自适应,直接回答 rem单位加上vh、vw、宽度百分比和flex布局,如果还问,简单说说rem、vh、vw的原理就够了。

这就是我对移动端自适应的理解了,应该会有其它一些好的方案,欢迎指点。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 coding个人笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档