加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

详解css3中dispaly的Grid布局与Flex布局

发布时间:2020-09-26 01:07:30 所属栏目:系统 来源:网络整理
导读:副标题#e# Gird布局与Flex布局有一定的相似性,都是对容器的内部项目进行划分。 Flex布局是轴线布局,只能指定项目针对轴线的位置,可以看作成一维布局 Grid布局则是将容器划分成行和列,产生单元格,然后指定项目所在的单元格,可以将它看成二维布局。 父

.content-box { display: grid; grid-template-columns: repeat(5, 160px); grid-template-rows: repeat(5, 160px); grid-auto-flow: row; } .box:nth-child(1) { grid-column-start: 1; grid-column-end: 4; } .box:nth-child(2) { grid-column-start: 1; grid-column-end: 4; }

在上图中,1号项目后面的位置是空的,这是因为3号项目默认跟着2号项目,所以会排在2号项目后面。当我们修改设置,设为row dense,表示“先行后列”,并且尽可能精密填满,尽量不出现空格。

.content-box { display: grid; grid-template-columns: repeat(5, auto); grid-template-rows: repeat(5, auto); grid-auto-flow: row dense; /* 避免出现空格 */ } .box:nth-child(1) { grid-column-start: 1; grid-column-end: 4; } .box:nth-child(2) { grid-column-start: 1; grid-column-end: 4; }

上图会先填满第一行,再填满第二行,所以3三号项目就会紧跟在1号项目的后面。

如果将设置改为column dense,表示“先列后行”,并且尽量填满空格。

.content-box { display: grid; grid-template-columns: repeat(5, auto); grid-template-rows: repeat(5, auto); grid-auto-flow: column dense; /* 避免出现空格 */ } .box:nth-child(1) { grid-column-start: 1; grid-column-end: 4; } .box:nth-child(2) { grid-column-start: 1; grid-column-end: 4; }

justify-items属性,align-items属性

justify-items属性设置单元格内容的水平位置(左中右),align-items属性设置单元格内容的垂直位置(上中下)。

这两属性的写法完全相同,都可以使用一下属性值。

.content-box { justify-items: start | end | center | stretch; align-items: start | end | center | stretch; }

start:对齐单元格的起始边缘。

单元格的内容左对齐,效果如下图。

.content-box { display: grid; grid-template-columns: repeat(5, 160px); grid-template-rows: repeat(5, 160px); justify-items: start; /* 对齐单元格的起始边缘 */ } .box { width: 100px; height: 100px; }

单元格的内容头部对齐,效果如下图。

.content-box { display: grid; grid-template-columns: repeat(5, 160px); grid-template-rows: repeat(5, 160px); align-items: start; /* 单元格的内容头部对齐 */ } .box { width: 100px; height: 100px; }

end:对齐单元格的结束边缘。

单元格的内容结束边缘对齐,效果如下图。

.content-box { display: grid; grid-template-columns: repeat(5, 160px); grid-template-rows: repeat(5, 160px); justify-items: end; /* 单元格的内容结束边缘对齐 */ } .box { width: 100px; height: 100px; }

center:单元格内部居中。

stretch:拉伸,占满单格的整个宽度(默认值)。

place-items属性

place-items属性是align-items属性和justify-items属性的合并简写形式。

place-items: <align-items> <justify-items>;

place-items: start end

如果省略第二个值,则浏览器认为与第一个值相等。

justify-content属性,align-content属性

justify-items属性是整个内容区域在容器里面的水平位置(左中右),align-items属性是整个内容区域的垂直位置(上中下)。

这两属性的写法完全相同,都可以使用一下属性值。

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读