响应式开发总结

前端响应式开发剖析 响应式设计是当今网页开发中至关重要的理念和技术手段,其核心目标是确保同一个网站能够在多种多样的设备上,无论是传统的PC端,还是日益普及的移动端(涵盖平板设备、手机的横屏以及竖屏等不同状态),都展现出高度的兼容性和良好的视觉效果。这意味着用户无论使用何种设备访问网站,都能获得流畅、舒适且一致的浏览体验,无需为不同设备的适配问题而困扰。例如,一个电商网站采用响应式设计后,用户在PC端可以清晰地看到丰富的商品分类、详细的产品介绍和高清的图片展示,方便进行细致的筛选和比较; 阅读详情

相关文档

W3C:http://www.w3.org/

Safari:https://developer.apple.com/library/safari/navigation/index.html

Chrome:http://docs.webplatform.org/wiki/Main_Page/zh-hans

IE:http://msdn.microsoft.com/zh-cn/ie/

Mozilla:https://developer.mozilla.org/zh-CN/

文档里面的内容很多很杂,一般用法是想知道啥直接进去搜索。

响应式

Ethan Marcotte在2010年5月份提出的一个概念,旨在让一个网站同时兼容多种设备,而不是为不同设备定制不同的版本。如果把我们的网站看做一个程序的话,响应式设计要求网站能提供更多用户端可选的参数,让用户拥有更多的控制权。

字体大小响应

这里的字体大小指的是用户自己设置或者设备的默认字体大小。同样是12px大小的字符在不同设备上对用户的观感是不一样的,但是设备总会提供一个观感还不错的默认字体大小(或者用户自己指定的)。所以为了让我们的网站的文字在不同设备上也能有不错的观感,网站应该使用em代替px。em定义的是一个相对大小,设计者通过它可以定义哪些地方的字应该大一些,哪些地方的字应该小一些,但是不规定哪些地方的字必须多大。

屏幕尺寸响应

屏幕尺寸是我们主要需要响应的地方,屏幕的尺寸大小,宽高比等因素都会影响我们的布局,内容的的大小等。比较常用用来解决尺寸的布局方式有固定布局,流动布局,栅格布局,这些布局方式常常混合使用。

  1. 固定布局:页面居中,两边留白,他能适应大于某个值一定范围的宽度,但是如果太宽就会有很多留白,太窄会出现滚动条,在PC页面上很常见。
  2. 流动布局:屏幕尺寸在一定范围内变化时,不改变模块布局,只改变模块尺寸比例。比固定布局更具响应能力,两边不留白,但是也只能适应有限的宽度变化范围,否则模块会被挤(拉)得不成样子。
  3. 自定义布局:上面几种布局方式都无法跨域大尺寸变化,所以适当时候我们需要改变模块的位置排列或者隐藏一些次要元素。
  4. 栅格布局:这种布局方式使得模块之间非常容易对齐,易于模块位置的改变用于辅助自定义布局。

屏幕精度响应

屏幕间的像素精度差异导致固定像素在不同设备上实际尺寸会有比较大的差别,为了解决这个问题我们使用弹性布局,弹性布局采用em作为单位,其原因和“字体大小响应”中提到的一样。但是由于使用了em作为单位,使得我们实际上是无法得知界面实际尺寸的,这回导致页面上的图片有可能过大(浪费带宽)或者过小(模糊),所以对于图片我们需要根据实际需要的大小选择性加载对应的尺寸版本。另外在最新(ipad3,iphone4)的IOS设备上,1px实际上会占4px(由于像素密度高),所以图片精度对于这些问题都要单独处理。

交互方式响应

不同的设备支持不同的交互方式,可能是触屏或者鼠标操作,再可能是按键操作。这里可以采用“渐进增强”的方式,为用户定义基本的操作方式,而在先进的设备上提供更接地气的操作(比如手势)。

网络状况响应

用户在慢速网络的情况下可以选择不下载一些消耗带宽的资源。

其他功能响应

比如GPS,陀螺仪,电话等功能

使用场景响应

比如用户在车上,还是在走路,可以根据这些情况提供给用户不同的操作体验。

用户偏好响应

不同的用户有着不同的偏好,比如左右手,操作习惯,反映速度,眼睛辨别能力,网站都可以考虑做出响应。

响应式的误区

我要响应哪些设备?

设计响应式的目的是为了应付现在的设备或者将来未知的设备,像最开始的比喻,如果网站是个程序,那么响应式网站可以提供更多参数选项。并且,如果你提供了这个参数,那么就要做好它可能是任何值的准备,至少是心理准备。设计师在设计的时候可以拿一些典型设备做参照,但是最后你要忘掉这些设备。

是不是响应的设备类型越多越好?

