html适配Anroid手机

本文全然是翻译与总结谷歌官方的教程,已确保文档的正确性。

免得大家被五花八门的其它的资料弄混了,也没有系统行的学习。


一、设置窗体尺寸和适配屏幕分辨率

谷歌官方文档提到两个大的方面。

1.Viewport视图窗体

这个是html中设置的。主要是设置高度和宽度,还有初始的比列。

这个宽度与高度将绝对html里面CSS中有多少个像素可用。

Viewport的宽度与屏幕的宽度没有决定性的关系。比方你的手机宽度是480PX可是你能够设置Viewport的宽度为960PX,这样一张800PX的图片就能一次性显示完整。由于非常多浏览器比方chrome,会尽可能的缩放,缩小到能一屏幕能展现整个网页,也就是960PX的宽度。

注意:使用webView时并不会默认使用 全局概要模式。

也就是自己主动缩小,用这种方法设置一下即可setUseWideViewPort().

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

<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"]" />
注意:除非你确定你的程序自己主动适配的非常好。并且在最小尺寸下也能使用,否则不要关闭user-scalable。

2.屏幕分辨率

html在CSS中写的像素单位。在Android中等同于160DPI的手机。

假设是320DPI的手机,就会对这个单位进行放大。

比方假设一张300像素宽的图片。在160PI中能正常的显示。可是到了320DPI中的手机就会放大两倍。这个时候图片就会失真,模糊。有纹理。


二、通过CSS来适配

1.不同分辨率使用不同的CSS 

通过设置-webkit-device-pixel-ratio 这个属性0.75,1,,1.5来相应低分率,中分辨率,高分辨率。事实上就是以下的写法

<link rel="stylesheet" media="screen and (-webkit-device-pixel-ratio: 1.5)" href="hdpi.css" />
<link rel="stylesheet" media="screen and (-webkit-device-pixel-ratio: 1.0)" href="mdpi.css" />
2.或者通过不同的style和样式表。写法例如以下

#header {background:url(medium-density-image.png);
}@media screen and (-webkit-device-pixel-ratio: 1.5) {/* CSS for high-density screens */#header {background:url(high-density-image.png);}
}@media screen and (-webkit-device-pixel-ratio: 0.75) {/* CSS for low-density screens */#header {background:url(low-density-image.png);}
}
很多其它关于怎样适配分辨率尤其是图片的适配能够參见 High DPI Images for Variable Pixel Densities.。

稍后假设有时间会把这个链接里面的内容也总结一下。

三、通过javascript来适配


写法例如以下:

Android浏览器或者WebView会通过 window.devicePixelRatio这个DOM文档定义的属性来指定当前的缩放比例。

默认的缩放比例是1.0.能够通过例如以下代码来获取比例,并作出相应的处理。

if (window.devicePixelRatio == 1.5) {alert("This is a high-density screen");
} else if (window.devicePixelRatio == 0.75) {alert("This is a low-density screen");
}

转载于:https://www.cnblogs.com/zfyouxi/p/5137673.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375164.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算术运算与逻辑运算

逻辑运算又称布尔运算,取值只有两个真或假,二进制数1和0在逻辑上可以代表真与假,是与否 算术运算...小学就开始学的了 两者的区别在与逻辑运算是按位进行的,位与位之间没有进位或借位.逻辑加法(OR)OR OPRD1,OPRD2 ;OPRD1<--OPRD1 OPRD2 算术加法(ADD)ADD OPRD1,OPRD2 ;O…

Webpack 入门指迷--转载(题叶)

最近看到这个东西&#xff0c;一头雾水。看了一些资料了解了Webpack概念&#xff0c;大体是webpack 是一个模块绑定器&#xff0c;主要目的是在浏览器上绑定 JavaScript 文件。 看到题叶写的一篇介绍&#xff0c;写的很好&#xff0c;转载连接http://segmentfault.com/a/119000…

非操作指令NOT

否操作指令NOT(又称逻辑非运算)01 ;非0等于110 ;非1等于0NOT OPRD ;该指令把操作数OPRD取反然后送回OPRDmov ah,11111111B ;FFHnot ah ;执行后AH0Hmov ah,11110000B ;F0Hnot ah ;执行后AH00001111B 0FH

jquery的动画学习--jquery权威指南

前面的fadeIn和fadeOut还有fadeTo以及sildeToggle还有sildeUp\sildeDown还有toggle还有show、hide等都经常用&#xff0c;就不再手写了&#xff0c;需要注意的是fadeTo的合理应用&#xff0c;可以规定opactiy的具体数值&#xff0c;另外各个效果的回调函数可以多用用。$("…

防止Button按钮重复点击

背景&#xff1a;在测试中&#xff0c;测试MM总喜欢连续重复点击Button&#xff0c;如果click事件的处理业务&#xff0c;稍微有些耗时&#xff0c;或者设备反应比较慢时&#xff0c;就会响应2遍处理&#xff0c;导致错误的现象出现。 前提&#xff1a;click事件的处理业务&…

8086交换指令XCHG

XCHG OPRD1,OPRD2;实现OPRD1与OPRD2之间数据交换;OPRD1,OPRD2同时是字节或字操作数, MOV AX,1 MOV BX,2 XCHG AX,BX ;执行后AX2,BX1

[傅里叶变换及其应用学习笔记] 二十四. 级联,脉冲响应

我们上节课学习了 在离散有限维空间中&#xff0c;任何线性系统都是通过矩阵间的相乘得到的在连续无限维空间中&#xff0c;任何线性系统都是通过对核函数的积分得到的脉冲响应&#xff08;impulse response&#xff09; 级联线性系统&#xff08;Cascading linear system&…

