html5在移动端的屏幕适应性问题
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在移动端的屏幕适应性问题的更多相关文章
- HTML5 Mobile 适应移动端的屏幕<meta name='viewport' content='xxxx'>
网页手机wap2.0网页的head里加入下面这条元标签,在移动端的浏览器中页面将以原始大小显示,并不允许缩放. 加入 如下代码 即可自适应移动端的屏幕: <meta name="vie ...
- 7种方法解决移动端Retina屏幕1px边框问题
在Reina(视网膜)屏幕的手机上,使用CSS设置的1px的边框实际会比视觉稿粗很多.在之前的项目中,UI告诉我说我们移动项目中的边框全部都变粗了,UI把他的设计稿跟我的屏幕截图跟我看,居然真的不一样 ...
- 7种方法实现移动端Retina屏幕1px边框效果
在Reina(视网膜)屏幕的手机上,使用CSS设置的1px的边框实际会比视觉稿粗很多.在之前的项目中,UI告诉我说我们移动项目中的边框全部都变粗了,UI把他的设计稿跟我的屏幕截图跟我看,居然真的不一样 ...
- 浅谈html5 video 移动端填坑记
这篇文章主要介绍了浅谈html5 video 移动端填坑记,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 本文介绍了html5 video 移动端填坑记,分享给大家,具体 ...
- html5实现移动端下拉刷新(原理和代码)
这篇文章给大家介绍的内容是关于html5实现移动端下拉刷新(原理和代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 移动端的下拉刷新是一个很常见的功能,也有许多开源库实现了这个功 ...
- HTML5与移动端web学习笔记
HTML5 提供了很多新的功能,主要有: 新的 HTML 元素,例如 section, nav, header, footer, article 等 用于绘画的 Canvas 元素 用于多媒体播放的 ...
- HTML5与移动端Web
概述 HTML5 提供了很多新的功能,主要有: 新的 HTML 元素,例如 section, nav, header, footer, article 等 用于绘画的 Canvas 元素 用于多媒体播 ...
- html5 meta(移动端)介绍及使用
随着高端手机(Andriod,Iphone,Ipod,WinPhone等)的盛行,移动互联应用开发也越来越受到人们的重视,用html5开发移动应用是最好的选择.然而,每一款手机有不同的分辨率,不同屏幕 ...
- 【小月博客】 Html5 上传图片 移动端、PC端通用
在博客园注册账号有些天了,感觉有些许欣慰,自己写的东西有人在看,有人在评论很是开心.(ps: 满足一下虚荣心吧!) 废话不多说了,说一下今天给大家分享的是 html5上传图片.我们是在移动端使用的,但 ...
随机推荐
- HDUOJ题目HTML的爬取
HDUOJ题目HTML的爬取 封装好的exe/app的GitHub地址:https://github.com/Rhythmicc/HDUHTML 按照系统选择即可. 其实没什么难度,先爬下来一个题目的 ...
- [BZOJ 1195] 最短母串
Link:https://www.lydsy.com/JudgeOnline/problem.php?id=1195 Solution: 看到数据范围n<=12,就要往状压DP上想 为了保证后项 ...
- SD 一轮集训 day3 染色(color)
蜜汁打表题.. (首先L=1和L=N的情况过于傻逼(而且是特殊情况),可以先写出来,然后剩下的L的做法在下面) 首先你要写一个打表程序,找出{1,2,....,n} 乘若干个 循环唯一的轮换可以搞出的 ...
- 统计正数和负数的个数,然后计算这些数的平均值 Exercise05_01
import java.util.Scanner; /** * @author 冰樱梦 * * */ public class Exercise05_01{ public static void ma ...
- 解决Visual Studio 2013 XAML设计器异常
今天使用Visual Studio 2013打开一个windows 应用商店程序的时候,发现出现如下异常: at System.Windows.Input.Cursor.LoadFromFile ...
- spring MVC中获取request和response:
spring MVC中获取request和response: HttpServletRequest request = ((ServletRequestAttributes) RequestConte ...
- 分布式架构高可用架构篇_activemq高可用集群(zookeeper+leveldb)安装、配置、高可用测试
原文:http://www.iteye.com/topic/1145651 从 ActiveMQ 5.9 开始,ActiveMQ 的集群实现方式取消了传统的Master-Slave 方式,增加了基于Z ...
- javascript模块化有什么意义?
以前,所有的javascript都写在一个文件里,方便只加载一个文件就可以了,但是代码越来越多,必须分成多个文件加载,类似: <script src="1.js">&l ...
- SpringBoot整合Quartz定时任务
记录一个SpringBoot 整合 Quartz 的Demo实例 POM.XML文件 <!-- 定时器任务 quartz需要导入的坐标 --> <dependency> < ...
- javascript的rsa加密和python的rsa解密
先说下目前测试情况:javascript加密后的数据,python无法完成解密,我估计是两者的加密解密方法不同 1.看了这篇文章:http://blog.nsfocus.net/python-js-e ...