0

0

如何使用 CSS Grid 实现响应式左右并排布局(文本+图片)

霞舞

霞舞

发布时间:2026-01-05 12:57:08

|

613人浏览过

|

来源于php中文网

原创

如何使用 CSS Grid 实现响应式左右并排布局(文本+图片)

本文介绍如何用现代 css grid 替代浮动布局,实现左侧文本、右侧图片的并排结构,并正确添加内边距、保持响应式,避免传统 float + padding 导致的布局错乱问题。

在早期 Web 开发中,开发者常依赖 float 实现多栏布局,但 float 本身并非为布局设计,容易引发清除浮动、盒模型计算(如 padding 和 width 冲突)、响应式断裂等问题——正如你在代码中遇到的:给左栏

添加 padding: 20px 后,width: 50% 的实际占用宽度变为 50% + 40px,导致超出容器,右侧图片被挤到下一行。

现代推荐方案是使用 CSS Grid:语义清晰、天然支持间距控制、无需 hack 清除浮动,且配合媒体查询可轻松适配小屏幕。

✅ 推荐写法:Grid 布局 + 自动内边距

以下是一个简洁、健壮、响应式的实现:

Pebblely
Pebblely

AI产品图精美背景添加

下载
<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <title>文本与图片并排布局</title>
  <style>
    article {
      display: grid;
      gap: 1rem; /* 统一控制两列间距(含上下),替代手动 margin/padding 冲突 */
      max-width: 1200px;
      margin: 0 auto;
      padding: 1rem;
    }

    /* 默认单列(移动端优先) */
    div, img {
      padding: 0.75rem; /* 文本区与图片区各自独立内边距,安全可靠 */
    }

    img {
      width: 100%;
      height: auto;
      display: block;
    }

    /* 平板及以上:双列布局 */
    @media (min-width: 768px) {
      article {
        grid-template-columns: 1fr 1fr; /* 等宽两列,更灵活于百分比(自动适应 padding) */
      }
    }

    /* 桌面端可选:微调比例(如文本略窄、图片略宽) */
    @media (min-width: 1024px) {
      article {
        grid-template-columns: 0.9fr 1.1fr;
      }
    }
  </style>
</head>
<body>
  <article>
    <div>
      <h2>What We Do</h2>
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Morbi tincidunt ornare massa eget egestas. Vel eros donec ac odio tempor. Est velit egestas dui id ornare arcu odio ut sem. Urna porttitor rhoncus dolor purus non enim praesent elementum facilisis.</p><p><span>立即学习</span>“<a href="https://pan.quark.cn/s/cb6835dc7db1" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">前端免费学习笔记(深入)</a>”;</p>
    </div>
    @@##@@
  </article>
</body>
</html>

? 关键要点说明:

  • grid-template-columns: 1fr 1fr 比 50% 50% 更可靠:fr 单位基于剩余空间分配,自动容纳 padding 和 gap,彻底规避盒模型宽度溢出问题;
  • gap 属性统一管理列间/行间间距,比分别设置 margin-left 或 margin-right 更可控、语义更强;
  • 每个子元素(div 和 img)单独设置 padding 安全有效 —— 因为 Grid 子项的 padding 不影响网格轨道尺寸,只作用于自身内容区域;
  • 移动优先 + 媒体查询:默认单列堆叠(利于小屏阅读),仅在足够宽视口才启用双列,符合用户体验最佳实践;
  • img { display: block } 防止底部默认空白间隙(由行内元素基线对齐引起)。

⚠️ 注意事项:

  • 避免混用 float 与 Grid —— 一旦父容器设为 display: grid,其子元素的 float 属性将失效;
  • 若需兼容 IE11,Grid 需降级为 Flexbox(display: flex + flex: 1),但本文聚焦现代标准方案;
  • 图片建议始终添加 alt 属性以保障可访问性。

通过采用 CSS Grid,你不仅能优雅解决 padding 错位问题,还能获得更易维护、更具扩展性的响应式布局基础。

Mountain landscape

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
css中float用法
css中float用法

css中float属性允许元素脱离文档流并沿其父元素边缘排列,用于创建并排列、对齐文本图像、浮动菜单边栏和重叠元素。想了解更多float的相关内容,可以阅读本专题下面的文章。

593

2024.04.28

C++中int、float和double的区别
C++中int、float和double的区别

本专题整合了c++中int和double的区别,阅读专题下面的文章了解更多详细内容。

105

2025.10.23

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

432

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

600

2023.08.10

margin在css中是啥意思
margin在css中是啥意思

在CSS中,margin是一个用于设置元素外边距的属性。想了解更多margin的相关内容,可以阅读本专题下面的文章。

461

2023.12.18

css中的padding属性作用
css中的padding属性作用

在CSS中,padding属性用于设置元素的内边距。想了解更多padding的相关内容,可以阅读本专题下面的文章。

173

2023.12.07

flex教程
flex教程

php中文网为大家带来了flex教程合集,Flex是采用Flex布局的元素,称为Flex容器(flex container),简称"容器",它的所有子元素自动成为容器成员,有三个核心概念: flex项,需要布局的元素;flex容器,其包含flex项;排列方向,这决定了flex项的布局方向。php中文网还为大家带来flex的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

368

2023.06.14

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

65

2026.02.28

Golang 工程化架构设计:可维护与可演进系统构建
Golang 工程化架构设计:可维护与可演进系统构建

Go语言工程化架构设计专注于构建高可维护性、可演进的企业级系统。本专题深入探讨Go项目的目录结构设计、模块划分、依赖管理等核心架构原则,涵盖微服务架构、领域驱动设计(DDD)在Go中的实践应用。通过实战案例解析接口抽象、错误处理、配置管理、日志监控等关键工程化技术,帮助开发者掌握构建稳定、可扩展Go应用的最佳实践方法。

57

2026.02.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.9万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.5万人学习

CSS教程
CSS教程

共754课时 | 38.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号