一个方案 - 适配所有移动端网页

3,128 阅读2分钟

做过移动端网页的都知道,在一些高要求的移动网页上解决Iphone5、6、6p,的屏幕适配问题上花了不少功夫,但有时候还是不尽满意,各种设备上显示还有稍微有一点差距的。

我曾今也尝试了很多办法,也参考了别人加的思路,有的用js,有的用媒体查询,有的用一些比较新的单位rm、rem等等...... 我觉得还是很麻烦,难道就没有一个可以一行代码解决问题的方案吗?经过我各种的尝试之后终于有了,目前阶段还没发现bug,如果有问题,还请不吝赐教!



相信这一段代码是在移动端上必须的一段,大概的意思大家也都知道

  • width=device-width:让宽度=设备缩放之后的宽度,就是320、360、375、414这些。
  • initial-scale=1:初始化的缩放比例1,这个属性和css中transform: scale(1);有异曲同工之妙。
  • minimum-scale=1:最小缩放比例,相当于你给div设置mix-height一样,带有限制。
  • maximum-scale=1:最大缩放比例,同上,不说了。
  • user-scalable=no:是否允许用户使用双指进行缩放,(默认不允许)。

看了这些,我就想 width=device-width 我就不能设置一个固定值吗?width=320, 经过我的测试,发现是可以的。





哈哈哈! 完美解决,经过我长期的实验,这里有一个坑,就是 width=固定宽度 之后是不能 写 initial-scale=1 的,(写了之后在有些浏览器中不行,所以建议不写)。

最后附一个1px极细边框线的教程。大多数的前端的设计图应该都是640或者720的宽度,当我们写border:1px的时候,实际上是物理相似2px,这种情况平时做直线的时候勉强可以应付,transform: scaleY(0.5);这样看起来就洗了很多,但是做圆角的按钮的时候就力不从心了,而且大量使用transform 的代码也不是很优雅,这个时候我们可以

这样:



你没看错,就是640,和设计图的尺寸一模一样,每次大的值都不用在除以2了,有的时候 一个 25px除以2的时候就是不是还在纠结是写12px呢还是13px呢? 这样写的 网页实现在手机上运行的效果看起来会细腻很多。