HTML5实现移动页面自适应手机屏幕的方法


本文摘自PHP中文网,作者小云云,侵删。

1、使用meta标签:viewport

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

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

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

viewport标签极其属性:

1

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

每个属性的详细介绍:

属性名取值描述
width正整数 或 device-width定义视口的宽度,单位为像素
height正整数 或 device-height定义视口的高度,单位为像素,一般不用
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设定的字体大小。下面就是一个例子:

1

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

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

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

1

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

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

1

2

3

4

5

6

7

8

9

<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, 背景将变为浅蓝色:

1

2

3

4

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

    body {

        background-color: lightblue;

    }}

4、使用百分比

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

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

相关推荐:

HTML5使用四种方法实现移动页面自适应手机屏幕的方法总结

javascript - 如何让生成的div自适应手机屏幕

页面会自适应手机屏幕大小,在里面的图片不能

以上就是HTML5实现移动页面自适应手机屏幕的方法的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

HTML5中关于封装和添加与获取删除以及cookie介绍

h5中header标签应该如何使用

关于HTML5 canvas的事件处理

快速开发基于HTML5网络拓扑图应用的详解(图文)

详细介绍7款炫酷的HTML5 canvas动画特效

详解HTML5 geolocation获取地理位置信息的示例代码分享

详解HTML5使用dom进行自定义控制示例代码

怎样做出h5响应式网页设计

HTML5 canvas如何实现代码流瀑布?(附代码)

HTML5中使用json对象的实例代码

更多相关阅读请进入《HTML5》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...