Logo

使用 Flexbox 实现响应式设计

结合媒体查询调整 Flexbox 布局以适应不同屏幕

概念

使用 Flexbox 实现响应式设计

结合媒体查询调整 Flexbox 布局以适应不同屏幕

关于响应式设计的书籍已经有很多,而且都是很好的著作。

由于本课程专注于Flexbox布局模型,我不会深入探讨响应式设计的方方面面。

正如我之前提到的,使用Flexbox模型本身就能获得一定的响应式效果。

Flexbox即“灵活的盒子”。然而,我们也可以通过媒体查询来针对不同的屏幕尺寸,并相应地调整Flexbox的行为。

下面是一个示例。

熟悉的无序列表再次登场:

1<ul> 2 <li>首页</li> 3 <li>关于</li> 4 <li>联系</li> 5 <li>注册</li> 6 <li>登录</li> 7</ul>

配合一些样式:

1ul { 2 list-style-type: none; 3 display: flex; 4 border: 1px solid #4e4e4e; 5} 6 7li { 8 flex: 0 0 auto; 9 padding: 10px; 10 margin: 10px; 11 background-color: #8cacea; 12 color: #fff; 13 font-size: 1em; 14}

你现在已经是Flex布局的高手了,所以应该能理解上面代码的作用。

这就是导航栏目前的样子。

No configuration found for ID: 5d58e5aba3d918fc983e488a3bf7d846c97e8bedd4179cbf69f4f7374b3f51d1

虽然这种布局在桌面端和平板上表现不错,但在某些较小的屏幕上看起来并不理想。

在移动设备上,你可能希望将导航项垂直堆叠。

这时就可以用到媒体查询:

1@media screen and (max-width: 769px) { 2 /* 仅对宽度小于769px的屏幕设备生效 */ 3 ul { 4 flex-direction: column; /* 在小屏幕上改变排列方向 */ 5 } 6}

No configuration found for ID: 12795d7bcc65fc1dd0856ca57f314f5227d0d3fce53ba0de67911f5a01829f39

如果你之前对响应式设计有一定了解,那太好了。

只需将Flexbox模型融入你已有的知识体系,就能轻松掌握。

顺便提一下,我假设你已经了解什么是媒体查询。如果还不清楚,请参看下面的简要说明。



媒体查询

媒体查询是响应式设计的核心。它们允许你针对特定的屏幕尺寸,指定只在这些设备上运行的样式代码。

媒体查询最常见的形式是 @media 规则。

它的写法如下:

1@media screen and (max-width: 300px) { 2 /* 在此代码块中编写你的CSS样式 */ 3}

从结构上看,你几乎可以猜出它的作用:

“对于最大宽度为300px的屏幕设备……执行以下操作”

代码块中的所有样式仅适用于满足条件 screen and (max-width: 300px) 的设备。

我想这应该帮你澄清了一些疑惑。



快速练习

Catty音乐网站在移动设备上的显示效果不同,这很好。更棒的是,你可以尝试自己复现这个效果。



Course Image


你快要完成课程了!

在最后一课中,我会介绍浏览器支持情况、实用的链接和资源,帮助你继续前进。我相信你会喜欢的。

使用 Flexbox 构建音乐应用布局

结论