整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

7个html5页面适配iphone6的技巧

phone6及iphone6plus已经出来一段时间了。很多移动端网站,以前写死body为320px的,现在估计也忙着做适配了。

大屏幕手机其实一直有,只是以前大家没怎么重视,移动端的H5页面大部分都以320px为基准宽度进行布局,那些大屏屌丝android用户也懒得去理,而现在iphone也搞起多屏幕,老板们重视程度就不一样了。

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

1、viewport简单粗暴的方式:

<metaname="viewport"content="width=320,maximum-scale=1.3,user-scalable=no">

直接设置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+的CSSmediaquery

@media(min-device-width:375px)and(max-device-width:667px)and(-webkit-min-device-pixel-ratio:2){

/*iphone6*/

}

@media(min-device-width:414px)and(max-device-width:736px)and(-webkit-min-device-pixel-ratio:3){

/*iphone6plus*/

}

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

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

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+设备,那么使用mediaquery就行。

伪代码如下:

/*320px布局*/

html{font-size:100px;}

body{font-size:0.14rem/*实际相当于14px*/}

/*iphone6*/

@media(min-device-width:375px)and(max-device-width:667px)and(-webkit-min-device-pixel-ratio:2){

html{font-size:117.1875px;}

}

/*iphone6plus*/

@media(min-device-width:414px)and(max-device-width:736px)and(-webkit-min-device-pixel-ratio:3){

html{font-size:129.375px;}

}

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

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

(function(doc,win){

vardocEl=doc.documentElement,

resizeEvt='orientationchange'inwindow?'orientationchange':'resize',

recalc=function(){

varclientWidth=docEl.clientWidth;

if(!clientWidth)return;

docEl.style.fontSize=100*(clientWidth/320)+'px';

};

//AbortifbrowserdoesnotsupportaddEventListener

if(!doc.addEventListener)return;

win.addEventListener(resizeEvt,recalc,false);

doc.addEventListener('DOMContentLoaded',recalc,false);

})(document,window);

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

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

主要优势在于能更好的控制元素大小。(一般百分比应用在布局层,一般常见设置为50%,33.3%,25%之类的整数居多,难以运用在复杂的页面小部件内)。

但是相比百分比布局,需要借助JS或mediaquery实现,略有一点瑕疵。

DEMO地址

4、图片自适应

刚说完REM布局,那么用百分比布局也能实现一样的效果,但是用百分比布局,必须要面临一个问题:图片宽度100%,页面加载时会存在高度塌陷的问题。.

那么可以用padding-top设置百分比值来实现自适应。

公式如下:

padding-top=(ImageHeight/ImageWidth)*100%

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

相关代码实现:

<divclass="cover">

<imgsrc="http://www.hmttv.cn/uploadfile/2024/0807/20240807030315876.jpg"alt=""/>

</div>

.cover{position:relative;padding-top:100%;height:0;overflow:hidden;}

.coverimg{position:absolute;top:0;width:100%;}

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

5、图片高清化

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

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

黄色表示仅支持旧的srcset规范,绿色表示支持全新的srcset规范,包括sizes属性,w描述符。这里不展开,详细了解可自行google。

不过目前前端这边图片的实现基本都用lazyload的方式实现。srcset的图片加载方式在实际项目中运用还比较少。

6、背景图高清化

mediaquery实现高清化

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

目前兼容性最好的背景图高清化实现方式,使用mediaquery的-webkit-min-device-pixel-ratio做判断:

/*普通显示屏(设备像素比例小于等于1)使用1倍的图*/

.css{

background-image:url(img_1x.png);

}

/*高清显示屏(设备像素比例大于等于2)使用2倍图*/

@mediaonlyscreenand(-webkit-min-device-pixel-ratio:2){

.css{

background-image:url(img_2x.png);

}

}

/*高清显示屏(设备像素比例大于等于3)使用3倍图*/

