生活服务
H5 页面适配所有 iPhone 和安卓机型的六个技巧
2025-01-02 19:58  浏览:100

目前,很多APP设计师小伙伴已经开始转向H5前端开发啦,但是解决所有iPhone和安卓机型的适配问题是我们的重中之重。无论是设计APP还是写前端H5.都是要考虑移动端的兼容性。

H5 页面适配所有 iPhone 和安卓机型的六个技巧

25学堂今天跟大家来回顾一下H5页面去适配所有iPhone和安卓机型的一些技巧和办法。

回归正题,兼容iphone各版本机型最佳的方式就是自适应。

1、viewport 简单粗暴的方式

 

直接设置viewport为320px的1.3倍,将页面放大1.3倍。

为什么是1.3

目前大部分页面都是以320px为基准的布局,而iphone6的宽度比是375/320 = 1.171875,iphone6+则是 414/320 = 1.29375那么以1.29倍也就约等于1.3了。
2、ip6+ 的CSS media query

 

PS: 也可以直接使用实际的device-width:如 

在原有页面的基础上,再针对相应的屏幕大小单独写样式做适配。
3、REM布局

REM是CSS3新增的一种单位,并且移动端的支持度很高,android2.x+,ios5+ 都支持。REM是相对于dom结构的根元素来设置大小,也就是html这个元素。相较于em单位,rem使用上更容易理解及运用。

REM与PX的换算可以查看网址: https://offroadcode.com/prototypes/rem-calculator/

假设,html我们设置font-size:12px; 也就是说12px相对于1rem,那么18px也就是 18/12 = 1.5rem。

那么我们以320px的设计布局为基准,将html设置为font-size:100px,即100px = 1rem。(设置100px是为了方便计算)那么可以将大部分px单位除以100就可以直接改成rem单位了。

REM如何做响应式布局

1、如果仅仅是适配ip6+设备,那么使用media query就行。

伪代码如下

 

这样,在ip6下,也就将页面内的元素放大了1.17倍,ip6+下也就是放大了1.29倍。

2、如果是完全自适应,那么可以通过JS来控制。

 

页面初始化的时候计算font-size,然后再绑定resize事件。这种效果就和百分比布局一样了。

那么用REM做单位与百分比做单位有什么优势

主要优势在于能更好的控制元素大小。(一般百分比应用在布局层,一般常见设置为50%,33.3%,25%之类的整数居多,难以运用在复杂的页面小部件内)。但是相比百分比布局,需要借助JS或media query实现,略有一点瑕疵。

DEMO地址

id="cp_embed_Jojaqw" src="http://codepen.io/baofen14787/embed/Jojaqw?height=268&theme-id=10019&slug-hash=Jojaqw&default-tab=result&user=baofen14787" scrolling="no" frameborder="0" height="268" allowtransparency="true" allowfullscreen="true" name="CodePen Embed" title="CodePen Embed" class="cp_embed_iframe " style="box-sizing: border-box; outline: none; width: 568px; overflow: hidden;">

4、图片自适应

公式如下

padding-top = (Image Height / Image Width) * 100%

原理:padding-top值为百分比时,取值是是相对于宽度的。

相关代码实现

 
 

DEMO地址,缩放浏览器窗口看看。

id="cp_embed_vEYzgv" src="http://codepen.io/baofen14787/embed/vEYzgv?height=268&theme-id=0&slug-hash=vEYzgv&default-tab=result&user=baofen14787" scrolling="no" frameborder="0" height="268" allowtransparency="true" allowfullscreen="true" name="CodePen Embed" title="CodePen Embed" class="cp_embed_iframe " style="box-sizing: border-box; outline: none; width: 568px; overflow: hidden;">

5、图片高清化

大家都知道,iphone6 plus 是3倍高清图了,它的devicePixelRatio = 3。

关于DPR的介绍可以查看这篇文章《 设备像素比devicePixelRatio简单介绍 》

