手机适配:设计狮制做效果图,程序猿把效果图应用到不一样的手机,对不一样的屏幕进行界面调整的过程,确保界面不变形,呈现效果图的位置、尺寸、比例。css
对于Web开发者而言:咱们使用的每个CSS和JavaScript定义的像素本质上表明的都是CSS像素,咱们在开发过程当中并不在乎一个CSS像素到底跨越了多少个设备像素。咱们将这个依赖于屏幕特性和用户缩放程度的复杂计算交给了浏览器。html
若是以iphone5s 为基准设计稿,适配iphone6 或者是iphone 6 plus的方法和技巧。ios
当旧的iPhone 5程序运行在iPhone 6上面,假如没有通过适配。旧程序自动等比放大,铺满新手机,旧程序也能够正常运行。这种方案可算是自动适配。但由于旧程序拉伸了,总体看起来有点虚,也不能更好利用大屏空间。程序员
一套设计稿适配的前提:设计稿必须为矢量的。图片除外。好比图标,线、点、颜色块等元素都是矢量或者形状。web
分为两步走:浏览器
若是是一些常规界面:好比以文字、列表为主的界面,大部分是指布局相对简单的界面。不用设计师怎么切图的界面,这些基本可让ios程序员完成适配便可。显示效果也不会太差。app
若是是一些定制界面:此时设计师应该手动为大屏幕从新调整设计。另外设计一些大图或者是大的图标,以知足适配iphone6.或者iphone plusiphone
前提是大家的ios程序员须要了解苹果公司的一个工具:Auto Layoutide
Auto Layout (Auto Layout Guide: Introduction),能够理解成 iOS 上的 CSS,若是设计师用 Auto Layout 提供的排版语言描述出 UI 布局,那不一样尺寸的 iPhone 只要同一份设计稿就能够了。工具
总之:适配iPhone 6/6Plus UI界面设计的要点:
一、针对iphone6 能够用高度不变,横向拉伸。或者等比拉伸
二、全矢量做图。
三、定制界面或图片位图必须额外制做大图。
四、工具栏、状态栏、导航栏的高度规范和设计字体大小等均以2:3的比例放大便可。
五、iphone的5/5S/6/6P的屏幕比例为9:16,因此比例这个问题如今不是很大,但因 Plus增长横版显示,因此建议对于一些用户量较高的软件进行重绘。
以下图所示:
一、之后的应用程序,都使用AutoLayout, 不要再用绝对定位。
二、使用相似网页的方式来设计界面。
三、设计师好,程序员也好,尽可能使用点这个单位进行思考,而不要使用像素。好比,你须要作44 x 66个点的按钮,2x模式,就乘以2, 3x模式就乘以3。这样的思考方式能够大体估计到真实的物理长度。44个点,就是手机上导航栏,工具栏的高度。假如用像素思考,容易使得作出的图片过大或者太小。
四、非矢量素材,就能够作尺寸最大的,以后再进行缩小。好比你须要兼容3x的屏幕,就直接作最高那种图片。
五、而当使用Flash之类的矢量工具来作素材的时候,应该直接作点那个尺寸。好比44 x 66个点的按钮。就创建一个44 x 66的场景。以后再导出成2倍图,3倍图,由于矢量放大不失真。不要创建一个3x的场景,导出成大图片,再进行缩小,这样就容易失真。更理想的是直接使用矢量图。
六、假如是那种导航栏,工具栏之类的背景图,须要横跨整个屏幕。能够只切一小块,让程序拉伸,拉伸方式是保持两边的像素不动,只拉伸最中间的一列像素。须要拉伸的话,横方向就不要出现一些渐变色。
七、按钮的点击区域,不该该少于44像素,就算按钮的图片看起来比较小,也应该使得点按钮周围的透明区也有反应。
八、能够按照你当前最方便测试机子的型号来作一些主要预览图,效果图。好比你手头有iPhone 5,能够按照iPhone 5的尺寸,320 x 568个点,须要兼容iPhone 6 Plus,就使用3x的模式。这样方便将图片放进手机里面看实际的效果。有多个测试机,就选较大的,以后再进行一些细调。假如支持iPhone 6 Plus的横屏模式,须要另外处理。
九、上面说的是应用的处理方式,游戏会有些特殊。如今不少游戏,按照1136 x 768的像素尺寸来设计场景,这样能够同时兼容iPad和iPhone,并只使用一份图。iPad 1x模式下尺寸是1024 x 768像素,iPhone 6在2x模式下,是1136 * 640。这种尺寸,能够简单将场景居中显示,各自将场景拉伸到最大。
目前咱们pc项目的设计稿尺寸是宽度1920,高度最小是1080。
1.在不一样分辨率的电脑上,网页能够正常显示
2.放大或者缩小屏幕,网页能够正常显示
首先设置html,body{width:100%;overflow-x:hidden;} 而后咱们能够把页面分解为背景层和内容层,对于背景层,咱们通常都要求彻底铺开,对于内容层咱们保证咱们的内容都封装在盒子内,而后margin:0 auto;保持居中显示,盒子里面的内容,咱们再另外调整 (内容区定宽,在达到某个断点以后更改内容区的宽度,并把某个内容显示/隐藏)
通常状况下,页面都比较高,咱们经过给每一个模块设置具体的高度值来作页面,而后页面会出现导航条,咱们能够拉动导航条来浏览,可是有的页面的需求是主体内容直接在不一样的浏览器上都能完整显示,不经过导航条来浏览
百分比的应用在于主视角的定位和缩放,百分比的取值以原设计稿的尺寸为标准。什么意思呢?举个栗子,一个元素在原设计稿里,量出来距离顶部是 200px,若是写死多是top:200px 或者margin-top:200px,如今要转成百分比,那么这个值可能就是23.3%。这个值怎么算?若是设计稿是 1080,200/1080=18.51%这样计算出来百分比的值。
可是,有个地方要注意,流体布局下,百分比的值是根据父层计算的;absolute布局的元素是根据最近的relative父层计算的;fixed布局的元素是根据window的可视区域计算的。
因此,若是要达到适配的效果,不仅是当前元素须要用百分比值,其参考计算的元素也是要动态变化的。
另外还有一个就是图片缩放的问题,pc不少主视角都是切图的,可是pc不能直接用background-size。在pc咱们能够直接经过img标签来插入图片,经过设置 img宽度为100%,高度auto,而后让它根据父层来等比缩放来实现。
须要js主要有两个缘由:
上面说了,百分比是要有父层作参照物的,那么若是父层都用百分比,那就是最终是根据window来参照的,由于pc绝大部分都是宽屏设备,并且他们的比例是不一致的,咱们来计算下(190是减去浏览器工具条、window桌面条、咱们页面通用顶条):
设计稿:1920/(1080-190) = 2.16
14寸普通笔记本:1366/(768-190) = 2.36
因此,咱们不能宽高都100%按照屏幕尺寸来计算。另外考虑到主要是高度对pc页面的主视角影响比较大,咱们须要借助js来计算肯定一个最小高度临界值(固然这个能够用css的min-height来实现);
另一个是,经过js判断最小高度临界值,再加上这个最小临界值的class,为了处理那些特殊的布局或者百分比没法彻底解决适配的元素,好比字体的相关布局