#Css篇:flex布局的总结容器和项目

注意,设为flex布局以后,子元素的float、clear、vertical-align属性将失效。

其子元素的定位和对齐方式将不再受传统的流式布局(如浮动float、清除clear以及垂直对齐vertical-align等属性)控制,而是由Flex布局特有的属性来决定。

概念

采用flex布局的元素,简称"容器"。内部的子元素,简称"项目"。

  1. 容器存在两根轴,水平主轴main axis,开始叫 main start;结束叫 main end

    复制代码
    垂直交叉轴cross axis,开始叫 cross start;结束叫 cross end

    项目默认沿水平主轴排列

容器属性六个

第一个flex-direction 及沿着x轴布局还是沿着y轴布局
css 复制代码
.box {
  flex-direction: row | row-reverse | column | column-reverse;
}
属性4个水平方向
1 row 默认,主轴为水平方向,七点在左端
2 row-reverse 主轴为水平方向,起点在右端
3 column 主轴为垂直方向,起点在上端
4 column-reverse 主轴为垂直方向,起点在下端
第二个flex-warp
css 复制代码
.box{
  flex-wrap: nowrap | wrap | wrap-reverse;
}
属性3个水平方向
1 nowarp 默认,不换行
2 wrap 换行
3 wrap-reverse 换行颠倒
第三个flex-flow

flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap。

css 复制代码
.box {
  flex-flow: <flex-direction> || <flex-wrap>;
}
第四个justify-content
css 复制代码
.box {
  justify-content: flex-start | flex-end | center | space-between | space-around | space-evenly;
}
属性6个水平方向
1 flex-start 默认,水平方向,左对齐
2 flex-end 右对齐
3 center 居中
4 space-between 两端对齐,项目之间的距离平均分配间距
5 space-around 每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍
6 space-evenly 所有子元素之间的间距完全相等,包括容器首尾两端的间距。每个子元素左右两边的间距都是相同的。
第五个align-items
css 复制代码
.box {
  align-items: flex-start | flex-end | center | baseline | stretch;
}
属性5个垂直方向
1 stretch 默认,如果项目未设置高度或设为auto,将占满整个容器的高度
2 flex-start 上端
3 flex-end 下端
4 center 垂直居中
5 baseline 第一个项目文字的基线对齐
第六个align-content
align-content 项目在水平轴和交叉轴的堆砌方式

项目属性6个

6个属性

order

flex-grow

flex-shrink

flex-basis

flex

align-self

order数值越大越靠左靠前 属性取值为整数,可以是正数、负数或0。
flew-grow默认为0(不会放大),定义项目的放大比例
flex-shrink默认1(会缩放),定义项目的缩放比例,设置为0不会缩放
flex-basis

flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。

flex为flex-grow flex-shrink flex-basis 默认为 flex: 0 1 auto

flex:1

复制代码
flex-grow: 1:表示项目会等分可用空间,自动放大。
flex-shrink: 1:表示项目允许缩小,当空间不足时会等比例缩小。
flex-basis: 0%:表示项目的初始尺寸为 0,会根据 flex-grow 来自动分配空间。

flex:2

复制代码
flex-grow: 2:表示项目会在可用空间中放大的比例为 2。
flex-shrink: 1:表示项目允许缩小,当空间不足时会等比例缩小。
flex-basis: 0%:表示项目的初始尺寸为 0,会根据 flex-grow 来自动分配空间。

align-self:属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。

该属性可能取6个值,除了auto,其他都与align-items属性完全一致。

css 复制代码
align-self: auto | flex-start | flex-end | center | baseline | stretch;
相关推荐
努力成为AK大王16 小时前
CSS 入门完整笔记
前端·css
神明不懂浪漫1 天前
【第四章】CSS(二)——文本外观属性与复合选择器
前端·css·经验分享·笔记
H Journey2 天前
web开发学习:html、css、js
前端·css·html·js
用户059540174462 天前
AI Agent 记忆存储踩坑实录:这个问题让我排查了 3 天,最终用 pytest + Docker 实现秒级回归
前端·css
今日无bug2 天前
Emmet 语法速成指南
前端·css·html
Hello.Reader2 天前
Tailwind CSS v4.3 从入门到实战Vite 安装、响应式布局、暗黑模式与主题配置
前端·css
cxxcode3 天前
CSS Loader 与样式处理链路
前端·css
CappuccinoRose3 天前
CSS、Less、Sass(含 SCSS)、Stylus
前端·css·less·sass·stylus
用户059540174464 天前
把前端内存泄漏排查从2小时压到5分钟,我们把它集成进了CI
前端·css
zhanghaofaowhrql6 天前
为CSDN博客编辑器安装自定义CSS主题,打造个性化写作界面
前端·css·编辑器