Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Flex布局

Flex布局

作者头像
且陶陶
发布于 2023-04-12 07:17:25
发布于 2023-04-12 07:17:25
1.5K00
代码可运行
举报
文章被收录于专栏:Triciaの小世界Triciaの小世界
运行总次数:0
代码可运行

Flex(Flexible Box):弹性布局

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

优点:

  • 是浏览器提倡的一种布局模型
  • 更加灵活简便
  • 可以避免脱标问题
  • 弹性盒子中行内元素也能设置宽高

指定flex布局:

容器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
display:flex;

行内元素

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
display:inline-flex;

Webkit内核浏览器,必须加上 -webkit 前缀

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
display:-webkit-flex;

设置给容器的属性:

  1. flex-direction

改变主轴方向

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
flex-direction:row | row-reverse | column | column-reverse
  • row (默认值):主轴为水平方向,起点在左端。
  • row-reverse :主轴为水平方向,起点在右端。
  • column :主轴为垂直方向,起点在上沿。
  • column-reverse :主轴为垂直方向,起点在下沿。

        2.  flex-wrap

决定一行排不下如何换行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
flex-wrap: nowrap | wrap | wrap-reverse;
  • nowrap(默认):不换行
  • wrap:换行,第一行在上方。
  • wrap-reverse:换行,第一行在下方。

        3. flex-flow

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
flex-flow: <flex-direction> || <flex-wrap>;

        4. justify-content

决定主轴方向如何对齐

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
justify-content: flex-start | flex-end | center | space-between | space-around | space-evenly;
  • flex-start (默认值):左对齐
  • flex-end :右对齐
  • center : 居中
  • space-between :两端对齐,项目之间的间隔都相等。
  • space-around :每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。
  • space-evenly:项目所有间距相等

        5. align-items

