grid布局justify-items和align-items、justify-content和align-content

默认值

justify-items的默认值: stretch;

align-items的默认值: stretch;

表示项目会伸展占据网格单元内的可用空间。

justify-items:控制项目在网格单元内水平方向的对齐

justify-items: start(左边对齐) || center(中间对齐) || end(右边对齐)

align-items:控制项目在网格单元内垂直方向的对齐

align-items: start(顶部对齐) || center(中间对齐) || end(底部对齐)

css 复制代码
.container{
    display: grid;
    border: 2px solid red;
    grid-template-columns: repeat(3, 150px);
    grid-template-rows: repeat(3, 300px);
    /* 表示行与行之间间距10px;列与列之间产生间距20px */
    /* 垂直方向上的间距和水平反向上的间距 */
    gap: 10px 20px;
    justify-items: stretch;
    align-items: stretch;
}

justify-items: start(左边对齐)

css 复制代码
.container{
    display: grid;
    border: 2px solid red;
    grid-template-columns: repeat(3, 150px);
    grid-template-rows: repeat(3, 300px);
    /* 表示行与行之间间距10px;列与列之间产生间距20px */
    /* 垂直方向上的间距和水平反向上的间距 */
    gap: 10px 20px;
    // 水平方向左对齐
    justify-items: start;
}
.item{
    background: pink;
}

align-items:start(顶部对齐)

css 复制代码
.container{
    display: grid;
    border: 2px solid red;
    grid-template-columns: repeat(3, 150px);
    grid-template-rows: repeat(3, 300px);
    /* 表示行与行之间间距10px;列与列之间产生间距20px */
    /* 垂直方向上的间距和水平反向上的间距 */
    gap: 10px 20px;
    align-items:  start;
}
.item{
    background: pink;
}

单独设置项目(子元素)的对齐方式

我可以在grid项目(子元素)上使用justify-self和align-self。

来覆盖容器中justify-items和align-items的值

设置第1个子元素水平垂直居中

css 复制代码
 .container{
    display: grid;
    border: 2px solid red;
    grid-template-columns: repeat(3, 150px);
    grid-template-rows: repeat(3, 300px);
    /* 表示行与行之间间距10px;列与列之间产生间距20px */
    /* 垂直方向上的间距和水平反向上的间距 */
    gap: 10px 20px;
    align-items:  start;
}
.item{
    background: pink;
}
.item-1{
    justify-self: center;
    align-self: center;
}

justify-content 控制所有项目的水平对齐方式

justify-content控制所有项目在水平方向的对齐默认值是start

justify-content: start(左边对齐) || center(中间对齐) || end(右边对齐)

space-between(两端对齐)

space-between(两端对齐,列与列之间的距离是两端距离的两倍)

space-evenly(将网格容器中剩余的水平空间,进行完全均等的分配);

整个项目是右对齐的:justify-content: end;

css 复制代码
.container{
    display: grid;
    border: 2px solid red;
    grid-template-columns: repeat(3, 150px);
    grid-template-rows: repeat(3, 300px);
    /* 表示行与行之间间距10px;列与列之间产生间距20px */
    /* 垂直方向上的间距和水平反向上的间距 */
    gap: 10px 20px;
    align-items:  start;
    /* 整个项目是右对齐的 */
    justify-content: end;
}
.item{
    background: pink;
}
.item-1{
    justify-self: center;
    align-self: center;
}

将网格容器中剩余的水平空间,进行完全均等的分配 :justify-content: space-evenly;

css 复制代码
.container{
    display: grid;
    border: 2px solid red;
    grid-template-columns: repeat(3, 150px);
    grid-template-rows: repeat(3, 300px);
    /* 表示行与行之间间距10px;列与列之间产生间距20px */
    /* 垂直方向上的间距和水平反向上的间距 */
    gap: 10px 20px;
    align-items:  start;
    /* 整个项目是右对齐的 */
    justify-content: space-evenly;
}
.item{
    background: pink;
}
.item-1{
    justify-self: center;
}

