【前端知识之CSS】flex弹性布局和grid网格布局

前言

本系列主要整理前端面试中需要掌握的知识点。本节介绍flex弹性布局和grid网格布局。

文章目录

  • 前言
  • 一、flex弹性布局
    • 1、flex弹性布局是什么
    • 2、容器的属性
    • 3、成员的属性
  • 二、grid网格布局
    • 1、grid布局是什么
    • 2、容器的属性
    • 3、项目属性


一、flex弹性布局

1、flex弹性布局是什么

在这里插入图片描述
对父盒子设置成弹性布局,他的所有子元素自动成为容器成员,称为flex项目item。容器中默认存在两条轴,主轴和交叉轴,呈90度关系。项目默认沿主轴排列,通过flex-direction来决定主轴的方向。每个轴都有自己的起点和终点。

2、容器的属性

容器属性名称属性意义属性可能的值
flex-direction决定item排列方向row,row-reverse,column,column-reverse
justify-contentitem在主轴上的对齐方式flex-start,flex-end,center,space-between,space-around
flex-wrap排列不下时,item如何换行nowrap,wrap,wrap-reverse
align-content侧轴上子元素的排列方式(多行)flex-start,flex-end,center,space-between,space-around,stretch
align-items侧轴上子元素的排列方式(单行)flex-start,flex-end,center,space-between,space-around,stretch
flex-flow复合属性相当于同时设置了flex-direction和flex-wrap
  1. flex-direction:决定主轴的方向
.container {   flex-direction: row | row-reverse | column | column-reverse;  
} 

(1)row(默认):主轴为水平方向,起点在左端;
(2)row-reverse:主轴为水平方向,起点在右端;
(3)column:主轴为垂直方向,起点在上沿;
(4)column-reverse:主轴为垂直方向,起点在下沿。
在这里插入图片描述
2. justify-content:在主轴上的对齐方式

.box {justify-content: flex-start | flex-end | center | space-between | space-around;
}

(1)flex-start(默认值):左对齐
(2)flex-end:右对齐
(3)center:居中
(4)space-between:两端对齐,项目之间的间隔都相等
(5)space-around:两个项目两侧间隔相等
在这里插入图片描述
3. flex-wrap:排列不下时,item如何换行。
(1)nowrap(默认值):不换行
(2)wrap:换行,第一行在下方
(3)wrap-reverse:换行,第一行在上方

  1. align-content :侧轴上子元素的排列方式(多行),如果项目只有一根轴线,该属性不起作用。
    (1)flex-start:与交叉轴的起点对齐
    (2)flex-end:与交叉轴的终点对齐
    (3)center:与交叉轴的中点对齐
    (4)space-between:与交叉轴两端对齐,轴线之间的间隔平均分布
    (5)space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍
    (6)stretch(默认值):轴线占满整个交叉轴

  2. align-items:定义项目在交叉轴上如何对齐
    (1)lex-start:交叉轴的起点对齐
    (2)flex-end:交叉轴的终点对齐
    (3)center:交叉轴的中点对齐
    (4)baseline: 项目的第一行文字的基线对齐
    (5)stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度

3、成员的属性

成员属性名称属性意义属性可能的值
order定义item的排列顺序整数,默认为0,越小越靠前
flex-grow当有多余空间时,item的放大比例默认为0,即有多余空间时也不放大
flex-shrink当空间不足时,item的缩小比例默认为1,即空间不足时缩小
flex-basis项目在主轴上占据的空间长度值,默认为auto
flexgrow,shrink,basis的简写默认值为0 1 auto
align-self单个item独特的对齐方式同align-items,可覆盖align-items属性

二、grid网格布局

1、grid布局是什么

grid布局是一个二维布局,由纵横相交的两组网格线形成的框架性布局结构,能够同时处理行与列。它擅长将一个页面划分为几个主要区域,以及定义这些区域的大小、位置、层次等关系。

<body><div class="container"><div class="item item-1"><p class="sub-item">p>div><div class="item item-2">div><div class="item item-3">div>div>
body>

.container元素是容器,.item就是项目,由于网格元素只能是容器的顶层子元素,所以p元素并不是网格元素。

2、容器的属性

容器属性名称属性意义属性可能的值
display网格容器类型grid,inline-grid
grid-template-columns列宽
grid-template-rows行高
grid-row-gap行间距
grid-column-gap列间距
grid-template-areas一个区域由一个或者多个单元格组成
grid-auto-flow划分网格以后,容器的子元素会按照顺序,自动放置在每一个网格。
justify-items,align-items单元格内容的水平位置,垂直位置start ,end,center,stretch
justify-content,align-content整个内容区域在容器里面的水平位置,垂直位置start ,end,center,stretch,space-around,space-between,space-evenly

3、项目属性

  1. grid-column-start 属性、grid-column-end 属性、grid-row-start 属性以及grid-row-end 属性
    指定网格项目所在的四个边框,分别定位在哪根网格线,从而指定项目的位置
    (1)grid-column-start 属性:左边框所在的垂直网格线
    (2)grid-column-end 属性:右边框所在的垂直网格线
    (3)grid-row-start 属性:上边框所在的水平网格线
    (4)grid-row-end 属性:下边框所在的水平网格线

  2. grid-area 属性:指定项目放在哪一个区域,与上述讲到的grid-template-areas搭配使用。

  3. justify-self 属性、align-self 属性以及 place-self 属性:
    (1)justify-self属性设置单元格内容的水平位置(左中右),跟justify-items属性的用法完全一致,但只作用于单个项目。
    (2)align-self属性设置单元格内容的垂直位置(上中下),跟align-items属性的用法完全一致,也是只作用于单个项目。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部