近一两年,HTML5在中国很火,也出了不少HTML5工具和模板。别的先不说,对于不同的H5工具,解决屏幕自适应问题的区别是什么?

简单来说,感应式设计是当用不同设备访问时,能够根据设备的宽度和高度对设备进行动态的适配。例如,用iPhone4、iPhone5、iPhone6、PC、iPad访问同一个H5网页,都能打开一个适合该设备的一个HTML5页面,不留白边,不变形。

由于设备分辨率和长宽比都不同,如果设计一次就能适应所有的屏幕(包括移动端和PC端),几乎不可能。原因有三:

1. 如果等比例缩放,内部位置关系会发生变化,就会严重影响用户体验;同时,设备屏幕之间不存在等比例的关系,所以同样会有部分屏幕内容无法显示或留白边;

2. 如果把小屏幕适配好,放在更高的大屏幕里面,那两边就会有白边;或者把图扯大,这样就会变形;

3. 如果把大屏幕适配好,放在小屏幕中,就有些部分会丢失。

因此,除非借助未来的AI(人工智能)的发展,否则很难自动解决这个问题。而以前的网站,也只能分开几种版面进行设计,例如根据宽度大小采用设计板式。

那现在的HTML5工具是如何实现感应式设计的?经研究发现,共有两种方式,第一种是伪感应式设计(以易企秀为例),第二种是多版面感应式设计(以iH5.cn为例)。

上图是易企秀的测试结果,依次是iPhone4、iPhone5、iPhone6对同一网页的显示情况。使用iPhone4时,变形最严重;iPhone5效果最好;iPhone6是等比例缩放后,两侧边缘,有些像素显示不了。所以可以基本判断这个HTML5工具按照iPhone5为标准版型。因此,这种感应式设计被称为伪“感应式”,设计时不会留白边,但要求尽量把内容都往中间放,这就需要设计一张名为“背景”的底图,用于拉伸时用。

[存在问题]

1. 内容都要居中放,不能放上下边缘,例如把按钮放到最下面,iPhone打开后就看不到按钮了;

2. 不可能适应PC、Pad等设备。

这种伪感应式设计比较简单,但也只能在应急时使用,如果想要尽可能实现完美适应,就需要采用多版面感应式设计。

能让网页自动适应多个屏幕的HTML5工具,需要为不同尺寸和分辨率的设备设置不同的屏幕。iH5.cn采用的就是这种多版面感应式设计,提供在编辑H5页面时添加多个屏幕,用户能自主为不同屏幕设计适于显示的页面。它本身原理是添加Device控件,如果是手机端的轻应用一般采用iPhone 4、5、6的分辨率即可。

这样的话,才可能用一个URL地址,完美适应多个屏幕,包括PC端和Pad,而不会出现任何变形或丢失情况。