响应式设计是一个抽象,有挑战性的工作,在设计中为了兼容不同的设备需要权衡舍弃一些原本在特定设备上更好的设计。并且在前端上为了要兼容不同设备,也需要做大量兼容性处理。响应得设备类型越多意味着设计的限制越多,前端需要做的工作越多,成本越高,而体验却只降不升。所以根据产品需求响应得适可而止就行了。

移动端用到的前端技术

Media Query

用于查询设备是否符合某一特定条件,它可以在css中,link标签属性中,js中使用。这些特定条件包括屏幕尺寸,是否可触摸,屏幕精度,横屏竖屏等信息。我们可以根据这些信息来对页面做一些特殊处理从而达到响应目的。

相关链接和用法:http://www.w3.org/TR/css3-mediaqueries/,http://www.w3.org/TR/cssom-view/

在ie8及以下不支持Media Query,可以通过https://github.com/scottjehl/Respond兼容。

使用em做尺寸单位

用于文字大小的响应和弹性布局。

禁止页面缩放

原本IOS手机页面为了兼容pc的页面默认屏幕宽度为800,并进行了缩小。但是作为专门为移动端设计的页面我们并不需要这种处理,所以通过如下代码去除缩放。这个代码被主流移动浏览器兼容。

<meta name="viewport" content="initial-scale=1, width=device-width, maximum-scale=1, user-scalable=no" />

相关链接:https://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/MetaTags.html

去除点击高亮

在移动端点击一个可点击元素默认会出现一个元素大小的半透明颜色覆盖到元素上。这是为了让用户感觉到这个元素已经被点击了。但有时候这个效果不是我们希望的,可以通过如下全局css设置把它去掉

-webkit-tap-highlight-color: rgba(0, 0, 0, 0);

该属性在webkit内核浏览器上有效,参考链接: https://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariCSSRef/Articles/StandardCSSProperties.html#//appleref/doc/uid/TP30001266-webkit_taphighlightcolor

但在移动端IE10上,需要如下代码才能去除

<meta name="msapplication-tap-highlight" content="no" />

参考:http://msdn.microsoft.com/zh-cn/library/ie/bg182645

滚动回弹特效

通过overflow:scroll可以使内容可以滚动,但是没有物理弹性,比较生硬,没有滚动条。如果想要IOS那种弹性的滚动效果可以使用css

-webkit-overflow-scrolling:touch;

但是加上这个css后会产生滚动条(通常不显示,滚动才显示)。非要去掉滚动条只能通过JS模拟,通过这个Kissy组件可以做到:https://github.com/hongru/kissy-mscroller,需要直接引用fakescroller,如果直接引用index会在IOS平台自动变成-webkit-overflow-scrolling。

触摸事件

四种基本触摸事件

目前Safari只支持TouchEvent和GestureEvent,其他手势需要自己定义。TouchEvent主要有touchstart,touchmove,touchend,touchcancel四种。参考链接: https://developer.apple.com/library/safari/documentation/UserExperience/Reference/TouchEventClassReference/TouchEvent/TouchEvent.html
触摸屏上的鼠标事件

同时Safari帮你模拟了鼠标事件,但是click事件会有明显的延迟。一般采用封装好的手势框架去模拟tap操作代替click。Kissy的Event模块带有tap事件。但是在点击一个绑了tap事件的元素时,周围有可以点击(click)的元素,那么手指可能会触碰到这个元素,导致tap事件和click事件均被触发。但是click事件触发会在tap事件之后,所以我临时的解决方案是在tap事件发生后阻止document上所有的click事件一段时间(500毫秒)。

参考链接:
触摸屏上的伪类

另外在Safari上使用hover和active位类时,手指点击一次链接,那么那个链接的hover会被一直触发,如果长按一个链接,那么他的active会被一直触发。所以目前看来使用css伪类是不保险的,只能通过js模拟。

video元素在Safari上对触摸事件的影响

iphone平台的video元素所在区域会被屏蔽所有触摸事件,而且是和DOM结构无关的区域性屏蔽,一个元素被绝对定位到video元素区域也会被屏蔽事件,并且video被overflow:hidden之后同样。所以想在iphone上做一个视频点击播放这种效果,只能自己弄张图片和一个播放按钮,然后点击后调用一个舞台外的video元素播放。 ipad平台同样存在这个问题,但是如果把video标签的controls属性去掉就能恢复正常。这意味着想要解决这个问题必须自定义UI而不能使用系统UI。 我认为这个问题应该是IOS平台自带的UI造成的,只是iphone无法通过controls属性去掉UI。

scroll与touchmove

在Safari上scroll事件不如PC上发生得那么频繁,只有在页面滚动动画结束之后才会很吝啬得发生一次。如果需要比较实时得检测用户把页面拖动到什么位置了,建议使用touchmove事件。

