html5在移动端的屏幕适应性问题

Html5 以前是最最炙手可热的技术。移动端也由于html5技术的增加变得更加变通一些。人人都喜欢“Write once。run more”,但在今年扎克伯格承认在html5上的失策以来,我们也应该清醒的认识到html5作为一种新兴技术,还有很多不完好的地方。比方html5 的效率问题。这足以让众多程序猿们无力吐槽,消费者们也会无法忍受。但不可否认的是html5给我们带来给好的web技术,它是未来发展的趋势,而且不是 终点,我们可以做的就是更加努力的完好它,写出更好,更有效率的代码。



       好了,说了这么多废话,如今開始进入主题,android的适配问题是最让android程序猿头疼的问题。大家为此也是八仙过海,各显神通啊,但在 html5这里我们能够更好的解决这项问题。

手机浏览器是把页面放在一个虚拟的“窗体”(viewport)中。通常这个虚拟的“窗体” (viewport)比屏幕宽,这样就不用把每一个网页挤到非常小的窗体中(这样会破坏没有针对手机浏览器优化的网页的布局),用户能够通过平移和缩放来看网 页的不同部分。经常使用的viewport布局为:<meta name="viewport"
content="width=device-width,user-scalable=no" />



详细的含义是:

width:控制 viewport 的大小,能够指定的一个值,假设 600。或者特殊的值,如 device-width 为设备的宽度(单位为缩放为 100% 时的 CSS 的像素),默认的虚拟窗体为980像素宽(眼下大部分站点的标准宽度),然后按一定的比例(3:1或2:1)进行缩放。



height:和 width 相相应。指定高度。

target- densitydpi:一个屏幕像素密度是由屏幕分辨率决定的。通常定义为每英寸点的数量(dpi)。Android支持三种屏幕像素密度:低像素密度, 中像素密度。高像素密度。一个低像素密度的屏幕每英寸上的像素点更少。而一个高像素密度的屏幕每英寸上的像素点很多其它。Android Browser和WebView默认屏幕为中像素密度。

以下是 target-densitydpi 属性的 取值范围

  • device-dpi –使用设备原本的 dpi 作为目标 dp。

    不会发生默认缩放。

  • high-dpi – 使用hdpi 作为目标 dpi。 中等像素密度和低像素密度设备对应缩小。

  • medium-dpi – 使用mdpi作为目标 dpi。 高像素密度设备对应放大, 像素密度设备对应缩小。 这是默认的target density.

  • low-dpi -使用mdpi作为目标 dpi。中等像素密度和高像素密度设备对应放大。

  • <value> – 指定一个详细的dpi 值作为target dpi. 这个值的范围必须在70–400之间。

<meta name="viewport" content="target-densitydpi=device-dpi" />

<meta name="viewport" content="target-densitydpi=high-dpi" />

<meta name="viewport" content="target-densitydpi=medium-dpi" />

<meta name="viewport" content="target-densitydpi=low-dpi" />

<meta name="viewport" content="target-densitydpi=200" />





为了防止Android Browser和WebView 依据不同屏幕的像素密度对你的页面进行缩放,你能够将viewport的target-densitydpi 设置为 device-dpi。当你这么做了,页面将不会缩放。相反,页面会依据当前屏幕的像素密度进行展示。在这样的情形下,你还须要将viewport的 width定义为与设备的width匹配,这样你的页面就能够和屏幕相适应。

initial-scale:初始缩放比例,也即是当页面第一次 load 的时候缩放比例。

maximum-scale:同意用户缩放到的最大比例,范围从0到10.0。

minimum-scale:同意用户缩放到的最小比例。范围从0到10.0。

user-scalable:用户能否够手动缩放,值能够是:①yes、 true同意用户缩放。②no、false不同意用户缩放,假设你将其设置为no,那么minimum-scale 和 maximum-scale都将被忽略,由于根本不可能缩放。





全部的缩放值都必须在0.01–10的范围之内。

将这些属性设置之后放入html5 的meta属性中,就可以对手机屏幕进行适应。例:

[mw_shl_code=xhtml,true]<meta name="viewport"

        content="

        height = [pixel_value | device-height] ,

        width = [pixel_value | device-width ] ,

        initial-scale = float_value ,

        minimum-scale = float_value ,

        maximum-scale = float_value ,

        user-scalable = [yes | no] ,

        target-densitydpi = [dpi_value | device-dpi | high-dpi | medium-dpi | low-dpi]

    "

/>[/mw_shl_code]

以下是两个实际使用的样例:

(设置屏幕宽度为设备宽度。禁止用户手动调整缩放)

<meta name="viewport" content="width=device-width,user-scalable=no" />

(设置屏幕密度为高频。中频,低频自己主动缩放。禁止用户手动调整缩放)

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