@mediaonlyscreenand(-webkit-min-device-pixel-ratio:3){

.css{

background-image:url(img_3x.png);

}

}

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

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

image-set实现高清化

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

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

.css{

background-image:url(1x.png);/*不支持image-set的情况下显示*/

background:-webkit-image-set(

url(1x.png)1x,/*支持image-set的浏览器的[普通屏幕]下*/

url(2x.png)2x,/*支持image-set的浏览器的[2倍Retina屏幕]*/

url(3x.png)3x/*支持image-set的浏览器的[3倍Retina屏幕]*/

);

}

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

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

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

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

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

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

7、图片列表的自适应

关于适配,也就是要让布局更灵活,在电商网站里面,商品列表是一个非常常见的结构。

一种比较智能的列表方式是:两端对齐,间距自适应。

那么可以使用FLEXBOX布局来实现两端对齐的效果,也可以使用text-align:justify的方式实现。

先看个flex实现的例子,主要通过justify-content:space-between,来实现:

flexbox的布局方式,在PC端就不合适了,ie9以下都不支持,那么更友好的方式可以使用text-align:justify来实现,兼容各大主流浏览器,包括IE6。

但是这2种布局方式都有一定的局限性。就是列表个数必须凑整。目前还没找到一种能够兼容不限个数的实现方案,如果各位看官有更好的实现方式,也欢迎提出,一起交流。

移动端ip6的适配方案有很多,没有固定的套路及方法,请根据自身业务的特点,选择其中的一些方法组合使用。

跨无忧(www.kuawuyou.com)来自“跨屏无忧”的想法,我们首个推出永久的、不依赖第三方的跨屏幕适配方案,希望以我们专业的力量帮助每个企业都能实现在移动互联网的转变,让企业网站轻松无忧完成到移动设备的跨屏幕适配,快速抓住移动互联网机遇。

日,继华为首款搭载自主研发鸿蒙操作系统的MatePad Pro平板电脑之后,腾讯也宣布旗下各款应用无条件适配鸿蒙系统。这一消息再次引发了业界的广泛关注。

鸿蒙,作为华为自主研发的全新操作系统,从一开始就引起了业界的广泛关注。它不仅被寄予厚望成为华为"脱钩"美国供应链的"救命稻草",也被认为将对整个智能设备市场带来巨大的颠覆性变革。而腾讯此次宣布无条件适配鸿蒙,无疑再次印证了鸿蒙系统的崛起势不可挡。

那么,究竟是什么让鸿蒙如此备受瞩目?它将如何影响到整个智能设备产业乃至更广泛的科技生态?本文将对鸿蒙系统的发展现状及其对产业链的深远影响进行详细分析,为读者呈现一幅鸿蒙时代即将到来的全景图。

鸿蒙系统的技术亮点:从底层架构到应用生态

要全面理解鸿蒙系统的独特之处,我们需要从其底层架构和技术特点入手。

首先,鸿蒙采用了全新的微内核架构设计,与传统的单一内核架构有着本质区别。与Linux、Windows等主流操作系统基于单一内核的设计不同,鸿蒙的微内核架构将系统内核精简到了最小,而将大部分服务功能转移到了用户态,这不仅提升了系统的安全性和可靠性,同时也大幅提升了系统的实时性能。

其次,鸿蒙系统具有出色的跨设备兼容性。借助于其分布式架构和统一的分布式服务框架,鸿蒙可无缝适配手机、平板、车载系统等各类智能终端,为用户提供流畅、统一的跨设备使用体验。这种"一码通用"的跨平台特性,大大提升了鸿蒙系统的应用场景和市场接受度。

再次,鸿蒙在安全性方面也有着独特的优势。它采用了全新的安全架构,通过硬件级别的安全措施,如可信执行环境(TEE)、安全启动等技术,为系统和应用程序提供了更加可靠的安全防护。同时,鸿蒙还支持安全编程框架,使开发者可以更加便捷地构建安全应用。这无疑会成为鸿蒙在政企等重点应用领域的突出优势。

