<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg>
讯享网
CSS Grid布局,简称为Grid,是CSS的一个二维布局系统,它能够处理行和列,使得网页布局变得更加直观和强大。与传统的布局方式相比,Grid能够轻松实现复杂的页面结构,而无需繁琐的浮动、定位或是使用多个嵌套容器。
- Container (容器):设置display: grid的元素就是容器。
- Item (项目):容器内的直接子元素。
- Grid lines (网格线):划分行和列的线条,可以想象成坐标轴。
- Row (行):两个水平网格线之间的空间
- Column (列):两个垂直网格线之间的空间
- Cell (单元格):水平线和垂直线交叉构成的每个区域。
- Grid Tracks (网格轨道):两条相邻网格线之间的空间。
- Grid Area (网格区域):四条网格线围成的空间,可以是行或列。本质上,网格区域一定是矩形的。例如,不可能创建T形或L形的网格区域。
什么是显式网格和隐式网格?
讯享网
- 显式网格(Explicit Grid)
显式网格是指通过明确声明的方式定义的网格。您可以通过 grid-template 属性来定义显式网格。
特点:- 显式定义行和列:显式网格允许您明确地定义行和列的数量和大小
- 命名网格线:您可以为网格线命名,以便更灵活地引用它们。
- 固定的结构:显式网格的结构通常是固定的,除非通过媒体查询或其他方式动态调整。
- 隐式网格(Implicit Grid)
隐式网格是在显式网格之外自动生成的网格。当显式网格不足以容纳所有项目时,CSS Grid 会自动生成额外的行和列来放置剩余的项目。
特点:- 自动生成行和列:隐式网格会在显式网格的基础上自动生成行和列,以确保所有项目都能被放置
- 自动命名网格线:隐式网格线会自动命名,如 1 / 2、2 / 3 等
- 动态扩展:隐式网格可以根据需要动态扩展,以适应更多的项目。
单位 案例
- none: 表示没有显式的列轨道,任何列都将隐式生成,并且它们的大小将由 grid-auto-columns 属性确定。
- [linenane] :来定义和引用网格线, 更精确地控制网格项在网格中的位置
- length: 固定单位及百分比px, pt,vh, rem,。
- percentage: 百分比: %
- flex: 弹性系数 fr, 每个项目会根据弹性系数按比例分配剩余空间
- max-content、min-content、fit-content: 以内容的最大宽度来定义。内容最小,适应内容。
- minmax(min,max)
- auto: 注意:网格轨道大小为 auto(且只有为 auto)时,才可以被属性 align-content 和 justify-content 拉伸。
- repeat()、
第一个参数:数字
auto-fill:可用空间内创建尽可能多的网格,并在必要时压缩元素以填充空间(适合于需要灵活适应数量不同屏幕尺寸和元素的场景)
auto-fit:容器宽度超出了元素所需宽度,会拉伸元素来填充容器,确保每行网格数最多等于元素个数(适合于固定数量的元素需要显示在每一行的情况)
注意: auto-fill auto-fit 必须在容器宽度足够大, 元素不换行的情况下才能看出区别第二个参数
长度值,可使用单位包括vh、fr、px、em、%、ch等
min-content
max-content
auto
minmax()函数,其可以嵌套min()或者max()函数
fit-content()函数
命名线常见用法:
repeat(2, 20px): 等价于 20px 20px
repeat(2, 20px 1fr 90px), 等价于 20px 1fr 90px 20px 1fr 90px
repeat(auto-fit, 20px), 以宽度20px 自适应布局。
容器属性
grid:显式网格属性、隐式网格属性简写
显式网格属性
- grid-template
- grid-template-rows: 指定行网格线名称和轨道尺寸
- grid-template-columns: 指定列网格线名称和轨道尺寸
- grid-template-areas: 指定网格区域特定命名
- 用法
隐式网格属性
- grid-auto-columns: 指定纵向隐式轨道的宽度
- grid-auto-rows: 指定隐式行轨道的高度
- 用法
讯享网
间隔属性
- gap: <行间距> <列间距>
- row-gap: 行间距
- column-gap: 行间距
- 用法
grid-auto-flow: 自动布局算法
属性:
讯享网
用法
对齐方式:
place-content:网格容器中网格项的对齐方式 <垂直,水平>
- 属性:
- align-content:(纵向轴)水平对齐方式
- justify-content:(行向轴)水平对齐方式
- 取值:
- start: 默认值,元素位于其容器的起始位置。
- end: 元素位于其容器的末尾。
- center: 元素位于其容器的中心。
- space-between: 元素之间有相同的间距,两端对齐。
- space-around: 元素周围有相同的间距,元素之间有相同的间距。
- space-evenly: 元素周围有相同的间距,元素之间有相同的间距,但两端会有更少的间距。
place-items:所有网格项在其单元格内的对齐方式 <垂直,水平>
- 属性:
- align-items 垂直对齐方式
- justify-items 水平对齐方式
- 取值:
- start: 对齐到单元格的起始边缘
- end: 对齐到单元格的结束边缘
- center: 对齐到单元格的中心
- stretch: 默认值,元素拉伸以填充单元格。
项目属性
grid-area 位置属性
- 属性:
- grid-row 参数:line (位置) | span(跨几行)
- grid-row-start:指定网格项的起始行位置。
- grid-row-end:指定网格项的结束行位置。
- grid-column 参数:line (位置) | span(跨几列)
- grid-column-start:指定网格项的起始列位置。
- grid-column-end:指定网格项的结束列位置。
- 用法
- 简写形式: row-start / col-start / row-end / col-end;
讯享网
- 命名区域:
项目对齐方式:place-self: <垂直,水平>
- 属性:
- justify-self:水平。
- align-self: 垂直
- 取值:
- start: 对齐到单元格的起始边缘
- end: 对齐到单元格的结束边缘
- center: 对齐到单元格的中心
- stretch: 默认值,元素拉伸以填充单元格。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/163027.html