flex布局:
弹性盒子由弹性容器(Flex container)和弹性子元素(Flex item)组成。
弹性盒子只定义了弹性子元素如何在弹性容器内布局。
弹性容器通过设置 display 属性的值为 flex 或 inline-flex将其定义为弹性容器。
弹性容器内包含了一个或多个弹性子元素。
flex-direction
: 指定了弹性子元素在父容器中的排列方式。
flex-direction: row | row-reverse | column | column-reverse
justify-content
:把弹性项沿着弹性容器的主轴线对齐
justify-content: flex-start | flex-end | center | space-between | space-around
align-items
:设置弹性盒子元素在侧轴(纵轴)方向上的对齐方式。
align-items: flex-start | flex-end | center | baseline | stretch
flex-wrap
: 用于指定弹性盒子的子元素换行方式。
flex-wrap: nowrap|wrap|wrap-reverse|initial|inherit;
align-content
: 用于修改 flex-wrap
属性的行为。类似于 align-items
, 但它不是设置弹性子元素的对齐,而是设置各个行的对齐。
align-self
:属性用于设置弹性元素自身在侧轴(纵轴)方向上的对齐方式。
align-self: auto | flex-start | flex-end | center | baseline | stretch
grid布局:
网格是一组相交的水平线和垂直线,它定义了网格的列和行。
CSS 提供了一个基于网格的布局系统,带有行和列,可以让我们更轻松地设计网页,而无需使用浮动和定位。
grid-template-columns 和 grid-template-rows 属性来定义网格中的列和行。
fr
:一个fr单位代表网格容器中可用空间的一等份,grid-template-columns:1fr 1fr 1fr;
定义了一个网格定义将创建三个相等宽度的轨道,这些轨道会随着可用空间增长和收缩。
grid-column-gap
:设置列之间的网格间距
grid-row-gap
:设置行之间的网格间距
grid-gap
:属性是 grid-row-gap 和 the grid-column-gap 属性的简写:grid-gap: 50px 100px;
网格线是设置网格元素的重要参考标准;列与列,行与行之间的交接处就是网格线。
grid-column-start
:设置一个网格元素的网格线从哪一列开始
grid-column-end
:设置一个网格元素的网格线到哪一列结束
grid-row-start
:设置一个网格元素的网格线从哪一行开始
grid-row-end
:设置一个网格元素的网格线到哪一行结束
justify-content
:用于对齐容器内的网格,设置如何分配顺着弹性容器主轴(或者网格行轴) 的元素之间及其周围的空间。
网格的总宽度必须小于容器的宽度才能使 justify-content 属性生效
justify-content:space-evenly || space-around || space-between || center || start || end;
align-content
: 用于设置垂直方向上的网格元素在容器中的对齐方式。
align-content:space-evenly || space-around || space-between || center || start || end;
grid-area
: 是 grid-row-start, grid-column-start, grid-row-end 以及 grid-column-end 属性的简写。
grid-area: 1 / 2 / 5 / 6; 从第 1 行开始和第 2 列开始, 第 5 行和第 6 列结束。
grid-area: 2 / 1 / span 2 / span 3; 从第 2 行开始和第 1 列开始, 横跨 2 行 3 列。
网格元素命名:
grid-area 属性可以对网格元素进行命名。
命名的网格元素可以通过容器的 grid-template-areas 属性来引用。
.item{
grid-area: myArea;
}
.grid-container{
grid-template-areas: 'myArea myArea . . .' 'myArea myArea . . .';
}
表示item跨越了2行2列,''表示行,''里面的个数表示列,. 号表示没有名称的网格项。