响应式设计与自适应设计的区别

Avatar of Geoff Graham
Geoff Graham 发表

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200美元免费信用额度!

这是一个比你想象中更频繁出现的问题。我们不时地在 CSS-Tricks 论坛 中看到它。这也是我在教授网页设计入门课程时经常被问到的问题。

这是一个好问题!

Ethan Marcotte 于2010年在 A List Apart 上提出响应式网页设计 以来,响应式网页设计已成为一个家喻户晓的术语;以至于我们可能会认为自己对它的理解是理所当然的。响应式网站的概念是 CSS 最棒的“技巧”之一,并且足够重要,值得我们退一步,提醒自己是什么构成了“响应式”网站,以及它与“自适应”网站的不同之处。

因此,让我们来探讨一下它们的区别。

简短解释

响应式网站和自适应网站的共同点在于,它们都会根据其正在被查看的浏览器环境(最常见的是浏览器宽度)来改变外观。

响应式网站响应浏览器在任何给定时间点的尺寸。无论浏览器宽度是多少,网站都会以一种针对屏幕优化的方式调整其布局(以及可能的功能)。浏览器宽度是300px还是30000px?这并不重要,因为布局会相应地做出响应。当然,前提是它被正确地实现!

查看 CSS-Tricks 在 CodePen 上创建的笔 响应式示例@css-tricks)。

自适应网站适应浏览器在特定点的宽度。换句话说,网站只关心浏览器是否具有特定的宽度,并在达到该宽度时调整布局。

查看 CSS-Tricks 在 CodePen 上创建的笔 自适应示例@css-tricks)。

另一种思考方式是平滑设计和捕捉设计的区别。响应式设计是平滑的,因为无论在什么设备上查看,布局都会流畅地调整。另一方面,自适应设计会捕捉到特定位置,因为页面根据其正在被查看的浏览器或设备提供不同的内容。此动画演示了行为的差异

顶部为响应式,底部为自适应

请注意,响应式示例如何随着环境变化而变化,而自适应示例则在定义的环境中捕捉到特定位置。

详细解释

响应式网站和自适应网站的区别比上面的简单示例要深一些。你甚至可以将其视为哲学上的差异。

让我们考虑一下 Ethan 对响应式网页设计的最初定义的核心内容

流体网格、灵活的图像和媒体查询是响应式网页设计的三个技术要素,但它也需要一种不同的思维方式。与其将我们的内容隔离到不同的、特定于设备的体验中,我们可以使用媒体查询在不同的查看上下文中逐步增强我们的工作。

请注意关键词流体灵活。响应式设计是一种实现设备无关性的方法,因为它旨在为任何屏幕创建优化的体验。这种思维方式促使我们创建能够根据网站在任何给定时间被使用的方式来改变上下文的网站。这意味着我们的容器应该是流体的(例如使用百分比作为单位),我们提供的内容应该是灵活的(例如在正确的时间向正确的设备提供正确的内容),以及我们定义内容断点的位置(而不是特定屏幕尺寸的宽度,例如 iPhone)。

将其与自适应的思维方式进行比较,自适应的思维方式既不流体也不灵活,而是寻找特定点进行调整。虽然很难让网站适应所有各种设备,但你可以参考 设备特定媒体查询的汇总

更新:关于响应式设计和自适应设计区别的讨论非常精彩。重要的收获是,区别不仅仅在于媒体查询和像素单位。帖子前面动画 GIF 示例是说明这些术语在此处如何被识别的一种方式,但 这篇文章 还提供了一系列很好的插图,进一步说明了这一点。

响应式设计是否优于自适应设计?

我甚至不想讨论这个问题。我相信这是一种哲学差异,就像响应式网页设计与 移动优先响应式网页设计 的区别一样。你选择最适合当前项目的工具。

你是否被迫选择其中一个?如果你知道你的网站必须支持哪些特定设备,那么选择可能会更容易。你可能会决定 iPhone 6 是唯一重要的设备,并且适应它比考虑其他设备要容易得多,也更有效率。另一方面,响应式设计是使网站免受市场上任何(甚至可能尚未发布的)设备影响的良好策略。

底线

响应式设计和自适应设计都旨在解决网站经常在不同设备和不同上下文中被查看的事实。它们只是以自己的方式来解决这个问题。

请记住:网络本质上是响应式的。在我们开始设计它之前,它不需要响应或适应任何设备。

如果你想深入了解响应式设计,最好的方法是实践。有很多资源可以帮助你入门,所以开始吧!以下是一些入门资源