定义垂直方向如何让对齐

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
align-items: flex-start | flex-end | center | baseline | stretch;
  • flex-start :交叉轴的起点对齐。
  • flex-end :交叉轴的终点对齐。
  • center :交叉轴的中点对齐。
  • baseline : 项目的第一行文字的基线对齐。
  • stretch (默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。

        6. align-content

定义了多根轴线方式,如果项目只有一根轴线,则不起作用。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
align-content: flex-start | flex-end | center | space-between | space-around | stretch;
  • flex-start:与交叉轴的起点对齐。
  • flex-end:与交叉轴的终点对齐。
  • center:与交叉轴的中点对齐。
  • space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。
  • space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
  • stretch(默认值):项目充满整个高度

7.  ​align-self属性 ( 写在子元素里

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
align-self: auto | flex-start | flex-end | center | baseline | stretch;

设置给项目的属性:

 1.   ​align-self属性 ( 写在子元素里

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
align-self: auto | flex-start | flex-end | center | baseline | stretch;

2. order:

定义项目排列顺序,数值越小,排列越靠前,默认为0(可以取负值)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
order: <integer>;

3. flex-grow:

定义项目的放大比例,默认为0(如果存在剩余空间,也不放大)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
flex-grow: <number>; /* default 0 */

如果设置属性,则占满剩余空间。

4. flex-shrink

定义项目缩小比例,默认为1(如果空间不足,将项目缩小)(不可以取负值,可以取0)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
flex-shrink: <number>; /* default 1 */
  • 如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小。
  • 如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小。

5. flex-basis属性

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
flex-basis: <length> | auto; /* default auto */

flex属性连写:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
flex: flex-grow flex-shrink  flex-basis

默认值为 0 1 auto 。后两个属性可选。

伸缩比

设置了弹性容器,但是子盒子没有设置宽度,则由内容撑开。

flex: 数值;

表示占据剩余空间的多少

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   .box {
            display: flex;
            width: 350px;
            height: 300px;
            border: 1px solid #000;
        }
        .box div {  
            /* 子盒子没有设置宽度,则由内容撑开 */
            height: 200px;
            background-color: pink;
        }
        .box div:nth-child(1) {
            width: 50px;
        }
        /* 第二个盒子和第三个盒子一共占据剩余空间的.其中第二个盒子占一份,第三个盒子占两份 */
        /* 也就是剩余空间宽度为350-50 = 300px    2盒子占100px  3盒子占200px */
        .box div:nth-child(2) {
            /* 设置子盒子的伸缩比 */
            flex: 1;
            border: 1px solid red;
            /* 1表示占父容器的剩余空间的一份 */
        }
        .box div:nth-child(3){
            flex: 2;
            border: 1px solid green;
            /* 2表示占父容器的剩余空间的两份 */
        }

参考: Flex 布局教程:语法篇 - 阮一峰的网络日志

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
看完这篇,对flex布局还不熟悉,那就来找我(flex布局最全详解)
传统的页面布局,基于盒子模型margin + border + padding + content,依赖 display + position + float。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。
javascript艺术
2021/05/28
9K0
看完这篇,对flex布局还不熟悉,那就来找我(flex布局最全详解)
Flex Box布局学习- 语法
上一篇,我学习并整理了使用flex时,需要注意的兼容性问题。那么今天就来学习一下有关flex语法的东西。
贺贺V5
2018/08/21
8200
Flex Box布局学习- 语法
flex 布局(弹性布局 / 弹性盒子)一直没学明白,看完这篇文章我彻底懂了
注:CRMEB 附件包已放在文章最下方,需要的可以下载,希望在互联网的道路上对你有所启发和帮助
CRMEB商城源码
2022/08/19
5820
弹性盒子(display: flex)布局超全讲解|Flex 布局教程
弹性布局(Flex布局)是一种现代的CSS布局方式,通过使用display: flex属性来创建一个弹性容器,并在其中使用灵活的盒子模型来进行元素的排列和定位。
肥晨
2023/06/27
15.8K0
CSS Flex弹性布局详解! (常用的12个属性)
这期是我陆陆续续花了几个小时的时间为大家整理的Flex 弹性布局方法,主要讲了Flex布局的12个常见属性,以及文章最后的一个简单的小案例及其答案,希望对大家有帮助。
用户9999906
2022/09/26
16.3K0
CSS弹性布局(Flex) 详解
flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap
田小檬
2023/08/24
1.3K0
Flex 布局教程:语法篇
网页布局(layout)是 CSS 的一个重点应用。 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂
ruanyf
2018/04/13
8250
Flex 布局教程:语法篇
总结一下CSS3中的Flex布局语法
Flex 布局有时候会用到,但是始终分不清楚其中的部分属性及其含义,所以用这篇博客专门总结一下 Flex 布局。
知识分子没文化
2023/07/01
4480
总结一下CSS3中的Flex布局语法
CSS3中Flex布局(弹性布局)
Flex是Flexible Box的缩写,就是灵活的弹性页面布局。 作用是为盒子模型提供强大的灵活性功能;
Javanx
2019/09/04
6480
CSS3中Flex布局(弹性布局)
flex布局 原
Flex是Flexible Box的缩写,意为弹性布局,用来为盒状模型提供最大的灵活性。在处理垂直方向的对齐比较方便,现在越来越多的浏览器已经支持flex布局,最近出的轻应用也都是flex布局,对于前端来说,学习flex布局还是非常必要的。
tianyawhl
2019/04/04
6890
flex布局
                                                                            原
FLEX布局
FLEX布局也称弹性布局,可以为盒状模型提供最大的灵活性,是布局的首选方案,现已得到所有现代浏览器的支持。
WindRunnerMax
2020/08/27
1.4K0
flex布局——回顾
flex 即为弹性布局。   任何一个容器都可以指定为flex布局。     .box{display:flex}   行内元素可以使用flex布局     .box{display: inline-flex}   webkit内核的浏览器必须加上-webkit 前缀。     .box{display:-webkit-flex; display:flex;}   注意:元素设置flex布局以后,子元素得float ,clear 和 vertical-align 属性将失效。   基本概念:     采用f
用户1197315
2018/01/22
6980
CSS3 Flex 布局
2009 年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局
chuchur
2022/10/25
6210
CSS3 Flex 布局
css的flex布局
flex-grow 项目的放大比例,默认为0,即如果存在剩余空间,也不放大
友儿
2022/09/13
5790
CSS-flex 布局
原文链接:https://note.noxussj.top/?source=cloudtencent 为什么要使用 flex 布局? flex 布局是目前比较流行的一种布局,因为它十分简单灵活,区区简
菜园前端
2023/04/16
4200
详解CSS的Flex布局
Flex是Flexible Box 的缩写,意为"弹性布局",是CSS3的一种布局模式。通过Flex布局,可以很优雅地解决很多CSS布局的问题。下面会分别介绍容器的6个属性和项目的6个属性。每个属性会附上效果图,具体实现代码会以github路径形式更新于此。
前端林子
2018/12/09
2.5K1
详解CSS的Flex布局
Flex布局
Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。
超然
2018/08/03
1.6K0
CSS 中的 Flex 布局 完全指南
Flex 弹性盒子布局是很强大的布局,它可以很方便的控制元素在垂直和水平方向上的行为。
羽月
2022/10/08
1.7K0
CSS 中的 Flex 布局 完全指南
flex弹性布局
网页布局在前端开发中是一个很重要的点,在传统布局解决方案中,一般是基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现,当然也是可以实现的,比如说table布局或者说是使用绝对定位的方式,但是相对于下面要说到的弹性布局来说就复杂多了。
OECOM
2020/07/02
1.9K0
flex弹性布局
端午安康,今天讲的是Flex布局
网页属性Flex布局 容器 flex-direction 容器内项目的排列方式 row 项目从左往右排列(默认值) colum 项目从上往下排列 row-reverse 项目从右往左排列 colum-reverse 项目从下往上排列 flex-wrap 项目放不下了是否换行 nowrap 不换行(默认值) wrap 换行 wrap 换行后翻转 justify-content 项目在主轴上的对齐方式 flex-start 排在容器的开始位置(默认
用户10216580
2022/12/06
2890
端午安康,今天讲的是Flex布局
相关推荐
看完这篇,对flex布局还不熟悉,那就来找我(flex布局最全详解)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验