H5移动端高清多屏适配方案共9页文档
- 格式:doc
- 大小:69.50 KB
- 文档页数:10
HTML5移动页⾯⾃适应⼿机屏幕四类⽅法1、使⽤meta标签:viewportH5移动端页⾯⾃适应普遍使⽤的⽅法,理论上讲使⽤这个标签是可以适应所有尺⼨的屏幕的,但是各设备对该标签的解释⽅式及⽀持程度不同造成了不能兼容所有浏览器或系统。
viewport 是⽤户⽹页的可视区域。
翻译为中⽂可以叫做"视区"。
⼿机浏览器是把页⾯放在⼀个虚拟的"窗⼝"(viewport)中,通常这个虚拟的"窗⼝"(viewport)⽐屏幕宽,这样就不⽤把每个⽹页挤到很⼩的窗⼝中(这样会破坏没有针对⼿机浏览器优化的⽹页的布局),⽤户可以通过平移和缩放来看⽹页的不同部分。
viewport标签极其属性:<meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>每个属性的详细介绍:属性名取值描述width正整数或 device-width定义视⼝的宽度,单位为像素height正整数或 device-height定义视⼝的⾼度,单位为像素,⼀般不⽤initial-scale[0.0-10.0]定义初始缩放值minimum-scale[0.0-10.0]定义缩⼩最⼩⽐例,它必须⼩于或等于maximum-scale设置maximum-scale[0.0-10.0]定义放⼤最⼤⽐例,它必须⼤于或等于minimum-scale设置user-scalable yes/no定义是否允许⽤户⼿动缩放页⾯,默认值yes2、使⽤css3单位remrem是CSS3新增的⼀个相对单位(root em,根em),使⽤rem为元素设定字体⼤⼩时,是相对⼤⼩,但相对的只是HTML根元素。
移动应用开发中的多屏适配与分辨率适配方法随着移动互联网的快速发展,人们对移动设备的依赖度越来越高,越来越多的应用程序涌现出来。
然而,市场上存在着众多品牌、型号和尺寸各异的移动设备,这给应用开发带来了巨大的挑战。
在开发移动应用时,要保证应用在不同的屏幕上显示效果良好,就需要进行多屏适配和分辨率适配。
多屏适配是指根据不同的屏幕尺寸和显示比例,调整应用的布局和显示效果,以保证在不同设备上都能正常展示。
一种常见的多屏适配方法是使用百分比布局或者使用可伸缩的布局容器,这样可以根据屏幕尺寸动态调整界面元素的大小和位置。
另外,可以使用媒体查询技术来针对不同的屏幕大小加载不同的样式文件,以适应不同的屏幕尺寸。
而分辨率适配则是指根据设备的分辨率来调整应用的显示效果,使其在高分辨率和低分辨率设备上都能正常展示。
在移动应用开发中,一般使用像素密度(dpi)来进行分辨率适配。
根据设备的dpi,可以为不同密度的屏幕提供不同的资源文件和布局文件。
例如,可以为低密度屏幕提供较小的图标和字体,并为高密度屏幕提供较大的图标和字体。
除了多屏适配和分辨率适配外,还有一些其他的适配方法可以帮助开发人员更好地适应不同的屏幕。
一种常见的方法是使用弹性布局,即使用百分比或者弹性单位代替固定的像素单位,以便应对不同尺寸的屏幕。
这样可以让界面元素在不同大小的屏幕上自动调整大小和位置。
此外,还可以使用多列布局来适应不同的屏幕宽度。
在移动应用中,经常会遇到需要在一个界面中同时显示多个模块或者功能的情况,对于较窄的屏幕,可以采用垂直排列的方式;而对于较宽的屏幕,则可以采用水平排列的方式。
这样可以更好地利用屏幕空间,提升用户体验。
总的来说,在移动应用开发中,多屏适配和分辨率适配是至关重要的。
只有通过合适的适配方法,才能保证应用在各种设备上都能正常显示,并且提供良好的用户体验。
为了实现这一点,开发人员需要充分了解不同屏幕的特点和要求,灵活运用适配方法,不断优化和改进。
详解移动端h5页⾯根据屏幕适配的四种⽅案⽅法⼀:引⼊淘宝开源的可伸缩布局⽅案淘宝的其实也和viewport的有点像,但是它主要是根据设备设备像素⽐设置scale的值,保持视⼝device-width始终等于设备物理像素,屏幕⼤⼩动态计算根字体⼤⼩,具体是将屏幕划分为10等分。
这块也可以直接⽤js实现,后⾯会提到具体引⼊和使⽤⽅法,移步github查看,⾮常详细。
⽅法⼆:viewport 的使⽤github⾥边,有提到 viewport 的使⽤。
我感觉这篇⽂章关于viewport 的介绍特别详细,包括⽐例、是否缩放等的属性介绍特别的详细,虽然⽂章的内容⼀⼤⽚的字看起来很多,但是请耐⼼看完,都是⼲货能很好的让你认识viewport。
如果⽐较着急,请继续往下看总结图吧关于 viewport 的,这块直接引⽤上⾯⽂章的内容,我感觉也是最⼲脆最直接的总结了吧⽅法三:使⽤js+viewport动态设置⼿动适配rem我的编辑器是vscode,添加了插件cssrem⾃动转换index.html<!DOCTYPE html><html><head><meta charset="utf-8"><!-- <meta name="viewport" content="width=device-width,initial-scale=1.0"> --><meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" /><!-- 启⽤360浏览器的极速模式(webkit) --><meta name="renderer" content="webkit"><!-- 避免IE使⽤兼容模式 --><meta http-equiv="X-UA-Compatible" content="IE=edge"><!-- 针对⼿持设备优化,主要是针对⼀些⽼的不识别viewport的浏览器,⽐如⿊莓 --><meta name="HandheldFriendly" content="true"><!-- 微软的⽼式浏览器 --><meta name="MobileOptimized" content="320"><!-- uc强制竖屏 --><meta name="screen-orientation" content="portrait"><!-- QQ强制竖屏 --><meta name="x5-orientation" content="portrait"><!-- UC强制全屏 --><meta name="full-screen" content="yes"><!-- QQ强制全屏 --><meta name="x5-fullscreen" content="true"><!-- UC应⽤模式 --><meta name="browsermode" content="application"><!-- QQ应⽤模式 --><meta name="x5-page-mode" content="app"><!-- windows phone 点击⽆⾼光 --><meta name="msapplication-tap-highlight" content="no"><meta content="telephone=no" name="format-detection" /><meta name="huaban" content="nopin" /><link rel="icon" type="image/x-icon" href="/favicon.ico"><title>新茶饮</title><script src="/config.js"></script><script src="/open/js/jweixin-1.0.0.js"></script></head><body><div id="app"></div><!--在iphone 5 中1rem=16px;html font-size =16px=1rem;--><script>//得到⼿机屏幕的宽度let htmlWidth = document.documentElement.clientWidth || document.body.clientWidth;console.log('htmlWidth',htmlWidth)//得到html的Dom元素let htmlDom = document.getElementsByTagName('html')[0];// if(htmlWidth>640){//超过640⼤⼩的,字体根部都是16px// htmlWidth=640;// console.log('htmlWidth-true',htmlWidth)// }//设置根元素字体⼤⼩htmlDom.style.fontSize = htmlWidth / 40 + 'px';</script></body></html>⽅法四:根据css的媒体查询动态设置根部html字体⼤⼩html {font-size: 625%; /*100 ÷ 16 × 100% = 625%*/}@media screen and (min-width:360px) and (max-width:374px) and (orientation:portrait) {html { font-size: 703%; }}@media screen and (min-width:375px) and (max-width:383px) and (orientation:portrait) {html { font-size: 732.4%; }}@media screen and (min-width:384px) and (max-width:399px) and (orientation:portrait) {html { font-size: 750%; }}@media screen and (min-width:400px) and (max-width:413px) and (orientation:portrait) {html { font-size: 781.25%; }}@media screen and (min-width:414px) and (max-width:431px) and (orientation:portrait){html { font-size: 808.6%; }}@media screen and (min-width:432px) and (max-width:479px) and (orientation:portrait){html { font-size: 843.75%; }}到此这篇关于详解移动端h5页⾯根据屏幕适配的四种⽅案的⽂章就介绍到这了,更多相关h5移动端根据屏幕适配内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章,希望⼤家以后多多⽀持!。
移动端APP的多屏适配与设计优化随着移动互联网的普及,移动端APP的重要性也越来越凸显。
如今,人们越来越依赖于手机APP,而且手机的尺寸和分辨率也越来越多样化。
因此,移动端APP的多屏适配和设计优化,成为了非常重要的问题。
在这篇文章中,我们将探讨移动端APP的多屏适配和设计优化,为App的开发和设计提供一些有用的参考。
一、多屏适配的必要性移动设备的屏幕尺寸和分辨率多种多样,这也增加了开发者在开发时的难度。
不同的手机屏幕尺寸和分辨率,会影响App的外观和功能。
如果我们只开发一个版本,那么在不同的设备上,用户可能无法获得最佳的使用体验。
因此,多屏适配就变得至关重要。
多屏适配有两种类型,一种是响应式设计,另一种是自适应设计。
对于响应式设计来说,它会根据屏幕尺寸和分辨率的变化,重新调整页面的布局。
而自适应设计会根据不同设备的屏幕尺寸和分辨率,为每一种设备创建不同的布局和设计方案。
不管哪种设计方案,在实际使用中都需要考虑以下几点:1. 确定基准设计尺寸:在开始设计时,首先需要确定一个基准设计尺寸。
这会帮助你在不同的设备上创建一致的设计方案。
针对iOS系统,通常采用375px的宽度作为基准。
而对于安卓系统来说,通常采用360dp的宽度作为基准。
在这个基础上,你可以根据具体情况进行适当的调整。
2. 细节调整:对于不同尺寸和分辨率的设备,在移动端也需要考虑细节调整。
比如,按钮尺寸、字体大小、图标大小等,都需要在不同设备上进行调整,以确保用户界面在各种设备上都可以正常运行。
3. 多屏幕测试:在开发完成后,需要将移动端APP放入不同的设备中进行测试,确保其在各种屏幕尺寸和设备上都可以正常运行。
在测试时,需要注意各种情况,如设备旋转、分割屏幕等问题。
二、设计优化的重要性移动端App是用户与产品之间的桥梁,随着行业的竞争加剧,行业竞争的焦点从功能走向了用户体验。
因此,设计优化也变得尤为重要。
1. 简单直观的设计:在移动端设计中,简单直观是非常重要的。
屏幕适配方案在现代移动设备逐渐普及的今天,不同尺寸、不同分辨率的屏幕成为了常态。
为了能够让应用在各种屏幕上都能够呈现出良好的效果,开发者需要采用适配方案来解决屏幕适配的问题。
本文将介绍一些常用的屏幕适配方案,帮助开发者快速选择合适的方案。
常见屏幕适配问题在进行屏幕适配之前,我们需要了解一些常见的屏幕适配问题。
1.屏幕尺寸差异:不同设备的屏幕尺寸不同,如果不进行适配,可能会导致界面显示不全或者出现布局错乱的情况。
2.屏幕分辨率差异:不同设备的屏幕分辨率也不同,如果不进行适配,可能会导致界面元素模糊或者显示过小的问题。
3.屏幕比例差异:不同设备的屏幕比例(宽高比)也不同,如果不进行适配,可能会导致界面拉伸变形的情况。
响应式布局响应式布局是一种常用的屏幕适配方案,它通过使用相对单位(如百分比、em、rem等)来定义界面元素的尺寸和位置,使得页面能够根据屏幕的大小自动调整布局,以适应不同的屏幕。
在实际开发中,可以通过以下方式实现响应式布局:1.使用CSS3的@media查询:通过查询不同的屏幕宽度范围,设置不同的样式,以达到适应不同屏幕的效果。
2.使用弹性盒子布局:弹性盒子布局可以自动调整子元素的尺寸和位置,适应不同的屏幕大小。
3.使用栅格系统:栅格系统可以将页面分割成若干列,根据屏幕的大小调整列的宽度,以实现自适应布局。
响应式布局的优点是简单灵活,可以适应各种屏幕尺寸和比例,但也存在一些缺点。
由于采用了相对单位,可能会导致界面元素在不同屏幕上显示的大小有差异,而且对于较大的屏幕,布局可能会显得过于宽松。
百分比布局百分比布局是一种简单有效的屏幕适配方案,通过使用百分比来定义界面元素的尺寸和位置,使其能够根据屏幕的大小自动调整。
在使用百分比布局时,需要注意以下几点:1.父元素的尺寸需要固定,这样才能让子元素按照百分比计算。
2.父元素和子元素都需要采用百分比单位来设置尺寸和位置。
3.使用百分比布局时需要考虑元素的最小宽度和最大宽度,以避免出现过小或者过大的情况。
详解H5 活动页之移动端REM 布局适配方法
1 viewport 缩放计划
在移动端,可以通过 viewport 缩放页面大小比率达到目的。
容易来说,即全部宽高像素与视觉稿输出相同,然后通过页面宽度与视觉稿的宽度比率,动态设置 viewport。
缩放计划核心代码参考:
这种计划在我们去年的一次 H5 活动页设计中举行了相关实践。
但是假如希翼 PC 上也能显示,因为没有 viewport 的缩放概念,只能以固定值来设定,这个效果就不太抱负。
2 rem 布局适配计划rem 布局适配计划被提到的比较多,在各大互联网企业产品中都有较为广泛的应用。
容易来说其办法为:
下面我们举个例子来解释。
2.1 动态设置 html 标签 font-size 大小
第一个问题是 html 标签的 font-size 动态计算。
这取决于如何商定换算比例,以页面宽度十等份为例,核心代码参考:
另外,对于全屏显示的 H5 活动页,对宽高比例有所要求,此时应该
第1页共3页。
移动应用开发技术中的多屏适配问题在移动互联网时代,随着智能手机的普及和移动应用的兴起,越来越多的人开始习惯使用手机进行各种活动,如购物、社交、娱乐等。
为了满足用户的需求,开发人员不得不投入更多的精力来适配各种屏幕尺寸和分辨率。
本文将探讨移动应用开发技术中的多屏适配问题,并提供一些解决方案。
一、多屏幕适配问题的挑战随着手机市场的竞争日益激烈,各个厂商纷纷推出了各种不同尺寸和分辨率的手机屏幕。
从最常见的4英寸到6英寸以上的大屏手机,开发人员需要花费更多的时间和精力来适配这些屏幕。
此外,还有平板电脑、智能手表等新型设备的兴起,更加增加了多屏适配的复杂性。
二、常见的多屏适配方法1. 弹性布局弹性布局是一种相对于固定布局而言的新思路。
通过设置元素的相对宽度和高度,使得布局可以随着设备屏幕的大小而自动调整。
这样一来,无论是在小屏手机上还是在大屏平板上,应用界面都可以自动适配,实现良好的用户体验。
2. 媒体查询媒体查询是CSS3的一个强大功能,它可以根据设备的特性来应用不同的样式。
开发人员可以根据屏幕宽度、像素密度等条件来设置不同的样式表,从而实现多屏适配。
通过媒体查询,可以轻松地适配各种不同尺寸的屏幕。
3. 像素独立性在开发过程中,开发人员应尽量使用相对单位(如%,em等),而不是绝对单位(如像素)来定义元素的宽度和高度。
这样一来,无论屏幕的尺寸和分辨率如何变化,元素的大小都可以自动适应。
三、多屏适配的优化技巧1. 图片适配在移动应用中,图片是不可或缺的组成部分。
为了保证图片在不同屏幕上的显示效果,开发人员应提前准备好多个尺寸和分辨率的图片,并使用媒体查询来选择合适的图片。
此外,还可以使用图片压缩等技术来减小图片大小,提高应用的加载速度。
2. 数据异步加载为了提高应用的响应速度和用户体验,开发人员可以采用数据异步加载的方式。
将数据的加载过程放在后台进行,并在加载完成后动态地更新应用的界面。
这样一来,无论是在快速的网络环境还是在较慢的网络环境下,用户都可以获得流畅的应用体验。
移动应用开发技术多屏幕适配方法解析近年来,随着智能手机的普及和移动应用市场的蓬勃发展,移动应用开发技术也得到了极大的关注。
然而,不同尺寸的屏幕和不同的设备分辨率给开发者带来了很大的挑战。
如何实现多屏幕适配成为了一个重要的问题。
本文将分析一些移动应用开发技术中常用的多屏幕适配方法。
一、基本概念在讨论多屏幕适配方法之前,我们先来了解一些基本概念。
屏幕适配是指在不同尺寸和分辨率的设备上实现应用程序的不同显示效果,以保证用户在不同设备上的使用体验一致。
常见的屏幕适配方法主要包括密度无关像素(dp)、百分比布局(百分比布局)、屏幕像素适配(pt)、基于控件适配等。
二、密度无关像素(dp)密度无关像素(dp)是Android平台上常用的一种屏幕适配方法。
它是一种基于设备密度的单位,可以保证在不同的屏幕上显示的大小一致。
开发者可以使用dp来定义布局中的控件或者图片的大小,系统会自动根据设备的密度进行适配。
三、百分比布局百分比布局是一种相对定位的布局方式,它能够根据屏幕的大小和分辨率自适应地调整控件的位置和大小。
开发者可以使用百分比布局来实现多屏幕适配,不需要针对每一种设备单独编写布局文件。
相对于dp来说,百分比布局更加灵活,可以适应不同尺寸的屏幕。
四、屏幕像素适配(pt)屏幕像素适配(pt)是iOS开发中常用的一种多屏幕适配方法。
在iOS开发中,尺寸单位主要包括点(pt)和像素(px)。
点是一个逻辑单位,像素是一个物理单位。
iOS会根据设备的分辨率自动将pt转换为相应的像素值。
开发者可以使用pt作为单位来定义视图的尺寸和位置,以实现不同设备的屏幕适配。
五、基于控件适配基于控件适配是一种根据控件的自身属性和关系来实现屏幕适配的方法。
开发者可以通过设置控件的尺寸、间距和对齐方式等属性,以及使用相对布局或约束布局等技术手段来实现多屏幕适配。
这种方法在不同尺寸和分辨率的设备上可以保持一致的显示效果。
六、综合应用在实际移动应用开发中,常常需要综合运用多种适配方法。
iH5中级教程:多机型自适应篇,适应多种播放设备平常我们再做一些h5的微信小游戏的时候,会遇到一件非常烦恼的事情。
那就是我们不同的手机打开的时候,有些手机打开下方会有白条,有些手机会显示不完全。
那么这种情况我们应该怎么办呢?今天给大家介绍一种完美适配的方法,那就是利用iH5做H5作品后做自适应。
第一步:打开编辑器第二步:新建长款手机移动设备1.选中舞台,点击工具栏下的手机移动设备工具,新建移动设备。
2.右键重命名移动设备为长款手机,为了测试的时候方便辨认,设置了一个背景色。
3.长款手机一般是屏幕比较长的手机,安卓的一般是1008px的高度,也是苹果5s的高度,如果想要适配更长的手机,一般苹果6的高度是1030px,苹果6P的高度是1040px。
4.我们在上面添加一个文本“长款手机”,标注一下这个移动设备。
第三步:新建短款手机设备1.方法同步骤二,新建一个移动设备,重命名为短款手机,并为其设置背景颜色和添加一个文本“短款手机”。
2.高度设置为832px。
第四步:新建pad横屏设备1.方法同步骤2,新建移动设备,重命名为pad横屏,并为其设置背景颜色和添加一个文本“pad横屏”。
2.高度设置为(420)。
Ipad mini 横置时,通过浏览器直接查看案例时的高度。
第五步:新建PC设备1.选中舞台,点击工具栏下的PC设备工具,选择PC设备工具,新建PC设备。
2.设置设备1的高度为600px * 400px,这是普遍的pc端网页的大小。
3.为了方便辨认,设置背景颜色和添加中文字体“PC”。
第六步:测试设备。
1.拿不同的设备打开它我们就可以看到不同的效果啦!是不是很简单呢!重点工具:移动设备、设备知识点:设备:可自定义宽高,适应不同电脑屏幕。
移动设备:手机案例,宽为640,添加移动设备可自定义高,适应不同手机屏幕。
目前基本分为安卓系统和苹果系统,苹果系统高主要为832px,1008px,1030px,1040px,这些分别是4s、5s、6、6P的高度,安卓普遍高度在1008-1010之间。
移动端适配解决方案1. 媒体查询(Media Queries)媒体查询是一种CSS3的新特性,可以根据不同的媒体类型和媒体特性来加载不同的CSS样式。
通过使用媒体查询,我们可以根据屏幕的宽度和高度来设置不同的样式,从而实现移动端适配。
通过媒体查询的方式,我们可以适配不同的屏幕尺寸,并针对不同的屏幕尺寸设置不同的样式。
2. 弹性布局(Flexible Layout)弹性布局是使用相对单位(如百分比)代替固定单位(如像素)来设置元素的宽度和高度。
通过使用弹性布局,可以确保页面的元素在不同的屏幕尺寸上能够自动调整布局,以适应不同的屏幕尺寸。
3. 响应式设计(Responsive Design)响应式设计是一种常见的移动端适配解决方案,它根据屏幕的宽度自动调整页面的布局。
通过使用响应式设计,可以根据屏幕的宽度来加载不同的CSS样式和布局,以实现在不同的设备上都能够良好地展示和使用。
4. ViewportViewport 是浏览器提供的用于显示网页的窗口,移动设备的Viewport一般比较小,而在PC端浏览器中,Viewport一般比较大。
为了保证在移动设备上显示的效果良好,需要对Viewport进行设置。
通过设置Viewport的宽度和缩放比例,可以控制网页在移动设备上的显示效果。
5. CSS像素(CSS Pixel)CSS像素是一种相对单位,它是相对于屏幕的物理像素而言的。
在移动设备中,一个CSS像素可以对应多个物理像素。
通过使用CSS像素,可以实现页面元素的自适应,以适应不同的屏幕尺寸。
6.CSS媒体类型CSS媒体类型可以根据不同的媒体类型加载不同的CSS样式。
在移动设备上,可以使用CSS媒体类型来加载移动端特有的CSS样式,以适应不同的设备。
综上所述,移动端适配是一个复杂的过程,需要综合考虑不同的适配解决方案。
通过使用媒体查询、弹性布局、响应式设计、Viewport、CSS 像素和CSS媒体类型等方法,可以实现在不同的移动设备上良好的展示和使用效果。
浅谈h5移动端页⾯的适配问题⼀、前⾔昨天唠叨了哈没⽤的,今天说点有⽤的把。
先说⼀下响应式布局吧,我⼀直认为响应式布局的分项⽬,⼀下布局简单得项⽬做响应式还是可以可以得。
例如博客、后台管理系统等。
但是有些会认为响应式很⽜逼,尤其是在不懂前端的⼈眼中,⼀味的追求响应式布局,我觉得复杂的布局项⽬做响应式还不如做⼆套样式,因为响应式的样式混在⼀起真的维护起来是恨费劲的。
可能我说的不对,但是发表⼀点点⾃⼰的看法。
说道这⾥就想说⼀下移动端的布局,有很多⼈就是想把⼿机端得程序兼容ipad,我就觉得这个很不可思议为什么要这么做得,命名⼿机端的和ipad的设计模式以及操作样式都不⼀样。
为什么还要把它们弄做⼀起的,维护起来的⽐较⿇烦。
还不如做成两套样式或者ipad直接让pc来兼容。
pc的设计⽅式和ipad还是⽐较接近的。
如果⾮要⽤移动的样式稍加改成ipad,个⼈感觉这种⽅案极不好。
不知道⼤家的看法如何?接下来我就说⼀下布局⽅式吧,⽬前⽐较流⾏的布局⽅案就是百分表啦。
貌似百分之九⼗以上得触屏版都是这么做得,这种做法可以说是不会出现什么⼤问题,但是也会有⼏个⼩的问题,例如屏幕⼤的⼿机和⽐屏幕⼩差距之⼤,尤其是在⽐价⽄⽄计较的设计⾯前你是⽆法说清楚的,她会⼀直问,为什么这两个⼿机的布局差距这么⼤呢?其实我想说,我他妈怎么跟你解释呢。
此处省略1000个字。
在就是布局起来也⽐较⿇烦,真⼼⿇烦。
当然肯定有更好得⽅案拉,于似乎我就想出了⼀个⽐较好的解决⽅案,顶宽布局。
⼆、320定宽布局当时我也想了很多⽅法,但是⼀直没有好的解决⽅案,曾经看了,当时看完哇塞,这不是正式我想要的嘛。
可是尝试了多次发现这个⽅法的兼容性有很⼤的问题。
最后还是放弃拉。
于是乎我就开始琢磨,怎么才能更好得兼容所有的机⼦呢。
就想到了缩放,viewport不就⼲这个的嘛。
⼆话不说就尝试⼀下viewport⾥⾯得⼀个属性initial-scale,思想很简单,在页⾯渲染的时候我计算⼀下⼿机的宽度,然后我在跟我顶宽布局的宽度⼀做⽐较。
【原】移动端界⾯的适配摘要:在进⾏移动端界⾯的书写的时候,如果把宽度⾼度或者字体⼤⼩全部写死的话,那么在所有⼿机上看到的⼤⼩都⼀样,存在的问题就是同样⼤⼩的字体,或者⼀个盒⼦模型,在⼤屏幕⼿机上看起来会有点偏⼩。
⽐如iphone6PLUS。
如果是做成适配的话,就很好的解决了这个问题,⼤屏幕显⽰的内容⼤⼀点,⼩屏幕显⽰的⼩⼀点。
所以今天做⼀个移动端页⾯适配的⼩⼩总结适配的要求1、在不同分辨率的⼿机上,页⾯看起来是⾃适应的。
整体效果看起来⽐较和谐。
不会说⼤屏幕上看起来特别⼩。
⼩屏幕上看起来特别⼤2、主要是关注字体,宽⾼,间距,图⽚⼤⼩等。
3、所提供的设计图⼀般是⼿机分辨率的两倍,才能⽅便做适配。
4、使⽤rem做单位,⽽不是传统的px适配的⽅法,3个步骤步骤1:设置viewport,也就是平时写移动端页⾯都要加上的:<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">步骤2、⾸先我们在我们的页⾯引⼊下⾯的flexible.js,这段适配的js代码是拿淘宝的来⽤的。
步骤3、页⾯上我们的css代码可以这样写,⽐如设计图给我们的尺⼨是750*1000的。
某个容器在设计图的宽度是150px*225px,那我们在css⾥⾯宽度:150px/750px/10=150px/75px=2rem;⾼度为:225px/75px=3rem;⼀句话:布局的时候,各元素的css尺⼨=设计稿标注尺⼨/设计稿横向分辨率/10;div{width: 2rem;height: 3rem;}通过上⾯的3个步骤,我们就可以将我们的移动端页⾯做成适配的了。
css换算⽅法不过有⼀点,⼀直算来算去挺烦的。
所以在写css的时候,最好使⽤css预处理器,⽐如sass、less来写,这样就⽅便很多了。
移动端适配的方案第1篇移动端适配的方案一、方案概述为满足多类型移动设备用户的信息获取需求,提高用户体验,特制定本移动端适配方案。
本方案将遵循合法合规原则,充分考虑我国移动设备市场特点,从技术、内容和交互等方面进行优化调整,确保移动端应用的广泛适用性和便捷性。
二、技术实现1. 响应式布局:采用响应式设计,根据不同设备的屏幕尺寸和分辨率自动调整页面布局,使页面在各类设备上具有良好的显示效果。
2. 设备识别:通过用户设备信息识别技术,自动识别用户设备类型、操作系统版本、浏览器类型等,为用户提供最适合的页面版本。
3. 代码优化:采用模块化、组件化开发,降低代码耦合度,提高页面加载速度和运行效率。
4. 调试与测试:针对主流移动设备进行严格的调试与测试,确保页面在各类设备上的兼容性和稳定性。
三、内容优化1. 精简内容:对页面内容进行精简,突出核心信息,降低用户在移动端的阅读负担。
2. 优化排版:调整文字、图片、视频等元素的排版,使其在移动端设备上具有良好的视觉效果。
3. 个性化推荐:根据用户行为和兴趣,为用户提供个性化内容推荐,提高用户在移动端的活跃度和粘性。
四、交互优化1. 触控操作:针对移动端设备特点,优化页面触控操作,提高用户操作便捷性。
2. 动画效果:合理运用动画效果,提升页面交互体验,降低用户等待焦虑。
3. 加载提示:在页面加载过程中,提供明确的加载提示,避免用户误操作。
4. 反馈机制:建立完善的用户反馈机制,及时收集用户意见和建议,持续优化移动端适配方案。
五、合法合规性保障1. 遵守法律法规:严格遵守我国相关法律法规,确保移动端应用内容的合法合规。
2. 数据安全:加强用户数据保护,采用加密技术,确保用户信息安全。
3. 版本更新:根据市场需求和用户反馈,及时更新移动端应用版本,确保应用兼容性和稳定性。
六、总结与展望本移动端适配方案从技术、内容、交互等多方面进行优化,旨在为用户提供高效、便捷、舒适的移动端应用体验。
⾼清屏及适配不同设备的⽅案总结本⽂过于陈旧,不建议阅读!请查阅⽹上其他更新的内容!!关于⼀些Retina,设备像素,移动适配的知识,⽹上⼀搜也是⼀⼤把,但是基本的东西并没有变化太多。
下⾯就我看过的⼀些有关于这⽅⾯的知识做⼀些总结(仅以个⼈的⾓度出发,所以有不全的地⽅还请⼤家谅解)。
后⾯会有不定期的更新~每个知识点我都会在开关写出引⽤地址,所以⼤家有不懂的可以看原⽂章~⼀、关于设备像素⽐(devicePixelRatio)出处:所谓设备像素⽐(devicePixelRatio[dpr])指的就是物理像素(physical pixel)和独⽴像素(device-independent pixels [dips])的⽐例。
基本公式就是:设备像素⽐ = 物理像素 / 设备独⽴像素//在某个⽅向上,x或者y物理像素:就是我们经常所说的分辨率,如iphone 6 的分辨率就是750x1334独⽴像素:就是⼿机的实际视窗,如iphone 6的视窗就是375x667所以iphone 6的设备像素⽐ = 750/375 = 2当devicePixelRatio值等于1时(也就是最⼩值),那么它普通显⽰屏当devicePixelRatio值⼤于1(通常是1.5、2.0),那么它就是⾼清显⽰屏。
⼆:适配⽅案出处:1.Media Queries媒体查询(只能⽤于背景图⽚)通过-webkit-device-pixel-ratio,-webkit-min-device-pixel-ratio和-webkit-max-device-pixel-ratio进⾏媒体查询,对不同dpr的设备,做⼀些样式适配1.css{/* 普通显⽰屏(设备像素⽐例⼩于等于1.3)使⽤1倍的图 */2 background-image: url(img_1x.png);3 }4@media only screen and (-webkit-min-device-pixel-ratio:1.5){5.css{/* ⾼清显⽰屏(设备像素⽐例⼤于等于1.5)使⽤2倍图 */6 background-image: url(img_2x.png);7 }8}2.JavaScript的解决⽅案使⽤js对“window.devicePixelRatio”进⾏判断,然后根据对应的值给Retina屏幕选择图像。
背景1.开发移动端H5页面2.面对不同分辨率的手机3.面对不同屏幕尺寸的手机视觉稿在前端开发之前,视觉MM会给我们一个psd文件,称之为视觉稿。
对于移动端开发而言,为了做到页面高清的效果,视觉稿的规范往往会遵循以下两点:1.首先,选取一款手机的屏幕宽高作为基准(以前是iphone4的320×480,现在更多的是iphone6的375×667)。
2.对于retina屏幕(如: dpr=2),为了达到高清效果,视觉稿的画布大小会是基准的2倍,也就是说像素点个数是原来的4倍(对iphone6而言:原先的375×667,就会变成750×1334)。
问题:1.对于dpr=2的手机,为什么画布大小×2,就可以解决高清问题?2.对于2倍大小的视觉稿,在具体的css编码中如何还原每一个区块的真实宽高(也就是布局问题)?带着问题,往下看...一些概念在进行具体的分析之前,首先得知道下面这些关键性基本概念(术语)。
物理像素(physical pixel)一个物理像素是显示器(手机屏幕)上最小的物理显示单元,在操作系统的调度下,每一个设备像素都有自己的颜色值和亮度值。
设备独立像素(density-independent pixel)设备独立像素(也叫密度无关像素),可以认为是计算机坐标系统中得一个点,这个点代表一个可以由程序使用的虚拟像素(比如: css像素),然后由相关系统转换为物理像素。
所以说,物理像素和设备独立像素之间存在着一定的对应关系,这就是接下来要说的设备像素比。
设备像素比(device pixel ratio )设备像素比(简称dpr)定义了物理像素和设备独立像素的对应关系,它的值可以按如下的公式的得到:设备像素比 = 物理像素 / 设备独立像素// 在某一方向上,x方向或者y方向在javascript中,可以通过window.devicePixelRatio获取到当前设备的dpr。
在css中,可以通过-webkit-device-pixel-ratio,-webkit-min-device-pixel-ratio 和-webkit-max-device-pixel-ratio进行媒体查询,对不同dpr的设备,做一些样式适配(这里只针对webkit内核的浏览器和webview)。
综合上面几个概念,一起举例说明下:以iphone6为例:1.设备宽高为375×667,可以理解为设备独立像素(或css像素)。
2.dpr为2,根据上面的计算公式,其物理像素就应该×2,为750×1334。
用一张图来表现,就是这样(原谅我的盗图):上图中可以看出,对于这样的css样式:width: 2px;height: 2px;在不同的屏幕上(普通屏幕vs retina屏幕),css像素所呈现的大小(物理尺寸)是一致的,不同的是1个css像素所对应的物理像素个数是不一致的。
在普通屏幕下,1个css像素对应1个物理像素(1:1)。
在retina 屏幕下,1个css像素对应4个物理像素(1:4)。
位图像素一个位图像素是栅格图像(如:png, jpg, gif等)最小的数据单元。
每一个位图像素都包含着一些自身的显示信息(如:显示位置,颜色值,透明度等)。
谈到这里,就得说一下,retina下图片的展示情况?理论上,1个位图像素对应于1个物理像素,图片才能得到完美清晰的展示。
在普通屏幕下是没有问题的,但是在retina屏幕下就会出现位图像素点不够,从而导致图片模糊的情况。
用一张图来表示:如上图:对于dpr=2的retina屏幕而言,1个位图像素对应于4个物理像素,由于单个位图像素不可以再进一步分割,所以只能就近取色,从而导致图片模糊(注意上述的几个颜色值)。
所以,对于图片高清问题,比较好的方案就是两倍图片(2x)。
如:200×300(css pixel)img标签,就需要提供400×600的图片。
如此一来,位图像素点个数就是原来的4倍,在retina屏幕下,位图像素点个数就可以跟物理像素点个数形成1 : 1的比例,图片自然就清晰了(这也解释了之前留下的一个问题,为啥视觉稿的画布大小要×2?)。
这里就还有另一个问题,如果普通屏幕下,也用了两倍图片,会怎样呢?很明显,在普通屏幕下,200×300(css pixel)img标签,所对应的物理像素个数就是200×300个,而两倍图片的位图像素个数则是200×300*4,所以就出现一个物理像素点对应4个位图像素点,所以它的取色也只能通过一定的算法(显示结果就是一张只有原图像素总数四分之一,我们称这个过程叫做downsampling),肉眼看上去虽然图片不会模糊,但是会觉得图片缺少一些锐利度,或者是有点色差(但还是可以接受的)。
用一张图片来表示:针对上面的两个问题,我做了一个demo(内网访问)狂戳这里。
demo中,100×100的图片,分别放在100×100,50×50,25×25的img容器中,在retina屏幕下的显示效果。
条形图,通过放大镜其实可以看出边界像素点取值的不同:•图1,就近取色,色值介于红白之间,偏淡,图片看上去会模糊(可以理解为图片拉伸)。
•图2,没有就近取色,色值要么是红,要么是白,图片看上去很清晰。
•图3,就近取色,色值介于红白之间,偏重,图片看上去有色差,缺少锐利度(可以理解为图片挤压)。
爱字图,可以通过看文字"爱"来区分图片模糊还是清晰。
(ps:如果看上去不明显,可以用手机扫码网页(内网地址)或者点击原图看会更直观点。
几个问题这里说一下,移动端H5开发,在不同分辨率,不同屏幕手机下会遇到的几个经典问题。
retina下,图片高清问题这个问题上面已经介绍过解决方案了:两倍图片(2x),然后图片容器缩小50%。
如:图片大小,400×600;1.img标签width: 200px;height: 300px;2.背景图片width: 200px;height: 300px;background-image: url(image@2x.jpg);background-siz e: 200px 300px; // 或者: background-size: contain;这样的缺点,很明显,普通屏幕下:1.同样下载了2x的图片,造成资源浪费。
2.图片由于downsampling,会失去了一些锐利度(或是色差)。
所以最好的解决办法是:不同的dpr下,加载不同的尺寸的图片。
不管是通过css媒体查询,还是通过javascript条件判断都是可以的。
那么问题来了,这样的话,不就是要准备两套图片了嘛?(1x 和2x)我想,做的好的公司,都会有这么一个图片服务器,通过url获取参数,然后可以控制图片质量,也可以将图片裁剪成不同的尺寸。
所以我们只需上传大图(2x),其余小图都交给图片服务器处理,我们只要负责拼接url即可。
如,这样一张原图:https://img.alicdn/tps/TB1AGMmIpXXXXafXpXXXXXXXXXX.jpg // 原图可以类似这样,进行图片裁剪:// 200×200https://img.alicdn/tps/TB1AGMmIpXXXXafXpXXXXXXXXXX.jpg_200x200.jpg // 100×100https://img.alicdn/tps/TB1AGMmIpXXXXafXpXXXXXXXXXX.jpg_100x100.jpg (ps: 当然裁剪只是对原图的等比裁剪,得保证图片的清晰嘛~)retina下,border: 1px问题这大概是设计师最敏感,最关心的问题了。
首先得说一下,为什么存在retina下,border: 1px这一说?我们正常的写css,像这样border: 1px;,在retina屏幕下,会有什么问题吗?先来,来看看下面的图:上面两张图分别是在iphone3gs(dpr=1)和iphone5(dpr=2)下面的测试效果,对比来看,对于1px的border的展示,它们是一致的,并无区别。
那么retina显示屏的优势在哪里,设计师为何觉得高清屏下(右图)这个线条粗呢?明明和左右一样的~还是通过一张图来解释(原谅我再次盗图):上图中,对于一条1px宽的直线,它们在屏幕上的物理尺寸(灰色区域)的确是相同的,不同的其实是屏幕上最小的物理显示单元,即物理像素,所以对于一条直线,iphone5它能显示的最小宽度其实是图中的红线圈出来的灰色区域,用css来表示,理论上说是0.5px。
所以,设计师想要的retina下border: 1px;,其实就是1物理像素宽,对于css而言,可以认为是border: 0.5px;,这是retina下(dpr=2)下能显示的最小单位。
然而,无奈并不是所有手机浏览器都能识别border: 0.5px;,ios7以下,android等其他系统里,0.5px会被当成为0px处理,那么如何实现这0.5px呢?最简单的一个做法就是这样(元素scale):.scale{position: relative;}.scale:after{content:"";position: absolute;bottom:0px;left:0px;right:0px;border-bottom:1px solid #ddd;-webkit-transform:scaleY(.5);-webkit-transform-origin:0 0;}我们照常写border-bottom: 1px solid #ddd;,然后通过transform: scaleY(.5)缩小0.5倍来达到0.5px的效果,但是这样hack实在是不够通用(如:圆角等),写起来也麻烦。
当然还有其他好多hack方法,网上都可以搜索到,但是各有利弊,这里比较推荐的还是页面scale的方案,是比较通用的,几乎满足所有场景。
对于iphone5(dpr=2),添加如下的meta标签,设置viewport(scale 0.5):<meta name="viewport" content="width=640,initial-scale=0.5,maximum-scale=0.5, minimum-scale=0.5,user-scalable=no">这样,页面中的所有的border: 1px都将缩小0.5,从而达到border: 0.5px;的效果。