当前位置: 首页 > news >正文

Grid网格布局完整功能介绍和示例演示

CSS Grid布局是一种强大的二维布局系统,可以将页面划分为行和列,精确控制元素的位置和大小。以下是其完整功能介绍和示例演示:

基本概念
  • 网格容器(Grid Container):应用display: grid的元素。
  • 网格项(Grid Item):容器的直接子元素。
  • 网格线(Grid Line):划分行和列的分界线。
  • 网格轨道(Grid Track):两条相邻网格线之间的空间。
  • 网格单元格(Grid Cell):行和列交叉形成的最小单位。
  • 网格区域(Grid Area):由多个单元格组成的矩形区域。
容器属性
  1. 定义网格结构
    • grid-template-columnsgrid-template-rows:指定列和行的大小。
      .container {display: grid;grid-template-columns: 100px 200px 100px; /* 三列,宽度分别为100px、200px、100px */grid-template-rows: 100px 200px; /* 两行,高度分别为100px、200px */
      }
      
    • repeat()函数:简化重复的轨道定义。
      grid-template-columns: repeat(3, 1fr); /* 三列等宽,占据剩余空间 */
      
    • fr单位:表示可用空间的比例。
    • minmax()函数:定义轨道的最小和最大尺寸。
      grid-template-columns: 1fr minmax(200px, 1fr) 1fr; /* 中间列最小200px,最大占据剩余空间 */
      
    • auto关键字:根据内容自动调整大小。
  2. 网格间距
    • gap(或row-gapcolumn-gap):设置行和列之间的间距。
      .container {gap: 20px; /* 行间距和列间距均为20px */
      }
      
  3. 定位网格项
    • grid-area:命名区域,简化定位。
      .container {grid-template-areas:"header header header""sidebar content content""footer footer footer";
      }
      .header { grid-area: header; }
      .sidebar { grid-area: sidebar; }
      .content { grid-area: content; }
      .footer { grid-area: footer; }
      
    • grid-column-startgrid-column-endgrid-row-startgrid-row-end:精确控制项的位置和跨度。
      .item {grid-column-start: 1; /* 从第1列开始 */grid-column-end: 3; /* 到第3列结束 */grid-row-start: 2; /* 从第2行开始 */grid-row-end: 3; /* 到第3行结束 */
      }
      /* 简写形式 */
      .item {grid-column: 1 / 3; /* 从第1列到第3列 */grid-row: 2 / 3; /* 从第2行到第3行 */
      }
      
  4. 命名网格线
    • 使用方括号[]为网格线命名,方便定位。
      .container {grid-template-columns: [left] 100px [center] 200px [right];grid-template-rows: [top] 100px [middle] 200px [bottom];
      }
      .item {grid-column: left / center; /* 从left线到center线 */grid-row: top / middle; /* 从top线到middle线 */
      }
      
项目属性
  • justify-selfalign-self:控制单个项在单元格内的对齐方式。
    .item {justify-self: center; /* 水平居中对齐 */align-self: end; /* 垂直底部对齐 */
    }
    
示例演示
  1. 简单网格布局

    <div class="container"><div class="item">1</div><div class="item">2</div><div class="item">3</div><div class="item">4</div><div class="item">5</div><div class="item">6</div>
    </div>
    
    .container {display: grid;grid-template-columns: repeat(3, 1fr);grid-template-rows: 100px 100px;gap: 10px;
    }
    .item {background-color: lightgray;padding: 10px;text-align: center;
    }
    

    效果:六项均匀分布在3列2行的网格中。

  2. 响应式布局

    .container {display: grid;grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));gap: 20px;
    }
    

    效果:根据容器宽度自动调整列数,每列最小200px,最大占据剩余空间。

  3. 复杂布局

    <div class="container"><div class="header">头部</div><div class="sidebar">侧边栏</div><div class="content">内容</div><div class="footer">底部</div>
    </div>
    
    .container {display: grid;grid-template-areas:"header header header""sidebar content content""footer footer footer";grid-template-columns: 200px 1fr 200px;grid-template-rows: auto 1fr auto;gap: 10px;
    }
    .header { grid-area: header; }
    .sidebar { grid-area: sidebar; }
    .content { grid-area: content; }
    .footer { grid-area: footer; }
    

    效果:实现经典的三栏布局,头部和底部通栏,侧边栏和内容区域自适应高度。

通过以上介绍和示例,可以看到CSS Grid布局的强大功能和灵活性,能够轻松实现各种复杂的页面布局。

http://www.dtcms.com/a/275216.html

相关文章:

  • 2023年全国青少年信息素养大赛C++编程初中组决赛真题+答案解析
  • RestTemplate动态修改请求的url
  • 第一周JAVA——选择结构、循环结构、随机数、嵌套循环、数组(一维、二维)、方法、形参实参
  • 《每日AI-人工智能-编程日报》--7月11日
  • python知识:正则表达式快速入门案例:提取文章中所有的单词、提取文章中所有的数字、提取百度热搜的标题、提取ip地址
  • Web攻防-SSTI服务端模版注入利用分类语言引擎数据渲染项目工具挖掘思路
  • Umi-OCR 的 Docker安装(win制作镜像,Linux(Ubuntu Server 22.04)离线部署)
  • 数据集相关类代码回顾理解 | StratifiedShuffleSplit\transforms.ToTensor\Counter
  • 数据结构-双链表
  • 数字产品的专利战:要么布局称王,要么维权忙?
  • ABP VNext + Microsoft YARP:自定义反向代理与请求路由
  • 文件上传漏洞1-文件上传漏洞详细原理讲解与利用方式
  • 设计模式 - 面向对象原则:SOLID最佳实践
  • scrapy框架
  • 源表=电源+数字表?一文看懂SMU源表 2025-04-14
  • 大模型开发框架LangChain之函数调用
  • linux常用命令(一)
  • cnas实验室高效获证路径,cnas认证常见失败原因?
  • Linux711 Mysql
  • 使用node调用jira接口
  • [精选]如何解决pip安装报错ModuleNotFoundError: No module named ‘subprocess’问题
  • linux系统-----Redis主从复制
  • 生成对抗网络(GAN)原理详细讲解
  • MoE混合专家模型:千亿参数的高效推理引擎与架构革命
  • python文件操作与正则表达式综合练习
  • 第三方渗透测试:范围咋定?需供应商同意吗?
  • 【经典面经】C++新特性 TCP完整收发数据 TLS1.2 TLS1.3
  • 低成本的AI知识库方案及推荐
  • 计算机网络第三章(6)——数据链路层《网桥交换机》
  • 【Python3教程】Python3高级篇之CGI编程