flex布局与grid布局

  • Post author:
  • Post category:其他





css布局



position布局

relative:相对于原位置来调整top,right,left,bottom且不会影响其他元素。

fixed:相对于视窗来定位;

absolute:相对于最近的“positioned”祖先元素除了static定位。如果绝对定位(position属性的值为absolute)的元素没有“positioned”祖先元素,那么它是相对于文档的 body 元素



float布局

使用漂浮后还是相对于父元素定位,但是可以溢出父元素;而且不会对文字造成影响,如果不溢出父元素的话,文字自动包围浮动块级元素。

另外浮动元素会使块级元素失去display:block;使两个会计元素位列与同一行。

若要是使浮动元素不溢出盒子,则需要令父元素盒子加上样式

overflow:auto;

(但是会有滚动条一个缺点是,在外部元素上使用边距和填充的某些组合可能会导致滚动条出现,但这可以通过将边距和填充放在另一个包含父元素的元素上来解决。)

清理浮动




display布局

主要是改变

行,块

状态




flex布局




位置



flex-direction属性

flex-direction属性决定主轴的方向(即项目的排列方向)



flex-wrap属性

默认情况下,项目都排在一条线(又称”轴线”)上。flex-wrap属性定义,如果一条轴线排不下,如何换行。



justify-content属性

justify-content属性定义了项目在主轴上的对齐方式。



align-items属性

align-items属性定义项目在交叉轴上如何对齐。



align-self属性(控制单个项目的位置)




比例



flex-grow属性(存在剩余空间时起作用)

flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。



flex-shrink属性(空间不足时起作用)

flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。





Flex 布局教程:实例篇





grid布局

它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局。


(关键是要指定行与列)



grid-template-columns属性

定义每一列的列宽



grid-template-rows 属性

定义每一行的行高。



auto-fill 关键字

单元格的大小是固定的,但是容器的大小不确定。如果希望每一行(或每一列)容纳尽可能多的单元格,这时可以使用auto-fill关键字表示自动填充。



fr 关键字

如果两列的宽度分别为1fr和2fr,就表示后者是前者的两倍。



grid-row-gap 属性

grid-row-gap属性设置行与行的间隔(行间距)



grid-column-gap 属性

grid-column-gap属性设置列与列的间隔(列间距)



grid-template-areas 属性

网格布局允许指定”区域”(area),一个区域由单个或多个单元格组成。grid-template-areas属性用于定义区域。

.container {
  display: grid;
  grid-template-columns: 100px 100px 100px;
  grid-template-rows: 100px 100px 100px;
  grid-template-areas: 'a b c'
                       'd e f'
                       'g h i';
                       //上面代码先划分出9个单元,然后将其定名为a到i的九个区域,分别对应这九个单元格。
}



grid-auto-flow 属性

主要用于填满容器内的空格

划分网格以后,容器的子元素会按照顺序,自动放置在每一个网格。默认的放置顺序是”先行后列”,即先填满第一行,再开始放入第二行,即下图数字的顺序。



justify-items 属性

(指项目里面的内容位置)

属性设置单元格内容的水平位置(左中右)



align-items

置单元格内容的垂直位置(上中下)



justify-content 属性

(指容器里面的项目位置)


而且要在容器的width属性大于一行的width时起作用



整个内容区域在容器里面的水平位置(左中右)



align-content 属性

(指容器里面的项目位置)


而且要在容器的height属性大于一列的height时起作用



整个内容区域的垂直位置(上中下)



grid-auto-columns 属性,grid-auto-rows 属性

用于处理新增或者多余的网格的长宽。若不设置的话就会由浏览器据其内容决定长宽。



项目的起始位置

grid-column-start属性:左边框所在的垂直网格线

grid-column-end属性:右边框所在的垂直网格线

grid-row-start属性:上边框所在的水平网格线

grid-row-end属性:下边框所在的水平网格线

可以指定网格线,也可以指定网格线名字


关键字span

表示”跨越”,即左右边框(上下边框)之间跨越多少个网格



grid-area 属性

决定项目放在哪一个单元格中



justify-self 属性

在水平位置上用于单个项目间内容上的调整



align-self 属性

再垂直位置上调整单个项目的内容



版权声明:本文为GdutLq原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。