最后,鸿蒙还提供了强大的开发者支持。它采用了与HTML5高度兼容的开发语言和框架,使得大量现有的Web应用和开发者可以快速适配和接入。同时,鸿蒙还提供了一站式的开发工具链,大幅降低了开发者的学习成本。这种贴近开发者需求的设计,为鸿蒙系统的应用生态发展奠定了坚实的基础。

可以说,鸿蒙系统在底层架构、跨设备适配、安全性以及开发者支持等方面的技术创新,为其未来的市场推广和应用拓展注入了强大的动能。这也成为其能够广受市场关注的重要原因。

从手机到车载,鸿蒙系统的应用布局

随着鸿蒙系统技术实力的不断增强,其应用范围也在逐步扩大。目前,鸿蒙系统已经从初期的手机和平板领域,延伸到车载系统、智能家居等更广阔的应用场景。

首先是手机和平板领域。作为鸿蒙系统的首批搭载产品,华为MatePad Pro和Mate40等系列手机和平板,展现了鸿蒙在流畅性、续航等关键指标上的出色表现。随着更多搭载鸿蒙的手机和平板陆续推出,鸿蒙在消费电子领域的影响力必将持续增强。

除了消费类电子,鸿蒙系统在车载系统领域也有着广泛的应用。不少国内汽车品牌正在积极拥抱鸿蒙,将其作为车载智能系统的标配。比如长城汽车就已经宣布,未来所有车型都将搭载鸿蒙系统。可以预见,随着鸿蒙在车载领域的深入应用,它将成为支撑智能网联汽车发展的重要基础。

除此之外,鸿蒙系统在智能家居等领域也有着广阔的应用前景。通过分布式架构和跨设备适配能力,鸿蒙可以实现手机、电视、空调等各类家电的高度协同,为用户提供全方位的智能家居体验。相关企业正加快将鸿蒙系统应用于各类智能家居设备之中。

值得一提的是,鸿蒙系统还受到了政企等重点领域的高度关注。由于其优秀的安全性能,鸿蒙已经开始在一些关键信息系统和政府IT基础设施中得到应用。这也意味着,在未来的国产信息化建设中,鸿蒙系统将发挥越来越重要的作用。

总的来说,鸿蒙系统正在从最初的手机和平板,逐步拓展到车载、智能家居乃至政企等更广泛的应用领域。这种跨界布局无疑将大大增强鸿蒙系统的市场影响力,为其成长奠定坚实的基础。

产业链格局将重塑:腾讯等头部企业纷纷加入

随着鸿蒙系统在各领域应用的快速推进,其所引发的产业链格局变革也日益凸显。腾讯等头部互联网企业纷纷加入适配鸿蒙的行列,这无疑是对鸿蒙系统崛起的最佳注脚。

首先是腾讯的宣布。作为国内互联网科技巨头,腾讯旗下拥有QQ、微信、WeGame等众多热门应用。此次腾讯宣布,将无条件适配鸿蒙系统,这无疑大大增强了鸿蒙的应用生态。对于普通用户而言,能够在鸿蒙设备上无缝使用熟悉的腾讯应用,将大幅提升其使用体验,从而促进鸿蒙系统的市场推广。

其次是阿里巴巴等其他科技头部企业的跟进。随着鸿蒙系统的不断完善和普及,阿里、字节跳动等国内科技巨头也开始全面适配鸿蒙生态。这些头部企业的加入,必将为鸿蒙系统带来海量的应用资源,助力其应用生态的快速繁荣。

再次是国内芯片企业的深度参与。鸿蒙系统的诞生,在很大程度上缘于华为等企业长期积累的自主芯片技术实力。而随着鸿蒙系统的推广,国内诸如中科创达、寒武纪等芯片公司也纷纷推出搭载鸿蒙的芯片产品。可以预见,在鸿蒙生态的带动下,国产芯片产业必将实现更快的发展。

