构建自适应网页布局,应对不同屏幕尺寸至关重要。本文将演示如何利用 CSS Flexbox 实现一个常见的布局需求:左侧固定尺寸图片,右侧自适应文本内容。 在宽屏设备上,文本占据剩余空间;而在窄屏设备(例如手机)上,图片则显示在文本上方。
目标:使用 Flexbox 布局,左侧显示 200x200 像素的图片,右侧显示文本。大屏幕下,文本填充剩余空间;小屏幕下,图片位于文本上方。
之前的尝试(例如 ChatGPT 生成的代码)可能存在问题:布局仅进行等比例缩放,未能根据屏幕尺寸动态调整。
关键在于:添加视口元数据和媒体查询。
首先,在 HTML 部分添加视口元数据:
这行代码告诉浏览器,页面宽度应与设备宽度匹配,初始缩放比例为 1.0,确保响应式效果。
其次,调整 CSS 代码,利用媒体查询控制不同屏幕尺寸下的布局:
.container { display: flex; } .image { width: 200px; height: 200px; } .text { flex: 1; /* 占据剩余空间 */ } @media (max-width: 600px) { /* 针对小屏幕设备 */ .container { flex-direction: column; /* 布局改为垂直方向 */ } .text { flex: initial; /* 取消 flex 属性,使文本宽度自适应 */ } }
HTML 结构示例:
图片文本内容
通过以上调整,布局将根据屏幕宽度动态变化。大屏幕下,图片和文本水平排列;小屏幕下,图片位于文本上方,完美适配不同设备。