您现在的位置是:网站首页> 编程资料编程资料
移动端网页大小自适应的实现方法HTML5 移动页面自适应手机屏幕四类方法总结PC端和移动端自适应问题的快速解决方法浅谈移动端的自适应布局问题(响应式、rem/em、Js动态)
2021-08-29
1381人已围观
简介 下面小编就为大家带来一篇移动端网页大小自适应的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
终于完成了手头的项目,失踪人口又回归啦!在做项目的过程中,遇到很多值得思考的点,速速道来。 第一个遇到的就是网页大小自适应的问题。
目前比较常用的方法有:
• 首先要让页面大小铺满屏幕又不能溢出。只需要在html
标签内加入viewport(如下),参数分别表示:页面宽度= 屏幕宽度,最大和最小伸缩比都是1,不允许用户拉缩。- <meta name="viewport" content="width=device-width,maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
• 百分比自适应:把长度单位转换为百分比来表示,这样在不同的宽度下,元素的长宽也会随之变化。
优点:宽度之间无缝衔接, 操作起来也相对比较方便。
缺点:字体大小需要另外一套自适应方法来调整;当屏幕宽度大于700px后,继续按照百分比元素会偏大,这个时候调整起来会比较麻烦。
•rem、em自适应 :用媒体查询的方法,确定在不同屏幕宽度下,改变或
的fontsize。再用rem, em替代 px作为单位实现自适应。优点:可以根据不同屏幕宽度来设置,可以完美解决上面说的屏幕偏大时的比例问题。字体的大小也不存在问题。
缺点:根据宽度区间来设置,无法实现无缝变换。
--------------------------------------------------------------------------------
这些兼容方法各有优缺点,都不算完美,怎样才能把优点结合在一起,同时避免缺点呢?
在参考淘宝网的自适应方法时,偶然发现页面的fontsize会根据屏幕的宽度自动调整,而且屏幕宽度和所设字体大小的商是一定的。
于是猜想它是用JS获取屏幕宽度后,按照固定比例缩小后作为rem的单位长度实现自适应。
这不就是优点全有滴解决方法吗!?请容许我激动一下下(☆_☆)
--------------------------------------------------------------------------------
JS代码写起来非常简单,而且完美解决了用rem来设置无法达到无缝衔接的问题。
但移动端测试后问题就出现了,移动端safari在html加载完毕之前将JS以迅雷不及掩耳盗铃之势执行了,在页面没有按照viewport设置好宽度前,JS就读取了错误的宽度,导致元素变成原来的两倍大0^0, 需要用setTimeout()解决问题。
--------------------------------------------------------------------------------
最终代码
- Zepto(function($){
- var win = window,
- doc = document;
- function setFontSize() {
- var winWidth = $(window).width();
- // 640宽度以上进行限制
- var size = (winWidth / 640) * 100;
- doc.documentElement.style.fontSize = (size < 100 ? size : 100) + 'px' ;
- };
- //防止在html未加载完毕时执行,保证获取正确的页宽
- setTimeout(function(){
- // 初始化
- setFontSize();
- }, 200);
- });
最后补充用rem做自适应过程中发现的一个坑--当html设置较大的fontsize时,块元素内的行内元素margin、padding会出现额外的值,解决办法是把外面包的块元素fontsize设置为0。
以上这篇移动端网页大小自适应的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
原文地址:http://www.cnblogs.com/daisykoo/archive/2016/05/24/5522958.html
相关内容
- html的footer置于页面最底部的简单实现方法CSS实现footer“吸底”效果详解CSS五种方式实现Footer置底利用CSS使footer固定在页面底部的实例代码详解HTML5将footer置于页面最底部的方法(CSS+JS)
- HTML基础重点_一般标签、常用标签和表格html/css基础篇——html代码编写过程中的几个警惕点(必看)html、css基础注意点(前端必看篇)HTML CSS样式基础(必看篇)HTML基础总结推荐(段落)HTML基础知识——css样式表,样式属性,格式与布局详解HTML基础知识——设置超链接的样式简单实例HTML基础必看——全面了解css样式表HTML基础必看---表单,图片热点,网页划区和拼接详解浅谈HTML(css基础样式)前端开发每天必学之HTML入门介绍
- canvas.toDataURL image/png 报错处理方法推荐 详解canvas.toDataURL()报错的解决方案全都在这了关于canvas.toDataURL 在iOS运行失败的问题解决
- 详解HTML中table表格的frame和rules属性html中table表格的内容水平和垂直居中显示Div+CSS对HTML的table表格定位用法实例深入解析HTML的table表格标签与相关的换行问题html 隐藏div HTML里隐藏表格TABLE或者DIV内容的css样式HTML table表格边框的控制详细说明HTML的dl、dt、dd标记制作表格对决Table制作表HTML table 表格边框的实现思路
- HTML的form表单标签用法学习教程HTML5 SVG和CSS3实现的表单浮动标签特效源码HTML的表单form以及form内部标签的使用HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法XHTML入门学习教程:表单标签HTML 使用表单标签实现注册页面的实例代码
- HTML中的超链接标签使用教程HTML基础知识——设置超链接的样式简单实例XHTML中的超链接标签使用教程html 用超链接打开新窗口其可控制窗口属性html超链接a标签的href跳转跟onclick之间执行顺序示例介绍解决html 图片img加超链接后产生难看的蓝色边框问题html超链接样式(四种不同状态)设置示例html 中文乱码 HTML超链接中文乱码问题分析及解决方法HTML利用超链接打开链接文件的方法介绍HTML设置超链接字体颜色和点击后的字体颜色网页制作初学者:学用HTML的超链接A标记
- HTML中table表格标签的基础学习教程详解HTML中table表格的frame和rules属性html css 控制div或者table等固定在指定位置的实现方法使用HTML5中的contentEditable来将多行文本自动增高深入解析HTML的table表格标签与相关的换行问题html中Div与table的区别(各方面细节探讨)html固定标题列、标题头table具体实现代码html的table用法(让网页的视觉效果显示出来)HTML table 直列化格式详解
- html制作细线表格的简单实例html5绘制的用户数据表格与饼状图形效果源码HTML表格布局实例讲解有关HTML表格边框的设置小技巧Div+CSS对HTML的table表格定位用法实例深入解析HTML的table表格标签与相关的换行问题
- 浅谈html标签的显示模式(块级标签,行内标签,行内块标签)H1标签使用的七大注意事项(推荐)浅谈Html5中视频 音频标签 进度条的问题关于HTML5语义标签的实践(blog页面)HTML的meta标签常见用法集锦HTML基础重点_一般标签、常用标签和表格HTML的form表单标签用法学习教程HTML中的超链接标签使用教程HTML中table表格标签的基础学习教程html5基于canvas实现的文字标签云3D旋转动画特效源码HTML5之语义标签介绍
- HTML 隐藏滚动条和去除滚动条的方法html 隐藏滚动条的简单实现
