1、使用meta标签:viewport


  H5移动端页面自适应普遍使用的方法,理论上讲使用这个标签是可以适应所有尺寸的屏幕的,但是各设备对该标签的解释方式及支持程度不同造成了不能兼容所有浏览器或系统。


  viewport 是用户网页的可视区域。翻译为中文可以叫做"视区"。


  手机浏览器是把页面放在一个虚拟的"窗口"(viewport)中,通常这个虚拟的"窗口"(viewport)比屏幕宽,这样就不用把每个网页挤到很小的窗口中(这样会破坏没有针对手机浏览器优化的网页的布局),用户可以通过平移和缩放来看网页的不同部分。


  viewport标签极其属性:


  <meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>


  每个属性的详细介绍:


  属性名取值描述Width</td>正整数 或?device-Width</td>定义视口的宽度,单位为像素Height</td>正整数 或?device-Height</td>定义视口的高度,单位为像素,一般不用initial-scale[0.0-10.0]定义初始缩放值minimum-scale[0.0-10.0]定义缩小最小比例,它必须小于或等于maximum-scale设置maximum-scale[0.0-10.0]定义放大最大比例,它必须大于或等于minimum-scale设置user-scalableyes/no定义是否允许用户手动缩放页面,默认值yes


  2、使用css3单位rem


  rem是CSS3新增的一个相对单位(root em,根em),使用rem为元素设定字体大小时,是相对大小,但相对的只是HTML根元素。通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。


  目前,除了IE8及更早版本外,所有浏览器均已支持rem。对于不支持它的浏览器多写一个绝对单位的声明。这些浏览器会忽略用rem设定的字体大小。下面就是一个例子:


  p {font-size:14px; font-size:.875rem;}


  默认html的font-size是16px,即1rem=16px,如果某div宽度为32px你可以设为2rem。


  通常情况下,为了便于计算数值则使用62.5%,即默认的10px作为基数。当然这个基数可以为任何数值,视具体情况而定。设置方法如下:


  Html{font-size:62.5%(10/16*100%)}


  具体不同屏幕下的规则定义,即基数的定义方式:可以通过CSS定义,不同宽度范围里定义不同的基数值,当然也可以通过js一次定义方法如下:


  <script type="text/javascript">


  (function (doc, win) {


  var docEl = doc.documentElement,


  resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',


  recalc = function () {


  var clientWidth = docEl.clientWidth;


  if (!clientWidth) return;


  docEl.style.fontSize = 20 * (clientWidth / 320) + 'px';//其中“20”根据你设置的html的font-size属性值做适当的变化


  };


  if (!doc.addEventListener) return;


  win.addEventListener(resizeEvt, recalc, false);


  doc.addEventListener('DOMContentLoaded', recalc, false);


  })(document, window);


  </script>


  3、使用媒体查询


  媒体查询也是css3的方法,我们要解决的问题是适应手机屏幕,这个媒体查询正是为解决这个问题而生。


  媒体查询的功能就是为不同的媒体设置不同的css样式,这里的“媒体”包括页面尺寸,设备屏幕尺寸等。


  例如:如果浏览器窗口小于 500px, 背景将变为浅蓝色:


  @media only screen and (max-width: 500px) {


  body {


  background-color: lightblue;


  }


  }


  4、使用百分比


  百分比指的是父元素,所有百分比都是这样的。子元素宽度50%,那么父元素的宽度就是100%;


  所以body默认宽度是屏幕宽度(PC中指的是浏览器宽度)子孙元素按百分比定位(或指定尺寸)就可以了,这只适合布局简单的页面,复杂的页面实现很困难。

相关文章

9个鲜为人知的HTML功能 小白怎么学习HTML5?新手入门必看 阿里巴巴常用的12个后端开发工具 sharepoint搭建文档服务器,SharePoint?Server教程 语义化标签与HTML5新增的布局标签 vector教程:如何进行项目 JetBrains PhpStorm v2021.2.0中文激活版 HTML5教程之新元素 前端基础入门:HTML5基础语法与标签 HTML5——SVG基础入门 android是前端还是后端 嵌入式开发要学哪些技能? 使用fiddler对手机APP进行抓包 HTML5薪资正一路飙升 如何才能学好HTML5开发 零基础如何迅速学习前端? html5中怎么利用canvas元素创建画布 实现html5移动端自适应布局的方法分享 HTML5移动应用开发 最佳HTML5应用开发工具有哪些? HTML5 移动页面自适应手机屏幕四类方法 html5手机网站常用的9个CSS属性 什么是web前端开发标准 Android开发用过的十大框架 Android混合开发,html5自己主动更新爬过的坑 HTML5中的移动开发框架有哪些? 分享5个主流的HTML5开发工具 HTML5开发培训教程学习之动效制作 网页开发HTML5 快速开发基于 HTML5 网络拓扑图应用 如何零基础入门前端开发? html5零基础入门学习教程(零基础学员必看) jquery删除ajax请求的方法 jquery中ajax中的参数,jquery中的ajax参数 jQuery AJAX 方法success()后台传来的4种数据详解 jquery中ajax常用的方法,jQuery ajax框架常用方法总结 jQuery AJAX中readyState与status的区别与联系 jquery ajax.then,神奇的then方法 jQuery validate+artdialog+jquery form实现弹出表单思路详解 ajax用来做什么的,jQuery是什么? java jquery ajax视频,【Ajax】之jQuery中的Ajax jquery中ajax应用之通用ajax()函数的实例 BootStrop前端框架入门教程详解 jQuery WEUI Select jquery是什么意思?jquery和js的区别是什么? 巧用案例学习jQuery框架三种事件绑定方式 jQuery 基础知识总结 引入JQuery.min.js文件 几款常用的高质量web前端框架 Jquery和bootstrap有哪些区别 easyui 验证 ajax提交表单提交表单提交