终于完成了手头的项目,失踪人口又回归啦!在做项目的过程中,遇到很多值得思考的点,速速道来。 第一个遇到的就是网页大小自适应的问题。
目前比较常用的方法有:
• 首先要让页面大小铺满屏幕又不能溢出。只需要在html<head>标签内加入viewport(如下),参数分别表示:页面宽度= 屏幕宽度,最大和最小伸缩比都是1,不允许用户拉缩。
• 百分比自适应:把长度单位转换为百分比来表示,这样在不同的宽度下,元素的长宽也会随之变化。
优点:宽度之间无缝衔接, 操作起来也相对比较方便。
缺点:字体大小需要另外一套自适应方法来调整;当屏幕宽度大于700px后,继续按照百分比元素会偏大,这个时候调整起来会比较麻烦。
•rem、em自适应 :用媒体查询的方法,确定在不同屏幕宽度下,改变<html>或<body>的fontsize。再用rem, em替代 px作为单位实现自适应。
优点:可以根据不同屏幕宽度来设置,可以完美解决上面说的屏幕偏大时的比例问题。字体的大小也不存在问题。
缺点:根据宽度区间来设置,无法实现无缝变换。
--------------------------------------------------------------------------------
这些兼容方法各有优缺点,都不算完美,怎样才能把优点结合在一起,同时避免缺点呢?
在参考淘宝网的自适应方法时,偶然发现页面<html>的fontsize会根据屏幕的宽度自动调整,而且屏幕宽度和所设字体大小的商是一定的。
于是猜想它是用JS获取屏幕宽度后,按照固定比例缩小后作为rem的单位长度实现自适应。
这不就是优点全有滴解决方法吗!?请容许我激动一下下(☆_☆)
--------------------------------------------------------------------------------
JS代码写起来非常简单,而且完美解决了用rem来设置无法达到无缝衔接的问题。
但移动端测试后问题就出现了,移动端safari在html加载完毕之前将JS以迅雷不及掩耳盗铃之势执行了,在页面没有按照viewport设置好宽度前,JS就读取了错误的宽度,导致元素变成原来的两倍大0^0, 需要用setTimeout()解决问题。
--------------------------------------------------------------------------------
最终代码
最后补充用rem做自适应过程中发现的一个坑--当html设置较大的fontsize时,块元素内的行内元素margin、padding会出现额外的值,解决办法是把外面包的块元素fontsize设置为0。
以上这篇移动端网页大小自适应的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
原文地址:http://www.cnblogs.com/daisykoo/archive/2016/05/24/5522958.html
数据展示,一直是各行各业乐此不疲的需求,具体到前端开发行业,则是各种各种图...
直接上代码,一看就懂, 一般国内地址返回Array前三项就是省市县,若要扩展到社...
Windows10已经发布好一段时间了,在今年下半年还将会迎来21H2的大更新。当前,很...
jsp 中HttpClient中的POST方法实例详解 POST方法用来向目的服务器发出请求,要求...
上篇文章 https://www.jb51.net/article/124489.htm 介绍了ajaxfileupload实现多...
fileup.htm html head title 千花飞舞之上传单个文件 /title /head body form en...
remberme.asp ' 用户提交个人信息 . % response.Cookies("information")(" 姓名...
初探Java 目录 **初探Java** 前言 一、Java起源 二、Java语言特性 三、基本数据...
我们在说映射的时候,有些小伙伴就会联想到数组,没错,因为数组就是用了映射的...
前言 很多新手对图片验证码不是很了解,所以本文尝试通过一个简单的 JSP 小程序...