WPF如何实现TreeView节点重命名

我们经常看到一些软件比如酷狗音乐&#xff0c;在对列表右键进行重命名的时候&#xff0c;当前列表会泛白并且进入可编辑状态&#xff0c;当我们更改完成后就会并进入非编辑状态&#xff0c;这些具体是怎么实现的呢&#xff1f;下面的方法也许会提供一些思路&#xff0c;下面的…

8086地址传送指令LEA

LEA REG,OPRD ;操作数OPRD必须是一个存储器操作数 LEA AX,IDATA ;把IDATA的偏移地址传送到AX寄存器中DATA SEGMENTIDATA DW 1,2,3,4 DATA ENDS CODE SEGEMNT BEG:MOV AX,OFFSET IDATA ;AXIDATA的偏移地址LEA AX,IDATA ;AXIDATA的偏移地址LEA AX,DS:[IDATA] ;把ds:[IDA…

Shell --- 批量修改文件后缀脚本

for f in *.$1; dofilenamebasename $fmv $f "${filename%.*}".$2; done; Usage:&#xff1a; rename suffix rename_suffix eg: rename dat txt > ls > a.dat > rename dat txt > ls > a.txt 转载于:https://www.cnblogs.com/RookieCoder/p/5140265.…

8086标志操作指令

标号传送指令LAHF 把FLAG低八位送入AH。不影响FLAG的任何位LAHF ;把CF,PF,AF,ZF,SF送入AH的相应位即0,2,4,6,7位SAHF 把AH送入FLAG低八位。根据AH中的内容FLAG的低八位受到影响,高位不受影响MOV AH,11111111B SAHF ;(执行后CF,PF,AF,ZF,SF等于1)PUSHF 把FLAG压入栈中。不影…

最大子序列和

一、遍历所有可能情况 (1234...N)所有可能子序列如下&#xff1a; 1&#xff1b;12&#xff1b;123...... 2&#xff1b;23&#xff1b;234...... ...... N 共N趟&#xff0c;没趟可能的情况由N&#xff0c;N-1...&#xff0c;1依次递减。 时间复杂度O(N3)的算法&#xff1a; i…

!--注释--和%--注释--%有什么区别

转载&#xff1a;版权所有&#xff1a;基础软件。作者邮箱&#xff1a;s.j.l.studiohotmail.com&#xff0c;sun.j.l.studiogmail.com。本文首发于 http://www.cnblogs.com/FoundationSoft。文章转载请保持此版权信息并注明出处。 使用ASP.NET编辑页面时&#xff0c;有两种注释…

团队开发——用户需求调研报告

用户需求调研报告 项目名称&#xff1a; 躲避小球 项目编号&#xff1a;001 调研主题&#xff1a; 用户需求 访谈时间&#xff1a;2015.4.10 调研地点&#xff1a; 石家庄铁道大学图书馆 访谈部门&#xff1a; 三个人行 参与人员&#xff1a; 林彦汝 1. 访谈目的 1、让用…

8086地址传送指令LDS,LES

LDS REG,OPRE;REG是一个16位寄存器,OPRD是一个存储器操作数,为双字项,高16位送入DS,低16位送入REG LDS BX,[SI](ds:si取得存储器中32位(双字),高16位作为段值送入DS中,低十六位送入指定的BX寄存器中)data segmentidata dd 12345678H data ends code segment assume cs:code,ds:…

设计模式(十五):解释器模式

一、定义 在设定环境中&#xff0c;定义一种规则或者语法&#xff0c;通过解释器来解释规则或者语法的含义. 二、实例&#xff1a;将 二十一 —> 21 2.1 设定我们的环境 Context public class Context{public string Input { get; set; }public int Output { get; se…

8086地址传送指令LEA,LDS,LES

LEA BX,[SI] ;BX<--DS:[SI]内存单元的偏移地址,与该单元中的数据无关 LDS BX,[SI] ;BX<--DS:[si]内存单元中的数据的低16位,DS<--内存单元中数据的高16位 LES BX,[SI] ;BX<--DS:[SI] ,ES<--DS:[SI2] 显然LDS和LES的操作数是32位的(两个字 四个字节 32位) 写个…

MySQL 5.7.10 免安装配置

# 配置环境&#xff1a;windows 64bit # 安装版本&#xff1a;mysql-5.7.10-win32&#xff08;zip archive版本&#xff09; 1. ZIP Archive版是免安装的&#xff0c;只需把mysql-5.7.10-win32.zip解压到安装目录即可。 2. 在D:\Program Files\mysql-5.7.10-win32文件夹下新建配…

Cacti安装教程

CentOS 6.0架设流量监控及集中日志系统第一章、cacti的安装1、 系统的基本设置2、 设置主机名3、 [rootlocalhost ~]# vi /etc/sysconfig/network4、 [rootlocalhost ~]# exit5、 重新登陆6、 [rootGZ-Cacti ~]#7、 安装screen后台运行程序yum -y install screen8、 安装优秀的…

8086条件转移指令JE,JZ

JZ/JE 指令格式 转移条件 说明 JZ/JE 标号 ZF1 等于0或相等转移code segment assume cs:codemov ax,2mov bx,2cmp ax,bxje ok ;如果axbx 进行转移(其实是检测ZF的值进行转移操作);根据ZF1 得出axbx ,所以才有axbx 相等则转移 iout: mov ax,4c00Hint 21H ok: add a…