原文地址:http://www.cnblogs.com/flash3d/archive/2013/09/28/3343877.html
Bootstrap响应式Web开发(一) Bootstrap的概念、特点及组成、浏览器、Visual Studio Code、移动端开发主流方案、移动Web开发基础、视口、移动Web页面的样式编写、分辨率和设备像素比、二倍图、SVG矢量图 阅读详情

相关推荐

HarmonyOS 鸿蒙开发——响应式布局

当基本的自适应布局无法满足多终端上屏幕的体验要求时,我们需要针对不同终端的屏幕特点,设定容器与栅格的关系达到响应式的布局。通常响应式布局能根据栅格断点变化进行有级变化。

2401_83047642的博客 1848

响应式布局的一些心得

公司太坑,先是说不做响应式,然后做完了又要加响应式,简直坑死人了。 通过改成响应式的时候也事发现自己写样式时的一些不足吧,总结下来。 将所有的单位改成rem,我设置的是100px = 1rem,毕竟好算啊,不然那么多值我还得用计算器敲, 然后分阶段用媒体查询重新设定比例,实现自适应 html,body{ font-size: 100px !important; } @media only...

qq_35752802的博客 727

手把手教你用89C52单片机驱动0.96寸OLED(IIC接口,附完整代码)

本文详细介绍了如何使用89C52单片机通过I2C接口驱动0.96寸OLED显示屏,包括硬件连接、I2C通信原理、SSD1306驱动芯片的初始化及显存管理技巧,并提供了完整的代码示例和常见问题排查方法,帮助电子爱好者快速掌握OLED显示技术。

weixin_30781433的博客 369

响应式Web设计总结

最近几天学习了CSS3响应式设计,那么就来做一下简单的总结:         响应式网页设计(Responsive web design)是一种现代网页设计方法,基于CSS3的媒介查询(Media Query)特性使得网页适应不同设备,即根据设备的分辨率和缩放自动重新布局。             下面来看一下如何实现响应式布局,有几种方法          通常我们使用第一

你叫李God的的的的的的博客 1570

Windows本地部署Qwen3-14B实战指南:Ollama+Open WebUI零Docker方案

大语言模型本地部署是AI工程化落地的关键环节,其核心在于推理框架兼容性、硬件加速适配性与端到端稳定性。Ollama作为轻量级模型运行时,原生支持Windows DirectML与CUDA,规避了Docker/WSL2虚拟化开销和llama.cpp编译风险;Qwen3-14B则凭借128K上下文、Tool Calling原生支持及中文长文本结构化能力,成为政务、金融等场景首选。本文聚焦Windows平台真实约束——显存阈值、驱动版本匹配、路径编码兼容、离线知识库集成(RAG)等工程细节,提供经63台Windo

weixin_32136203的博客 412

Computers & Security 投稿实战:从零到一详解避坑指南

本文详细解析了向《Computers & Security》投稿的全流程避坑指南,包括ORCID账号注册、文件格式统一、Editorial Manager®系统操作技巧等关键步骤。特别强调了cover letter撰写、Declaration of Interest Statement准备以及PDF生成后的检查要点,帮助研究者高效完成投稿流程。

weixin_29228203的博客 675

响应式开发遇到的坑总结

vue-quill-editor: vue-quill-editor是Vue自家的富文本编辑器,基于 Quill、适用于 Vue 的富文本编辑器,支持服务端渲染和单页应用。 vue-quill-editor的优势:官方文档 开源可商用, GitHub 上星星很多,功能也齐全 GitHub插件库 API驱动的设计,Quill是为编辑和记住字符而设计,它的api构建在这些以自然文本为中心的单元之上 自定义内容和格式,Quill公开了自己的文档模型,这是对DOM的强大抽象,允许扩展和定制 跨平台,跨平台

Front小思的博客 964

Matlab实战:用DQN算法让机器人学会自主避障(附完整代码)

本文详细介绍了如何使用Matlab实现DQN(深度Q网络)算法,使机器人在复杂环境中学会自主避障。通过环境建模、网络架构设计、奖励函数优化及实战调试,提供了完整的代码实现和训练策略,帮助开发者快速应用于机器人路径规划项目。

t8u9v0w1x的博客 232

移动端web开发之响应式布局

移动端WEB开发之响应式布局 1.0 响应式开发原理 1.1 响应式开发原理 就是使用媒体查询针对不同宽度的设备进行布局和样式的设置,从而适配不同设备的目的。 设备的划分情况: 小于768的为超小屏幕(手机) 768~992之间的为小屏设备(平板) 992~1200的中等屏幕(桌面显示器) 大于1200的宽屏设备(大桌面显示器) 1.2 响应式布局容器 响应式需要一个父级做为布局容器,来配合子...

weixin_39343432的博客 399

PyCharm启动报错急救指南:3步定位.vmoptions文件位置(Win/Mac路径详解)