在ios8下,已经开始支持img的  属性了(目前移动端也就ios8开始支持,也就是说,可以对一张图片设置2个URL,浏览器自动加载对应的图片。

6、背景图高清化

media query 实现高清化

img标签的高清化,可以通过JS判断devicePixelRatio的值来加载不同尺寸的图片,但是对于背景图,写在CSS中的,用JS来判断就略麻烦了,还好CSS通过media query也能判断dpr。

目前兼容性最好的背景图高清化实现方式,使用media query的  做判断

 

进一步,可以通过工具生成相应的3x,2x,1x的图片及css,在使用时直接引用即可。谁搞一个

关于移动设备的  值,可以查看该网页的整理: http://bjango.com/articles/min-device-pixel-ratio/

image-set 实现高清化

image-set,它是Webkit的私有属性,也是Css4的一个属性,它是为了解决Retina屏幕下的图像显示而生。

使用方式也很简单。伪代码如下

 

目前移动端的支持程度来看,ios7+,android 4.4+ 下已经支持了。如果仅仅是做ip6+的高清适配方案。  也是一种实现方案。

使用image-set 与 media query 实现有什么区别及好处

这篇文章里面做了很详细的阐述,大家可以看看http://blog.cloudfour.com/safari-6-and-chrome-21-add-image-set-to-support-retina-images/

大体的意思是:image-set不需要告诉浏览器使用什么图像,而是直接提供了图像让浏览器选择。这就意味着,如果在低网速下,浏览器可以选择加载低分辨率的图片。(PS:好智能的样子

但是相比如media query的实现,image-set仅支持单个图片的高清化,不适合在css sprite下使用。 并且兼容性也是一大硬伤。

一般来说,用在LOGO区域,单个图片图标的区域下,也是个不错的选择。

关于图片列表适配,也就是要让布局更灵活,在电商网站里面,商品列表是一个非常常见的结构。一种比较智能的列表方式是:两端对齐,间距自适应。

    以上就是本篇文章【H5 页面适配所有 iPhone 和安卓机型的六个技巧】的全部内容了,欢迎阅览 ! 文章地址:http://sjzytwl.xhstdz.com/xwnews/950.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 物流园资讯移动站 http://sjzytwl.xhstdz.com/mobile/ , 查看更多   
最新文章
【排序算法】python之冒泡,选择,插入,快速,归并
参考资料: 《Python实现5大排序算法》《六大排序算法:插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序
一些Python爬虫工具
爬虫可以简单分为三步骤:请求数据、解析数据和存储数据 。主要的一些工具如下:request一个阻塞式http请求库。SeleniumSelenium
[Web逆向]记一个有趣的防红网站反复横跳
(也没有什么可以多级标题的就直接不分了吧)起因朋友给我发了个网址兴冲冲的打开,结果跳转了好几次,是一个视频。。。emmm算了
【工作笔记0033】Fiddler抓包手机app配置
1.下载安装fiddler https://www.telerik.com/download/fiddler 2.pc端fiddler设置,勾选以下设置 Tool-Options-HttpsTool-
万能自动点击器连点器分享版最新版内容简介
万能自动点击器连点器是一款好用的系统工具,万能自动点击器连点器分享版最新版完全不需要手机root,快来万能自动点击器连点器脚
《P2P种子搜索器》v3.0.0.0官方版
  p2p种子搜索器是一款很好的种子搜索神器,而今天小编要为大家带来的就是p2p种子搜索器官方下载。p2p种子搜索器资源覆盖面涉
《鬼泣3》经典怪物盘点
《鬼泣》系列中怪物的设计在众多游戏中都是非常有特色的,其中一些经典的怪物在老玩家脑海中记忆深刻,《鬼泣3》中的怪物更是为
【理论学习】以科技创新培育和发展新质生产力
  内容提要  科技创新是发展新质生产力的核心要素。我国发展新质生产力具有科技创新的坚实基础。要以科技创新引领产业创新,
【原】五大海外代理机构盘点
Highrise:无处不存在导入导出功能的CRM美国37signals公司开发的一款简单的客户关系管理软件。37signals曾被《连线》杂志评出200
《哥斯拉大战金刚2》一些幕后
“ 感知技术 · 感触CG · 感受艺术 · 感悟心灵 ”中国很有影响力影视特效CG动画领域自媒体叮咚!您最爱的怪兽顶流回归,请查收
相关文章