1.手机浏览器与桌面浏览器的不同

现在手机浏览器的显示分辨率与桌面浏览器差不多,但是手机的尺寸比电脑要小很多。一个没做过响应式处理的网站,在手机和电脑上显示完全一样的内容, 不可避免的会出现字体被缩小的现象。想象一下电脑里12号字体缩小好几倍的效果吧。 所以如果将web网页移植为wap应用上,还是有许多问题需要考虑。

2.理解两个viewport的概念

做过wap开发的都知道 html的 <meta name=”viewport”> ,这是一个从iphone引入的meta,现在几乎所有手机浏览器都支持。下边要讲的 viewport 是从手机浏览器的角度出发,而不是html,请不要混淆。

把 viewport 分为2个方面来学习,更有助于理解它的原理:

  • visual viewport
  • layout viewport

想象有个房间,你可以操控它放大变小,现在你站在它的窗户前。正对着窗户的墙壁涂满了壁画,你走到离窗口1米的位置往房间里看,假设房间现在很大很 大,你能看到对面墙壁上的整个壁画,但是因为距离太远了,你看不清壁画上的题词,于是你让房间缩小,缩小到壁画离你很近,近到能看清壁画上的细节。在这里 窗户就是visual viewport。墙壁就是layout viewport

对应到手机浏览器,visual viewport就是当前显示给用户内容的窗口,你可以拖动或者放大缩小网页,来看清楚网页的内容。layout viewport 有网页的所有内容,他可以全部或者部分展示给用户。

对于css布局,特别是用宽度百分比做排版的时候,比率是按照layout viewport 来计算的。也就是说如果一个div相对的宽度50%,用户在手机浏览器放大缩小,DIV的宽度不会一直显示相对于窗口50%,这个div可能会填满整个窗 口或小到看不见。(可以电脑和手机分别体验一下这个网址:http://zhaoyuhao.com/demo/34.html)

那么layout viewport有多宽?不同的设备、不同的浏览器都不相同。 Safari浏览器为980px,Opera 850px,Android WebKit 800px, IE 974px.(手机像素宽度、浏览器像素、设备像素是不同的概念,这个需要注意.)

原文对于这两者还有一些其他的分析,不过不是什么重点,就不翻了

3.viewport 长宽的测量

上文提到有2个viewport,分别有2对属性值对应这两者。(这里有个故事,按道理桌面浏览器是只需要一个属性对的,可是由于浏览器大战导致出现了不同标准,刚好手机浏览器用上了,也算是一种应祸得福吧。)

layout viewport 的 长宽 (document.documentElement.clientWidth / document.documentElement.clientHeight)

visual viewport 的 长宽 (window.innerWidth / window.innerHeight)

4.screen(设备) 长宽的测量

screen 的大小其实就是设备的像素大小,在针对桌面浏览器的开发中,这个数值不重要,你不需要关系电脑屏幕的像素,但是对于wap开发,这个数值有它的含义,因为手机浏览器宽度=设备宽度,可以通过他们的比例计算到页面的缩放比例

screen.width/height

5. Scrolling offset

我们有时候要知道visual viewport与layout viewport的相对距离 :

window.pageXOffset window.pageYOffset

6.Media queries

Media queries 是html5的特性 可以根据 device-width(设备的宽度 screen.width) 来确定显示不同CSS。

我在IPHONE4S – CHROME 浏览器 ,测试结果如下:

1

更多相关文章

  1. 浏览器的地址栏尺寸是否会影响CSS媒体查询?
  2. 关于大背景图片随浏览器百分比缩放的问题
  3. html5结合flash实现视频文件在所有主流浏览器兼容播放
  4. 安装的Moodle字体在其他浏览器中不起作用
  5. 解决IE9以下版本浏览器不支持HTML5标签的问题
  6. HTML5获取手机摄像头拍照
  7. PHPCMS V9 的手机门户wap绑定单页面
  8. php网站 手机归属地查询接口
  9. 从浏览器中删除发送到服务器的标题。

随机推荐

  1. Java多线程之Thread、Runnable、Callable
  2. BufferedImage到InputStream - 格式不同
  3. 20145122《 Java网络编程》实验五实验报
  4. java操作ftp实现文件的上传下载(适用于图
  5. ***100分,谁有用java mail做的把表单直接
  6. 急求用jersey2.x+spring3.x 开发rest web
  7. 从AWS Lambda发布到SNS时超时
  8. Finder3.0 - 集群支持即将发布
  9. Java中的TreeMap、Comparable、Comparato
  10. 如何获得嵌入式Jetty Web服务器来转储其J