align-content控制所有项目在垂直方向的对齐

align-content的值: start:靠上。

end:靠下。

center:居中。

stretch(默认):拉伸轨道填满容器。 space-between:上下边缘贴边,中间均分。

space-around:上下间距是中间的一半。

space-evenly:上下边缘与中间间距完全相等。

align-content:center 垂直居中

css 复制代码
.container{
    display: grid;
    border: 2px solid red;
    grid-template-columns: repeat(3, 150px);
    grid-template-rows: repeat(3, 200px);
    /* 表示行与行之间间距10px;列与列之间产生间距20px */
    /* 垂直方向上的间距和水平反向上的间距 */
    gap: 10px 20px;
    /* 让容器高度大于所有内容 */
    height: 900px; 
    /*  align-content:center 垂直居中 */
    align-content: center;
}
.item{
    background: pink;
}
.item-1{
    justify-self: center;
    align-self: center;
}

align-content: space-evenly;上下边缘与中间间距完全相等;

css 复制代码
.container{
    display: grid;
    border: 2px solid red;
    grid-template-columns: repeat(3, 150px);
    grid-template-rows: repeat(3, 200px);
    /* 表示行与行之间间距10px;列与列之间产生间距20px */
    /* 垂直方向上的间距和水平反向上的间距 */
    gap: 10px 20px;
    /* 让容器高度大于所有内容 */
    height: 900px; 
    /*  上下边缘与中间间距完全相等;进行完全均等的分配*/
    align-content: space-evenly;
}
.item{
    background: pink;
}
.item-1{
    justify-self: center;
    align-self: center;
}

place-item 是 align-items 和 justify-items的复合写法

place-item: 垂直方向上的对齐方式 水平方向上的对齐方式;

place-item: align-items的取值 justify-items的取值;

使用 place-item 设置垂直居中和水平居中

css 复制代码
.container{
    display: grid;
    border: 2px solid red;
    grid-template-rows: 100px 100px 100px;
    grid-template-columns:100px 100px 100px ;
    grid-gap: 20px 30px;
    /* 元素纵向排列 */
    grid-auto-flow: column;
    place-items: center center;
}

place-content是 align-content 和 justify-content的复合写法

place-content: align-content的取值 justify-content的取值

-items 和 -content 的对齐区别

*-items:单个项目的对齐,调整网格项目在其自身单元格内部的位置。

align-items和justify-items就是调整项目在这个小盒子里的位置

*-content:整体网格的对齐,调整所有网格作为一个整体在容器中的位置。(当容器有剩余空间时生效)

-content决定的是所有网格轨道作为一个整体在容器中的对齐。

这只有在所有网格轨道的尺寸小于容器尺寸时才会生效(当容器有剩余空间时生效)

相关推荐
庄园特聘拆椅狂魔42 分钟前
Java 后端转全栈的第一课:从前端项目搭建到技术选
java·开发语言·前端
triumph_passion1 小时前
前端路由策略:Memory、Hash 与 History
前端
李剑一1 小时前
AntDesign老版本没有月份和年份区间选择组件?我封装了一个完美版,附源码!
前端·vue.js
牧艺1 小时前
浏览器端 3D 看车重磅升级:从三款展车到可试驾的八车展厅
前端·three.js·交互设计
老男孩游戏时光1 小时前
Electron 桌面应用开发入门,前端也能写客户端
前端
默_笙1 小时前
🚊 别再让 AI 的记忆写两遍了:PostgreSQL 把关系查询和语义检索装进一张表
前端·javascript
进击的明明1 小时前
TypeScript速通笔记(下)
前端·面试·typescript
lzhdim1 小时前
C#不为人知的10个魔法特性:资深开发者也会震惊的底层奥秘
java·前端·javascript·算法·c#
zach2 小时前
前端落地实战:Next.js 项目 Nginx + PM2 生产部署全流程(附踩坑总结)
前端·pm2·next.js
overmind2 小时前
oeasy教h5前端001 修改的乐趣_直接修改在线网页
前端