html5在移动端的屏幕适应性问题的更多相关文章

  1. HTML5 Mobile 适应移动端的屏幕<meta name='viewport' content='xxxx'>

    网页手机wap2.0网页的head里加入下面这条元标签,在移动端的浏览器中页面将以原始大小显示,并不允许缩放. 加入 如下代码 即可自适应移动端的屏幕: <meta name="vie ...

  2. 7种方法解决移动端Retina屏幕1px边框问题

    在Reina(视网膜)屏幕的手机上,使用CSS设置的1px的边框实际会比视觉稿粗很多.在之前的项目中,UI告诉我说我们移动项目中的边框全部都变粗了,UI把他的设计稿跟我的屏幕截图跟我看,居然真的不一样 ...

  3. 7种方法实现移动端Retina屏幕1px边框效果

    在Reina(视网膜)屏幕的手机上,使用CSS设置的1px的边框实际会比视觉稿粗很多.在之前的项目中,UI告诉我说我们移动项目中的边框全部都变粗了,UI把他的设计稿跟我的屏幕截图跟我看,居然真的不一样 ...

  4. 浅谈html5 video 移动端填坑记

    这篇文章主要介绍了浅谈html5 video 移动端填坑记,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 本文介绍了html5 video 移动端填坑记,分享给大家,具体 ...

  5. html5实现移动端下拉刷新(原理和代码)

    这篇文章给大家介绍的内容是关于html5实现移动端下拉刷新(原理和代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 移动端的下拉刷新是一个很常见的功能,也有许多开源库实现了这个功 ...

  6. HTML5与移动端web学习笔记

    HTML5 提供了很多新的功能,主要有: 新的 HTML 元素,例如 section, nav, header, footer, article 等 用于绘画的 Canvas 元素 用于多媒体播放的 ...

  7. HTML5与移动端Web

    概述 HTML5 提供了很多新的功能,主要有: 新的 HTML 元素,例如 section, nav, header, footer, article 等 用于绘画的 Canvas 元素 用于多媒体播 ...

  8. html5 meta(移动端)介绍及使用

    随着高端手机(Andriod,Iphone,Ipod,WinPhone等)的盛行,移动互联应用开发也越来越受到人们的重视,用html5开发移动应用是最好的选择.然而,每一款手机有不同的分辨率,不同屏幕 ...

  9. 【小月博客】 Html5 上传图片 移动端、PC端通用

    在博客园注册账号有些天了,感觉有些许欣慰,自己写的东西有人在看,有人在评论很是开心.(ps: 满足一下虚荣心吧!) 废话不多说了,说一下今天给大家分享的是 html5上传图片.我们是在移动端使用的,但 ...

随机推荐

  1. 微信小程序开发教程(五)开发框架:MINA

    微信团队为小程序提供的框架命名为MINA应用框架.MINA框架通过封装微信客户端提供的文件系统.网络通信.任务管理.数据安全等基础功能,对上层提供一整套JavaScript API,让开发者能够非常方 ...

  2. hibernate中session的线程安全问题

    Hibernate的基本特征是完成面向对象的程序设计语言到关系数据库的映射,在Hibernate中使用持久化对象PO(Persistent Object)完成持久化操作,对PO的操作必须在Sessio ...

  3. [BZOJ4772]显而易见的数论(数论)

    4772: 显而易见的数论 Time Limit: 40 Sec  Memory Limit: 256 MBSubmit: 76  Solved: 32[Submit][Status][Discuss ...

  4. 在energia中添加新的库

    很多时候energia提供的库不能够满足我们的需要,这个时候我们就要自己添加库到energia中.方法如下: 在energia目录下找到hardware目录 选择对应的单片机型号文件夹进入 进入lib ...

  5. android连接Mysql数据库之JDBC方式

    一.创建一个数据库和若干表,并导入相关信息.这里以我之前使用的一个图书系统的数据库为例子. 首先假设已经安装并配置好Mysql.(建议大家安装WAMP,也就是安装完这个,就相当于安装了Mysql,PH ...

  6. sql server线程等待信息

    http://www.cnblogs.com/lyhabc/articles/3236984.html http://blog.csdn.net/isoleo/article/details/4547 ...

  7. ios(iphone/ipad)一个简单的用代码判断当前设备的方法

    直接NSLog(@"current_device:%@",[UIDevice currentDevice].model); 即可看出它输出的是当前设备,所以根据这个字符串可简单的判 ...

  8. 大数据的开始:安装hadoop

    为实现全栈,从今天开始研究Hadoop,个人体会是成为某方面的专家需要从三个方面着手 系统化的知识(需要看书或者比较系统的培训) 碎片化的知识(需要根据关注点具体的深入的了解) 经验的积累(需要遇到问 ...

  9. Oracle Process Cloud流程云实践

    本篇适合对Oracle Unified BPM有一定基础的人参考,本篇也是参考Oracle A-team  John Featherly的文章进行的实践. 1.      流程创建 打开cloud.o ...

  10. python抓取日本网站上iphone5的价格

    抓取日本网站上iphone5的价格,比国内便宜好多汇率换算是在中国银行的网站上取得 #-*- coding:utf-8 -*- import requests import time from bs4 ...