已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
响应式网页布局的实现方法原理 交互设计师,要满足各自不通分辨率和设备的页面布局展现方式。而视觉设计师,则要考虑到页面性能和移动端带宽问题,权 衡下页面的酷炫效果和视觉色彩的运用。而前端和后台开发工程师,则要完成满足视觉需求和交互功能,更要考虑到页面加载 性能和消耗带宽问题,更重要的是移动端安全性能方面! 作者:马海洋来源:马海洋博客|2016-12-21 14:35 收藏 分享 推广 | 令人窒息的奖品等你 2016 最权威的全球开发者调研 交互设计师,要满足各自不通分辨率和设备的页面布局展现方式。而视觉设计师,则要考虑到页面性能和移动 端带宽问题,权衡下页面的酷炫效果和视觉色彩的运用。而前端和后台开发工程师,则要完成满足视觉需求和 交互功能,更要考虑到页面加载性能和消耗带宽问题,更重要的是移动端安全性能方面!既然响应式网页设计 牵涉到了这么多的方方面面,那我们又该如何去实现这种页面呢?对此我也特意收集了一些响应式网页的实现 方法原理 首先我们应该遵循移动优先原则,交互和设计应以移动端为主,PC 则作为移动端的一个扩展;一个页面需要兼 容不同终端,那么有两个关键点是我们需要去做到响应式的:响应式布局和响应式内容(图片、多媒体)。 一、响应式布局 如我们需要兼容不同屏幕分辨率、清晰度以及屏幕定向方式竖屏(portrait) 、横屏(landscape) ,怎样才能做到让 一种设计方案满足所有情况?对此,马海祥觉的我们的布局应该是一种弹性的栅格布局,不同尺寸下弹性适应, 如以下页面中各模块在不同尺寸下的位置: 那么我们具体要怎么做呢? 1、 Meta 标签定义 使用 viewport meta 标签在手机浏览器上控制布局 通过快捷方式打开时全屏显示 隐藏状态栏 iPhone 会将看起来像电话号码的数字添加电话连接,应当关闭 2、使用 Media Queries 适配对应样式 常用于布局的 CSS Media Queries 有以下几种: 设备类型(media type): all 所有设备; screen 电脑显示器; print 打印用纸或打印预览视图; handheld 便携设备; tv 电视机类型的设备; speech 语意和音频盒成器; braille 盲人用点字法触觉回馈设备; embossed 盲文打印机; projection 各种投影设备; tty 使用固定密度字母栅格的媒介,比如电传打字机和终端。 设备特性(media feature): width 浏览器宽度; height 浏览器高度; device-width 设备屏幕分辨率的宽度值; device-height 设备屏幕分辨率的高度值; orientation 浏览器窗口的方向纵向还是横向,当窗口的高度值大于等于宽度时该特性值为 portrait,否则为 landscape; aspect-ratio 比例值,浏览器的纵横比; device-aspect-ratio 比例值,屏幕的纵横比。 例子: /* for 240 px width screen */ media only screen and (max-device-width:240px) selector . /* for 320px width screen */ media only screen and (min-device-width:241px) and (max-device-width:320px) selector . /* for 480 px width screen */ media only screen (min-device-width:321px)and (max-device-width:480px) selector . 适用于布局的 Media Queries,这里在马海祥博客上我们就不再做详述,有兴趣的话,可通过官方文档进一步 了解。 3、表格(table)的响应式处理 那么对于表格(table)的响应式处理该是怎样的呢?我们该如何突破 Table 的局限性呢?接下来我们来了解以下 的几种针对表格响应式处理的方法: (1 )、隐藏不重要数据列 处理前: (点击查看大图) 处理后: 实现方法代码: media only screen and (max-width: 800px) table td:nth-child(2), table th:nth-child(2) display: none; media only screen and (max-width: 640px) table td:nth-child(4), table th:nth-child(4), table td:nth-child(7), table th:nth-child(7), table td:nth-child(8), th:nth-child(8)display: none; 以用户角度思考,每个人对数据的认知不同,或许你隐藏的数据对于他却是很重要的,所以对于这种方法马海 祥并不推荐。 (2 )、多列横向变 2 列纵向 处理前: 处理后: 实现方法: 定位隐藏, 变块元素,并绑定对应列名,然后用伪元素的 content:attr(data- th)实现: (3 )、固定首列,剩余列横向滚动 处理前: 处理后: 实现原理代码: thead float:left; tbody display:block;width:auto;overflow-x:auto; 二、响应式内容 1、响应式图片 带宽是手机终端的硬伤,如果我们只是页面布局做了响应式处理,在我们用手机访问时,请求的图片还是 PC 上 的大图;文件体积大,消耗流量多,请求延时长,因此导致的问题也是不可估量的。那么我们就得把图片也处 理成响应式的根据终端类型尺寸分辨率来适配出合理的图形。 处理原理:浏览器获取用户终端的屏幕尺寸、分辨率逻辑处理后输出适应的图片,如屏幕分辨率 320*480,那 么我们匹配给它的是宽度应小于 320px 的图片。如果终端屏幕的 DPI(device pixels)DPI 详解值很高,也就是 高清屏,那么我们就得输出 2 倍分辨率的图形(宽:640px) ;以保证在高清屏下图形的清晰度。各种移动终端的 屏幕参数可通过 http:/screensiz.es/phone 查询。 解决方案:其实 W3C 已经有一个用于响应式图形的草案:新定义标签,因为它还只是草案,目前还 没有支持的浏览器,期待在不久的未来我们能用上。虽然目前不支持,但我们还是来了解下,为之后的内容做 个铺垫。 是一个图形 element,内容由多个源图组成,并由 CSS Media Queries 来适配出合理图形,代码规 范如下: 1. 2. 3. 4. 5. 6. Accessible text 7. 8. 9. 10. 11. 注:source: 一个图片源; media: 媒体查询,用于适配屏幕尺寸; srcset: 图片链接,1x 适应普通屏,2x 适应高清屏; : 当浏览器不支持脚本时的一个替代方案; : 初始图片;另外还有一个无障碍文本,类似的 alt 属性。 虽然目前还不支持,但它的原理我们是可借鉴的,所以就诞生了一个用于图片响应式处理的类库 Picturefill 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 其原理就是 JS 获取 Source 的源以及 CSS Media Queries 规则,输出适应图片,逻辑细节这里不再解析,感兴 趣的可查看其 JS 代码,逻辑不是很复杂,也可以自己封装一个类库,以适用于自身产品,例如图片加载失败的 替代方案。 当然,在未来的 CSS Image Level 4 中已经实现了响应式图片的原生语法:image-set = image-set( , * | ) = | 那么我们的响应式图片可以这样重写了 background-image:url(default.jpg); /* 普通幕 */ background-image: -webkit-image-set(url(medium.jpg) 1x, url(large.jpg) 2x); /* Retina 高清屏 */ 注:Webkit 目前只实现了 url() 形式的取值,且 dppx 值取负值-2x貌似也是合法的。 当然除此之外,还有其他的响应式处理,如服务端 user-agent 嗅探。 2、高分辨率(DPI)下的响应式处理 (1 )、SVG:优点可承载色彩丰富、设计复杂图形,且渲染不会出现边缘不顺滑;缺点是 IE 的支持不完美。 (2 )、Icon fonts:支持多浏览器,图形颜色大小的修改成本低,易于维护;图形表现单一,不支持色彩丰富 且复杂的图形,IE6 渲染有毛边。 (3 )、-webkit-image-set:只支持单个图形的适配,不利于图形合并,兼容不完美(Safari 6+, Chrome 21+)。 JS 检测:var retina = window.devicePixelRatio 1; 1. CSS Media Query: 2. 3. media (-webkit-min-device-pixel-ratio: 2), /* Webkit-based browsers */ 4. (min-moz-device-pixel-ratio: 2), /* Older Firefox browsers (prior to Firefox 16) */ 5. (min-resolution: 2dppx), /* The standard way */ 6. (min-resolution: 192dpi) /* dppx fallback */ 3、高分辨率下的 1px border 由于高清屏的特性,1px 是由 22 个像素点来渲染,那么我们样式上的 border:1px 在 Retina 屏下会渲染成 2px 的边框,与设计稿有出入,为了追求 1px 精准还原,我们就不得不拿出一个完美的解决方案。 在 Photoshop 中,如果需要看似 0.5px 的边框,常见的方法就是对 1px 边框加上阴影模糊 1px。同理,我们 在 retina 屏下需要做到真实的 1px 边框,可利用 box-shadow 属性模拟。 1. media only screen and (-webkit-min-device-pixel-ratio:1.5), 2. only screen and (min-device-pixel-ratio:1.5) 3. button 4. border:none; 5. padding:0 16px; 6. box-shadow: inset 0 0 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钻石琢磨工班组考核竞赛考核试卷含答案
- 工艺美术品设计师岗前理论知识考核试卷含答案
- 玻璃钢模具工安全理论竞赛考核试卷含答案
- 公路养护工岗前安全应急考核试卷含答案
- 美甲师创新思维模拟考核试卷含答案
- 化工过滤工安全实践知识考核试卷含答案
- 数控刨工安全技能测试强化考核试卷含答案
- 瓦楞纸箱成型工安全宣传竞赛考核试卷含答案
- 制粉工健康知识测试考核试卷含答案
- 水文勘测船工变更管理评优考核试卷含答案
- 2026秋季开学教师大会政教(德育)副校长讲话:立德树人守初心笃行实干启新程
- 2026广东佛山市顺德区(家电)知识产权快速维权中心招聘事业编制人员3人笔试题库(培优)附答案详解
- 2026年二级建造师水利水电工程真题及答案(完整版)
- 2025年卫生高级职称面审答辩(儿童保健)副高面审综合能力测试题及答案
- 2026广西南宁市邕宁区中医医院第二次岗位招聘21人笔试参考题库及答案详解
- T∕CHCIA 014-2023 液体香氛安全要求
- 2026浙江衢州市江山市文旅投资集团有限公司招聘劳务派遣人员3人笔试历年典型考点题库附带答案详解
- 企业防灾减灾安全培训课件
- 农村污水基础工程监理质量评估报告
- 2025广东食品药品职业学院教师招聘考试题目及答案
- 2026年中国急性缺血性脑卒中指南
评论
0/150
提交评论