本文针对PyCharm启动失败问题,提供了一份详细的急救指南。核心在于精准定位并修复关键的.vmoptions配置文件。文章通过三步法详解了在Windows和macOS系统上查找该文件的具体路径,并分析了因新旧版本冲突、破解补丁残留或参数设置错误导致启动失败的常见场景及解决办法,帮助开发者快速恢复IDE的正常工作。

weixin_28835789的博客 702

机器人视觉实战:用OpenCV搞定手眼标定(附完整C++代码)

本文详细介绍了使用OpenCV实现机器人视觉中的手眼标定技术,包括核心算法、工业场景优化及完整C++代码示例。通过解析坐标系转换问题,提供从数据采集到标定验证的全流程解决方案,帮助开发者在复杂工业环境中实现高精度机械臂与视觉系统的协同作业。

weixin_29306571的博客 481

Java响应式编程开发

Java响应式开发核心接口、组件、框架概述。 响应式系统概念:简言之响应式系统在运行过程中,有请求到来随时都能处理,当系统有组件因网络或是其他原因阻塞了,系统依然可以处理请求,不过返回的数据为空,但请求会被缓存到内置消息队列中,当组件恢复后从消息队列中获取请求,处理完成后使用回调函数将数据主动从服务器返回给前端页面。

woaibiancheng_01的博客 1786

Python趣学篇:用Pygame打造绚烂流星雨动画

这是一个基于Pygame开发的流星雨动画项目,具有以下特效:🌠多彩流星:8种不同颜色的流星随机生成,每颗都有独特的轨迹✨粒子尾迹:每个流星都带有动态的粒子拖尾效果,增强视觉冲击力🌟闪烁星空:150颗背景星星营造真实的夜空氛围🌌渐变背景:深蓝到黑色的自然渐变,模拟夜空色彩💫斜向轨迹:所有流星都以30-60度角自然斜向下运动🎨中文显示:完美支持中文字体,显示"斜向流星雨来啦!"等文字整个程序运行流畅,达到60FPS的丝滑体验,让你仿佛置身于真实的流星雨之中!

Code_流苏:在代码中寻诗意,在实践中觅真知 6058

响应式开发

响应式开发原理 实现响应式开发需要使用到 媒体查询 @media 是css3里面新增的属性 通过判断屏幕得大小 来决定使用什么样得布局方式(让什么样得样式生效) 屏幕得分类 : 超小屏幕 width < 768px 小屏幕 width > 768px && width < 992 中屏幕 width > 992px && width < 1200 大屏幕 width > 1200px 语法 : @media(判断条件

weixin_45974687的博客 157

华为 MetaERP 总账模块依托 “交易即核算” 的事件驱动架构,与 Oracle EBS 相比,更强调业务事件自动触发财务动作、实时数据同步和智能规则引擎,实现业务与财务的深度融合

华为MetaERP总账模块采用"交易即核算"架构,相比Oracle EBS实现了三大突破:1)业务事件自动触发财务动作,如采购收货自动生成暂估凭证;2)业务财务数据实时同步,支持即时分析;3)内置智能规则引擎,实现自动匹配、核销和结转。该模块覆盖采购、销售、资产、薪酬等全业务场景,支持多维核算和关联交易自动抵消,显著提升核算效率与准确性。其中采购暂估、销售结转等场景实现全自动化处理,较EBS减少80%手工操作。

金牌架构师 222

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

响应式开发介绍

响应式开发原理,响应式布局容器及尺寸划分

qq_44757223的博客 1059

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

响应式开发心得

响应式开发心得

jnfy的博客 1507

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

响应式web开发

响应式设计的页面会根据用的的行为以及设备的环境(系统平台、屏幕尺寸、屏幕定向等)进行相应的响应和调整。此概念于2010年5月由国外著名网页设计师Ethan Marcotte(伊森·马科特)所提出意在实现不同屏幕分辨率的终端上浏览网页的不同展示方式。具体的实践方式由多方面组成,包括弹性盒、弹性网格布局、响应式图片、CSS media query的使用等。背景:移动互联网的发展,为了满足移动互联网多终端显示的需求 催生了响应式式布局的诞生,

m0_73782968的博客 918

了解一下响应式开发

web网页开发的大致出现了以下几类:固定宽度的布局:给网页设置一个固定的宽度,通常以px作为单位,常见于PC端web开发。流式布局:给网页设置一个相对宽度,通常以百分比作为单位。栅格布局:像表格一样对页面进行划分,以每一个划分出的单元格为长度单位,比如bootstrap采用的就是栅格化的布局。响应式布局:通过检测设备信息来决定网页的布局方式,从而使网页可以匹配大部分移动设备和pc端。

weixin_73143398的博客 232
上一篇: DataGrid中CheckBox列需要双击才能选中问题的解决
下一篇: 云计算: ERP未来必然趋势
蓝色范思哲
博客等级 码龄15年 1粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值