CSS网格布局模块(CSS Grid Layout Module)提供了带有行和列的基于网格的布局系统,它使网页设计变得更加容易,而无需使用浮动和定位。当 HTML 元素的 display 属性设置为 grid 或 inline-grid 时,它就会成为网格容器。下面会从Grid容器属性、Grid项目属性、Grid网格模版分开讲解。
.grid-container {display: grid;} / .grid-container {display: inline-grid;}
Grid 布局与 Flex 布局有一定的相似性,都可以指定容器内部多个项目的位置。但是,它们也存在重大区别。Flex 布局是轴线布局,只能指定"项目"针对轴线的位置,可以看作是一维布局。Grid 布局则是将容器划分成"行"和"列",产生单元格,然后指定"项目所在"的单元格,可以看作是二维布局。Grid 布局远比 Flex 布局强大。
<style type="text/css"> .grid-container {display: grid;grid-template: "a a a" 1fr "b c c" 1fr "b c c" 1fr "b d d" 1fr; } .grid-item {margin:10px;background:#ccc;padding:.8em;display:flex;align-items:center;justify-content:center;font-size:50px;} </style> <div class="grid-container"> <div class="grid-item" style="grid-area: a;">A</div> <div class="grid-item" style="grid-area: b;">B</div> <div class="grid-item" style="grid-area: c;">C</div> <div class="grid-item" style="grid-area: d;">D</div> </div>