聊聊3种最常见的响应式设计问题

响应式设计方法对开发者非常有用,因为它使我们的内容在各种设备上广为传播。不用保留几个独立版本的网站,也可以摒除诸如缩放和流式布局这些方法的弊端。

16a1fff27c396a1b6c25a77bfb0a50cfa8c0ce44


缩放、流式布局与响应式


这些术语容易造成混淆,设计师常常错误地交替互用。实际上,每个都是布局技巧的显著进化过程,像技术演进那样逐一显现。

缩放布局,旨在相对缩放每一个元素。它们会随着窗口大小变化动态缩放内容,就这方面而言,它们是响应式的。布局本身保持静止,通过改变每一个元素来保持一致的表现。

9aaa63ef4cd548507064b71460543c605b93e6d8

上图:不同分辨率下缩放布局的例子,这种设计为了统一牺牲了易读性。

流式布局就不一样,因为它们随着窗口尺寸缩放容器元素。通过em这类相对单位可以做到这点,克服了缩小文字的问题。用户主动缩放时,设计就被破坏了。

32c08bd3039a4db913aab64a721c2c4bb06aa1f4

上图:不同分辨率下流式布局的例子,这种设计为了易读性牺牲了统一。

响应式设计不会缩放任何东西。相反,它会根据窗口尺寸决定显示哪些内容。

1d483199178726b64cd6e0d3d538d2a934177655

上图:不同分辨率下响应式布局的例子。


灾祸1:菜单折行


如果在页面顶部使用了导航栏,当页面展现在小屏幕上时,响应式设计通常会把它“掰”成更紧凑的格式,但这并非总是有效,如果显示区域比断点更宽,又不足以在一行显示所有菜单项的话。结果会导致菜单的折行。

91e371900d252e5128ab45f44a2384754af3a46b

有些方法可以解决这个问题。其一,减少导航栏中横排菜单项的数量,将它们分门别类。然后选中某类时,你可以通过下拉菜单来显示子类。

其二,减少断点的数值。应该以导航栏开始出问题的实际数值为准,而非具体设备尺寸。

其三,不同设备使用不同方式,例如滑动抽屉。


灾祸2:使用固定宽度图片


内容区域通常都随窗口尺寸变化。所以当固定宽度图片超出显示区域时,图片就被裁剪了。

4f1376d4cc89f46ce31fcd646418560083973ffe

上图:糟糕的固定宽度图片例子,它太大了。于是出现了滚动条,内容被推到屏幕之外。

通过给图片设定相对单位,可以避免这个问题。或者使用支持响应式的框架(比如Bootstrap),使用响应式图片class名来控制(例如 class=”img-responsive”)。

d5e7bf2f5ecc10b9766e8b18b09d22f289920b79

上图:同样的元素,用响应式图片class名的方式,滚动条就不见了。


灾祸3:元素的扭曲


这有点晦涩难懂,但本质上,布局显示在小窗口上的时候,所有未经处理的列都会以行的形式呈现。这是个问题,因为内容的扭曲会不经意地改变设计的层级。

44b6db467f7595635191de0277436444cf591e1d

上图:列变成了行,扭曲了内容。

解决方法显而易见,但令人惊奇的是,仍有很多人在纠结它:只要明确地设定元素的宽度、高度、内边距。如果它移出所处位置,盖住了其他元素,可以通过将它包裹在div容器中,设置外边距,迫使它回到原本的地方。


规划有助于避免问题


本文只讨论了3种最普遍遇到的响应式设计灾祸,还有很多其他途径会毁了一个好的设计。预防错误并不难。现代浏览器都有内置的响应式布局测试,好好规划设计,多做测试。


原文发布时间:2018年04月05日

作者:web前端开发V

本文来源:CSDN  如需转载请联系原作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/451257.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PV、TPS、QPS是什么

pv 是指页面被浏览的次数,比如你打开一网页,那么这个网站的pv就算加了一次;tps是每秒内的事务数,比如执行了dml操作,那么相应的tps会增加;qps是指每秒内查询次数,比如执行了select操作&#xff…

AOP原理解析及Castle、Autofac、Unity框架使用

转自:https://www.cnblogs.com/neverc/p/5241466.html AOP介绍 面向切面编程(Aspect Oriented Programming,英文缩写为AOP),通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。 AOP是OOP的延续,是软件…

bootstrap validator 提供了哪些验证函数

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 目前提供的校验方法有: "notEmpty" : "不能为空", "password" : "请输入正确的密码&q…

帕累托分布(Pareto distributions)、马太效应

什么是帕累托分布 帕累托分布是以意大利经济学家维弗雷多帕雷托命名的。 是从大量真实世界的现象中发现的幂次定律分布。这个分布在经济学以外,也被称为布拉德福分布。 帕累托因对意大利20%的人口拥有80%的财产的观察而著名,后来被约瑟夫朱兰和其他人概括…

