Blogger Information
Blog 19
fans 0
comment 6
visits 19073
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
CSS中grid网格布局示例(一)
葵花宝典
Original
2860 people have browsed it

grid 容器属性说明

元素启用 grid 布局后,它的子元素都变更块级元素,每个子元素独占一行

grid 布局时几个名词概念

  • 网格容器 加了 display:grid 后,它就变成了网格容器
  • 网格单元 网格容器里面的网格区域
  • 网格项目 容器下的所有子元素
  • 轨道 网格项目排列在一行或一列内,这一行就叫行轨, 列就叫列轨
  • 轨道间距 轨道的间距不能用 margin 来控制,有专用的属性 gap 来控制
  • 专用计量单位 fr 类似于伸缩因子

gap 与 fr 使用示例

属性 说明 示例
gap px 或 em 或 rem 第一位表示水平,第二位表示列 gap:0.5em 1em 行列相同时可简写:gap:0.5em
fr 数值 可以理解成比例值 1fr 2fr 3fr

网格容器属性

属性 说明 示例
grid-template-columns 生成列数 grid-template-columns:10em 10em 10em
grid-template-rows 生成行数 grid-template-rows:auto auto auto

行列生成时参数示例

  1. 10em 10em 10em; 生成三列宽度都是 10em
  2. 1fr 1fr 1fr;按比例分 3 列并等宽,还会自动缩放
  3. 20% 60% 20%; 可以全是百分比
  4. auto auto auto;可以全是自动
  5. 1fr 20%; fr 与%可共存,先分配%,剩下的分给 fr
  6. fr 不要和 auto 同用
  7. repeat(3,10em); 此函数表示生成 3 列宽为 10em,第二个参数可以是多参数,如:1,2em 10em;表示生成 3 组 2em 和 10em 的行或列
  8. repeat(2,1fr) 2fr; 可以 fr 混写,
  9. minmax()函数做为参数值来用,它有两个参数(最小和最大)
    1fr minmax(20em,2fr) 2fr; 中间列的宽度最小是 20em,最大和右边的相同,总宽的 2/5

隐式轨道: 超出了网格单元数量的网格项目,它会以最小占距显示, 要和前面的项目显示效果一样, 要单独设宽高
设置方法:

  • grid-auto-columns:1em 列宽
  • grid-auto-rows:1em 行宽

在网格单元中,排列优先级是:先行,后列
也可单独设置: grid-auto-flow: ros;行优先或为 column 时列优先

网格区域合并,自定义在容器内显示位置

grid-area: 行起值 / 列起值 / 行结束值 / 列结束值
该属性可以将项目移动或合并到任意位置. 1. 值中只有 span
1.1 单值: 跨的行数 grid-area: span 2; 总为合并上下两行.
1.2 双值: 跨的行与列数,如果只想设置列数,就必须设置行数(auto) 2. 值中有 span 和编号
2.1 双值: 没有 span,默认跨 1 行 1 列, grid-area: 2 / 3 ;
2.2 三值: 省了列结束编号或跨的数量,此时前面的值可使用 auto
2.3 四值: 完整语法

网格合并效果示例

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>grid属性演示</title>
  7. <style>
  8. .content {
  9. height: 20rem;
  10. display: grid;
  11. grid-template-columns: 1fr 1fr 1fr;
  12. grid-template-rows: 1fr 1fr;
  13. gap: 1em;
  14. background-color: lightskyblue;
  15. }
  16. .content div {
  17. border: 1px solid;
  18. background-color: sandybrown;
  19. }
  20. .content div:nth-of-type(1) {
  21. grid-column: 1 / span 2; /*从第1列开始,并合两列*/
  22. grid-row: 2; /*从第2行开始*/
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <h2>grid布局演示</h2>
  28. <div class="content">
  29. <div class="item1">item1</div>
  30. <div class="item2">item2</div>
  31. <div class="item3">item3</div>
  32. <div class="item4">item4</div>
  33. <div class="item5">item5</div>
  34. <div class="item6">item6</div>
  35. </div>
  36. </body>
  37. </html>
  38. html

grid网格布局示例

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post