HTML5工具做屏幕自适应的两种方法的更多相关文章

  1. css实现div两列布局——左侧宽度固定,右侧宽度自适应(两种方法)

    原文:css实现div两列布局--左侧宽度固定,右侧宽度自适应(两种方法) 1.应用场景 左侧一个导航栏宽度固定,右侧内容根据用户浏览器窗口宽度进行自适应 2.思路 首先把这个问题分步解决,需要攻克以 ...

  2. 设置一个DIV块固定在屏幕中央(两种方法)

    设置一个DIV块固定在屏幕中央(两种方法) 方法一: 对一个div进行以下设置即可实现居中. <style> #a{ position: fixed; top: 0px; left: 0p ...

  3. ios 设置屏幕方向的两种方法

    第一种:通过人为的办法改变view.transform的属性. 具体办法: view.transform一般是View的旋转,拉伸移动等属性,类似view.layer.transform,区别在于Vi ...

  4. unity,实现屏幕后处理的两种方法

    方法一: Main Camera的Target Texture保持为None.挂一个Blit脚本,在其中的OnRenderImage中调用Graphics.Blit(sourceTexture,des ...

  5. CSS两列布局——左侧宽度固定,右侧宽度自适应的3种方法

    1.左侧绝对定位法 直接看代码: <!DOCTYPE html> <html lang="en"> <head> <meta charse ...

  6. CSS实现自适应不同大小屏幕的背景大图的两种方法(转自简书)

    CSS实现自适应不同大小屏幕的背景大图的两种方法 一张清晰漂亮的背景图片能给网页加分不少,设计师也经常会给页面的背景使用大图,我们既不想图片因为不同分辨率图片变形,也不希望当在大屏的情况下,背景有一块 ...

  7. 在vc6.0下编的对话框界面如果没做过其他处理,往往显的很生硬,怎么样才能使他有Windows XP的风格呢,其实也很简单,我们来看看下面两种方法。

    在vc6.0下编的对话框界面如果没做过其他处理,往往显的很生硬,怎么样才能使他有Windows XP的风格呢,其实也很简单,我们来看看下面两种方法.    方法一: 1.首先确认你在Windows   ...

  8. 在Delphi中使用C++对象(两种方法,但都要改造C++提供的DLL)

    Delphi是市场上最好的RAD工具,但是现在C++占据着主导地位,有时针对一个问题很难找到Delphi或Pascal的解决方案.可是却可能找到了一个相关的C++类.本文描述几种在Delphi代码中使 ...

  9. div随页面滚动遇顶固定的两种方法(js&jQuery)

    一.遇顶固定的例子 我一直以为是某个div或层随屏幕滚动,遇顶则固定,离开浏览器顶部又还原这样的例子其实不少,其实它的名字叫“层的智能浮动效果”.目前我们在国内的商业网站上就常常看到这样的效果了.例如 ...

随机推荐

  1. JvisualVM、JMC监控远程服务器

    修改服务器上jmxremote.access与jmxremote.password,输入命令: find -name jmxremote.access进入该jmxremote.access文件所在目录 ...

  2. webpack点滴记录

    有了webpack..(不借助gulp/grunt)代码压缩 图片base64,解析less/sass coffee css压缩,MD5加密都帮你做了..还支持按需加载..还有热替换 webpack常 ...

  3. 进入html+css世界的正确姿势

    今天,我带大家一起走进html+css的世界. HTML其实是HyperText Markup Language的缩写, 超文本标记语言.他是用于告诉浏览器这是一个网页, 也就是说告诉浏览器我是一个H ...

  4. [转载]转载一篇好文章作为Java与面向对象之随感(3)

    关于对象与引用之间的一些基本概念. 初学Java时,在很长一段时间里,总觉得基本概念很模糊.后来才知道,在许多Java书中,把对象和对象的引用混为一谈.可是,如果我分不清对象与对象引用, 那实在没法很 ...

  5. 1001. Exponentiation高精度运算总结

    解题思路 这道题属于高精度乘法运算,要求输入一个实数R一个指数N,求实数R的N次方,由于R有5个数位,而N又特别大,因此用C++自带的数据类型放不下. 解题思路是通过数组储存每次乘积结果和底数的每一位 ...

  6. Java 原始数据类型

    如何记住 Java 中的原始数据类型? 画了一个图方便记忆:

  7. java复习(7)---集合类、泛型

    本节主要结合用例讲述Java中Map类.Set类.List类如何使用. Java中有封装好的集合类,常用的有Map类.Set类.List类,简单说明一下他们的用法. List类,常用有ArrayLis ...

  8. Latex 公式在线可视化编辑器

    寻觅 最近的一个demo需要用到Latex公式在线编辑器,从搜索引擎一般会得到类似http://latex.codecogs.com/eqneditor/editor.php的结果,这个编辑器的问题在 ...

  9. Unity CommandInvokationFailure: Failed to re-package resources. 解决方案

    在导入谷歌的SDK的时候,打包出来报错CommandInvokationFailure: Failed to re-package resources. 把Android SDK更新一下就轻松搞定了, ...

  10. Unity使用GL画线

    脚本需挂在相机上,如果你的脚本,编辑器报错了,Matrix stack full depth reached,加上这个方法试试GL.LoadPixelMatrix(); using System.Co ...