- Objective: - Breadcrumb: CSS 排版 # 概念阐释 Grid是一种二维布局方式,从两个维度(横向和纵向)将元素排列整齐。 ```css display:grid; gap: 网格之间的间距 grid-template-columns: repeat(num,minmax(0,fr))/*数字定义了网格的列,minmax的意思是每列的宽度可以在在0与多少分数单位之间变化*/ ``` # 实例 ```css .list-cards div > ul { display: grid;/*将选定的 ul 元素的显示类型设置为网格(grid),用于创建一个网格布局。*/ gap: 8px;/*在网格项之间设置 8 像素的间距。*/ grid-template-columns: repeat(3, minmax(0, 1fr));/*定义了两列的网格布局。每列的宽度可以在 0 和 1fr(fraction unit,分数单位)之间变化。`repeat(2, minmax(0, 1fr))` 使两列具有相同的宽度。*/ } /* 第一个li变成了一个个的卡片 */ .list-cards div > ul > li { display: flex;/*将选定的 li 元素的显示类型设置为弹性盒子(flexbox),用于创建一个弹性盒子布局。相当于flex-container*/ } .list-cards div > ul > li:has(ul) {/*如果li下有ul*/ flex-direction: column;/*将弹性盒子的主轴设置为垂直方向。相当于flex item*/ } ``` # 相关内容 [[CSS Flexbox]]是一维布局方式,设计横向或者纵向的布局。 #### 网格高度 ```css /* 为每一行设置明确的高度 */ .grid-container { display: grid; grid-template-rows: 100px 200px 300px; } /* 为三行设置相同的高度 */ .grid-container { display: grid; grid-template-rows: repeat(3, 100px); } /*自动创建的行,而不是固定好多少行,自动设定高度*/ .grid-container { display: grid; grid-auto-rows: 100px; } /*用fr设定不同行的倍数*/ .grid-container { display: grid; grid-template-rows: 1fr 2fr 1fr; } /*`minmax` 函数允许你为每行设置一个最小和最大高度。这可以确保行的高度在一个特定的范围内,而不会变得太大或太小。*/ .grid-container { display: grid; grid-template-rows: minmax(100px, 200px) minmax(150px, 300px); } ``` # 参考资料 [CSS布局介绍-MDN](https://developer.mozilla.org/zh-CN/docs/Learn/CSS/CSS_layout/Introduction#%E6%80%BB%E7%BB%93)