除了头部企业,鸿蒙系统的崛起也带动了整个产业链的大洗牌。一些传统的手机操作系统供应商,如微软的Windows Phone,谷歌的Android系统,甚至苹果的iOS,都面临着被边缘化的风险。因为鸿蒙系统具有更强的跨平台适应性和硬件底层控制能力,这必将挤占部分原有操作系统的市场空间。

总的来说,鸿蒙系统的快速推广,正在引发产业链上下游的广泛变革。从头部互联网企业,到芯片供应商,再到手机操作系统提供商,各方都在积极应对和拥抱这一新兴系统,以谋求在未来的市场竞争中占据有利地位。这种产业链格局的重塑,无疑将成为鸿蒙系统崛起过程中最引人关注的一大动态。

鸿蒙系统的未来发展:风险与机遇并存

尽管鸿蒙系统的发展势头强劲,但其未来的发展道路也面临着诸多风险和挑战。

首先是与现有主导操作系统的竞争。目前,Android和iOS操作系统仍是全球智能手机市场的主导力量。尽管鸿蒙在技术上有所突破,但要在成熟的应用生态和庞大的用户基础面前取得优势,仍然任重道远。如何在吸引新用户的同时,也能留住原有的Android用户群体,将是鸿蒙系统面临的重要考验。



其次是开发者生态的建设。作为一款全新的操作系统,鸿蒙必须依靠广大开发者的支持和参与,才能形成繁荣的应用生态。但目前鸿蒙的开发工具链和相关扶持政策还有待进一步完善,这可能会限制开发者的积极性。如何进一步优化开发环境,吸引更多开发者加入,将是鸿蒙系统下一步的关键任务。

再次是与国际标准的兼容性。目前,鸿蒙系统在设计之初就强调了对国际标准的兼容性,但仍难免会面临与现有主流系统在技术标准、生态适配等方面的摩擦。如何在保持自主创新的同时,也能与国际主流保持良好互通,将是鸿蒙系统未来发展中需要重点关注的问题。

最后是政策法规的支持。毫无疑问,鸿蒙系统的发展离不开政府的政策支持。目前,在国家大力推动关键核心技术自主创新的背景下,鸿蒙系统受到了政府高度重视。但未来随着政策环境的变化,鸿蒙系统能否持续获得有力支持,也存在一定的不确定性。

尽管面临诸多风险,但鸿蒙系统的未来发展前景仍然广阔。

首先,作为国产自主创新的代表作,鸿蒙系统必将得到政府的大力支持。无论是在政策引导、资金支持还是技术培养等方面,政府都将为鸿蒙系统的发展保驾护航。

其次,在全球产业链格局重塑的大背景下,鸿蒙系统的应用前景广阔。面对日益严峻的科技"脱钩"风险,国内各行业对自主可控的操作系统需求日益强烈,这为鸿蒙系统提供了广阔的市场空间。

再次,随着鸿蒙生态的不断完善,其应用领域也将进一步拓展。从手机平板到车载系统、智能家居,再到政企信息系统,鸿蒙系统都有望成为各行业数字化转型的重要支撑。这种跨界应用必将大幅提升其市场影响力。

最后,鸿蒙系统的开源属性也将是其未来发展的助推器。作为一款开源系统,鸿蒙吸引了大量开发者的关注和参与,这为其应用生态的繁荣奠定了坚实基础。随着开发者社区的不断壮大,鸿蒙系统的发展潜力必将得到进一步释放。

总的来说,尽管鸿蒙系统的发展之路仍然艰辛,但只要我们直面风险,抓住机遇,它必将成为引领未来智能时代的重要力量。鸿蒙系统的崛起,必将重塑整个产业链格局,为中国科技自主创新注入新的动能。


者:子非鱼

转发链接:https://mp.weixin.qq.com/s/uQ8c2Z6GJr4eyH3kidZt3g