两个class写在同一个java文件中

第一种: 一个public类,多个非public类,例如:public class A{}class B{}第二个class前面不能加public。 第二种: 第二种是内部类,写在公共类体里面的&#xff…

微信小程序的一些数据调用方式

1.模板数据的调用 一张图了解一下在wxml页调用预先定义好的模板: 可以看到上面调用了两个模板,数据调用却是不同的,obj是一个对象,对象内包含多个键值对形式的数据; tabbar是一个一维数组,每个数组项又都是…

手机厂商探路互联网:硬件高利润时代已成历史

华为消费者业务集团CEO兼终端公司董事长余承东近日出席“2012年全球移动互联网大会”期间证实,华为计划与奇虎360合作推出一款智能手机。 余承东表示,华为终端将尝试与多家互联网公司就智能手机业务展开合作,但他未透露与奇虎360合作的更多细…

解决:按截图 ctrl+alt+a QQ聊天窗口就自动最小化(QQ以外的可以截图)

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 一、问题如题 ,想截图QQ聊天记录都不行 二、 解决方法: 如图找到QQ截图按钮,点击下拉倒三角&…

数据库备份DBS商业化发布

数据库备份DBS商业化发布将在2018年7月11日 15:00-16:00直播,敬请关注! 数据库备份DBS为数据库提供连续数据保护、低成本的备份服务。 它可以为多种环境的数据提供强有力的保护,包括企业数据中心、其他云厂商及公共云。数据库备份提供数据备份…

堡垒机(跳板机)

堡垒机(跳板机)?现在一定规模互联网企业,往往都拥有大量服务器,如何安全并高效的管理这些服务器是每个系统运维或安全运维人员必要工作。现在比较常见的方案是搭建堡垒机环境作为线上服务器的入口,所有服务…

2018-09-18

12.1 LNMP架构介绍 和LAMP不同的是,提供web服务的是Nginx并且php是作为一个独立服务存在的,这个服务叫做php-fpmNginx直接处理静态请求,动态请求会转发给php-fpm12.2 MySQL安装 二进制免编译包安装 [rootlocalhost ~]# cd /usr/local/src/ [r…

举例说明Java中代码块的执行顺序

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 结论 这里先把整理好的结论抛给大家,然后我在写个程序来验证我们的结论。在Java类被new的过程中,执行顺序如…

Google 正式开源 Jib ,帮助 Java 应用快速容器化

Google 本周宣布开源一款新的 Java 工具 Jib ,旨在让开发者使用他们熟悉的工具更轻松地将 Java 应用程序容器化。在7月9日发布的博客文章中,Google 软件工程师 Appu Goundan 和 Qingyang Chen 将 Jib 描述为一个容器镜像构建器,旨在处理将 Ja…

“公敌”京东:众同行将其拖入价格战

倒京东语录 当当网董事长李国庆: 京东的资金只能维持到8月至12月。当当网是赚一个花两个,而京东则是赚一个花四个。 苏宁电器董事长张近东: 我至今没有看见过哪个企业能通过这种方式取得最后胜利。这种违背正常商业逻辑的做法&#xff0c…

跨域与跨域访问

什么是跨域 跨域是指从一个域名的网页去请求另一个域名的资源。比如从www.baidu.com 页面去请求 www.google.com 的资源。跨域的严格一点的定义是:只要 协议,域名,端口有任何一个的不同,就被当作是跨域 为什么浏览器要限制跨域访…

thymeleaf 使用javascript定义数组报错

js中免不了的要用的数组,一维的二维的三维的 但是当用到thymeleaf作为模版时候会有一些坑,导致数组不能用 org.thymeleaf.exceptions.TemplateProcessingException: Could not parse as expression: "{checkbox: true, fixed: true}, {field: origi…

解决:Failed to execute goal on project aopcore: Could not resolve dependencies for project com.cmos:

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 一、问题描述 maven工程 jar包无法下载,报错如下 : [ERROR] Failed to execute goal on project aopcore: Cou…

从Xbox和Zune中学到的四门创业课

导读:微软前娱乐与设备部门总裁Robbie Bach领导他的团队,实现了Xbox的畅销。然而,他领导该部门推出的Zune音乐播放器,却没那么成功。从Robbie这两个经历中,我们们能学到什么?本文是Robbie自己的总结&#x…

服务容错保护断路器Hystrix之七:做到自动降级

从《高可用服务设计之二:Rate limiting 限流与降级》中的“自动降级”中,我们这边将系统遇到“危险”时采取的整套应急方案和措施统一称为降级或服务降级。想要帮助服务做到自动降级,需要先做到如下几个步骤: 可配置的降级策略&am…

from表单提交和JSON区别

form表单是“键值对”的数据格式,例如: a1&b2&c3 而json格式则与之不同,如下: {"a":1,"b":2,"c":3} 传递的数据比较简单,那么两种方式基本上没什么大区别(当然后台接…