flex布局方案

【高频考点精讲】Flex布局完全指南:10个常见布局场景的flex解决方案 🧑‍🏫:全栈老李📅:2025 年 6 月🧑‍💻:前端初学者、进阶开发者🚀:本文由全栈老李原创,转载请注明出处。大家好,我是全栈老李。今天咱们聊聊Flex布局——这个让前端工程师又爱又恨的"弹性盒子"。说它简单吧,三分钟就能上手;说它复杂吧,面试官随便挖个坑就能让你怀疑人生。先来个灵魂拷问:你还在用float布局吗?快醒醒,2023年了!Flex布局才是现代前端的标配。它不仅能轻松解决传统布局的痛点,还能让代码更简洁、更易维护。 阅读详情

1. flex布局体验

1.1传统布局与flex布局

传统布局

兼容性好

布局繁琐

不能再移动端很好的布局.

flex弹性布局

操作方便 ,布局极为简单,移动端应用很广泛

PC端浏览器支持情况较差局限性,

IE 11或更低版本,不支持或仅部分支持

建议:

1.如果是PC端页面布局,我们还是传统布局。

2.如果是移动端或者不考虑兼容性问题的PC端页面布局,我们还是使用flex弹性布局

2. flex布局原理

2.1布局原理

flex是flexible Box的缩写,意为"弹性布局" ,用来为盒状模型提供最大的灵活性,任何一个容器都可以指定为flex布局。

注意:

当我们为父盒子设为flex布局以后,子元素的float、clear 和vertical-align属性将失效。

伸缩布局=弹性布局=伸缩盒布局=弹性盒布局=flex布局

采用Flex布局的元素,称为Flex容器( flex container ) , 简称"容器"。它的所有子元素自动成为容器成员,称为Flex项目( flex item ) , 简称"项目"。

体验中div就是flex父容器。

体验中span就是子容器flex项目

子容器可以横向排列也可以纵向排列

 

总结flex布局原理:

就是通过给父盒子添加flex属性,来控制子盒子的位置和排列方式

3. flex布局父项常见属性

3.1常见父项属性

以下由6个属性是对父元素设置的

flex-direction :设置主轴的方向上

justify-content :设置主轴上的子元素排列方式

flex-wrap :设置子元素是否换行

align-content :设置侧轴上的子元素的排列方式(多行)

align-items :设置侧轴上的子元素排列方式(单行)

flex-flow :复合属性.相当于同时设置了flex-direction 和flex wrap

3.2 flex-direction设置主轴的方向

1.主轴与侧轴

在flex布局中,是分为主轴和侧轴两个方向,同样的叫法有:行和列、x轴和y轴

默认主轴方向就是x轴方向,水平向右

默认侧轴方向就是y轴方向,水平向下

 

2.属性值

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

注意:主轴和侧轴是会变化的,就看flex- direction设置谁为主轴,剩下的就是侧轴。而我们的子元素是跟着主轴来排列的

 

3.3 justify-content设置主轴.上的子元素排列方式

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

注意:使用这个属性之前一定要确定好主轴是哪个

 

3.4 flex-wrap设置子元素是否换行

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

 

3.5 align-items设置侧轴.上的子元素排列方式(单行)

该属性是控制子项在侧轴(默认是y轴).上的排列方式在子项为单项的时候使用

 

3.6 align-content 设置侧轴.上的子元素的排列方式(多行)

设置子项在侧轴.上的排列方式并且只能用于子项出现换行的情况(多行) , 在单行下是没有效果的。

 

3.7 flex-flow

flex-flow属性是flex-direction和flex-wrap属性的复合属性

  

flex-direction :设置主轴的方向

justify-content :设置主轴上的子元素排列方式

flex-wrap :设置子元素是否换行

align-content :设置侧轴上的子元素的排列方式(多行)

align-items :设置侧轴上的子元素排列方式(单行)

flex-flow :复合属性,相当于同时设置了flex -direction和flex wrap

3.6 align-content 和align-items区别

align-items适用于单行情况下.只有上对齐、下对齐、居中和拉伸

align-content适应于换行(多行)的情况下(单行情况下无效),可以设置上对齐、下对齐、 居中、拉伸以及平均分

配剩余空间等属性值。

总结就是单行找align-items多行找align-content

 

4. flex布局子项常见属性

flex 子项目占的份数

align-self 控制子项自己在侧轴的排列方式

order属性定义子项的排列顺序 (前后顺序)

4.1 flex 属性

flex属性定义子项目分配剩余空间,用flex来表示占多少份数。

 

4.2 align-self控制子项自己在侧轴上的排列方式

align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。

默认值为auto ,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch.

 

4.3 order属性定义项目的排列顺序

数值越小,排列越靠前,默认为0。

注意:和z-index不一-样。

4.4.align-self控制子项自己在侧轴的排列方式

align-self 属性允许单个项目有与其他项目不一样的对齐方式,可覆盖 align-items 属性 。

默认值为auto ,表示继承父元素的 align-items 属性(flex-start、flex-end、center、stretch),如果 没有 父元素,则等同于 stretch。

移动端布局——Flex布局 一、Flex布局 思考 多个盒子横向排列使用什么属性? 浮动 设置盒子间的间距使用什么属性? margin 需要注意什么问题? 浮动的盒子脱标 Flex布局/弹性布局:(PC端对低版本浏览器不兼容/移动端可以随便用) 是一种浏览器提倡的布局模型 非常适合结构化的布局(左右、上下...) 布局网页更简单、灵活 避免浮动脱标的问题 一个网站:http://caniuse.com 查看一个技术兼容和不兼容的浏览器版本 1.1 Flex布局模型构成 作用 基于Fl... 阅读详情

相关推荐

HarmonyOS性能优化实战-Flex布局性能提升方案

Flex为采用弹性布局的容器。容器内部的所有子元素,会自动参与弹性布局。子元素默认沿主轴排列,子元素在主轴方向的尺寸称为主轴尺寸。在单行布局场景下,容器里子组件的主轴尺寸长度总和可能存在不等于容器主轴尺寸长度的情况。例如,三个子组件的宽均为200px,容器宽为500px,当第一个子组件和第二个子组件布局完成后,为了显示第三个子组件,需要给第二个子组件和第三个子组件设置压缩属性 flexShrink ,此时第二个子组件会被再布局一次,导致布局效率下降。

android__bye的博客 501

Flex布局和传统的布局有什么不同

Flex布局(也称为弹性布局)是CSS3中引入的一种新的布局模型,它提供了一种更加灵活和强大的方式来进行元素的排列。Flex布局通过使用盒模型和弹性属性,可以轻松实现水平和垂直方向上的居中、对齐和分布等效果,而无需依赖于复杂的定位和浮动。通过使用Flex布局,我们可以更轻松地创建响应式设计,并且减少对复杂的定位和浮动的依赖。传统的布局方式主要依赖于块级元素和行内元素的特性来进行布局,例如使用浮动、定位和文档流等。下面我将详细介绍Flex布局与传统布局的不同之处,并提供相应的源代码示例。

WbhsOcaml的博客 134

鸿蒙(HarmonyOS)性能优化实战-Flex布局性能提升方案

Flex为采用弹性布局的容器。容器内部的所有子元素,会自动参与弹性布局。子元素默认沿主轴排列,子元素在主轴方向的尺寸称为主轴尺寸。

m0_70748458的博客 1182

0077 flexflex-direction、justify-content、flex-wrap、align-content、align-items、flex-flow、align-self、or

移动web开发——flex布局 1.传统布局flex布局对比 1.1传统布局 兼容性好 布局繁琐 局限性,不能再移动端很好的布局 1.2 flex布局 操作方便,布局极其简单,移动端使用比较广泛 pc端浏览器支持情况比较差 IE11或更低版本不支持flex或仅支持部分 1.3 建议 如果是pc端页面布局,还是采用传统方式 如果是移动端或者是不考虑兼容的pc则采用flex 2. fl...

maopolunzi的博客 939

CSS3Flex布局详解

FlexFlexible Box 的缩写,也称为弹性盒子布局Flex布局组成: - flex容器(`flex container`) - flex项(`flex items`) - 主轴(`main axis`) - 交叉轴(`cross axis`) - 自动弹性伸缩 - 更轻松地设计灵活的响应式布局结构 - 精确灵活控制块级盒子的布局方式 - 在pc端和移动端都适用

叶子与海的博客 4087

CSS3Flex布局详解)

flex 容器中默认存在两条轴,水平主轴(main axis) 和垂直的交叉轴(cross axis),这是默认的设置,当然你可以通过修改使垂直方向变为主轴,水平方向变为交叉轴,这个我们后面再说。这里需要强调,不能先入为主认为宽度就是 main size,高度就是 cross size,这个还要取决于你主轴的方向,如果你垂直方向是主轴,那么项目的高度就是 main size。简单说来,如果你使用块元素如 div,你就可以使用 flex,而如果你使用行内元素,你可以使用 inline-flex

qq_41765777的博客 3956

【鸿蒙性能优化实战】—— Flex布局性能提升方案

Flex为采用弹性布局的容器。容器内部的所有子元素,会自动参与弹性布局。子元素默认沿主轴排列,子元素在主轴方向的尺寸称为主轴尺寸。在单行布局场景下,容器里子组件的主轴尺寸长度总和可能存在不等于容器主轴尺寸长度的情况。例如,三个子组件的宽均为200px,容器宽为500px,当第一个子组件和第二个子组件布局完成后,为了显示第三个子组件,需要给第二个子组件和第三个子组件设置压缩属性 flexShrink ,此时第二个子组件会被再布局一次,导致布局效率下降。

huchenghe2的博客 880

Flex 最优布局方案

Flex 最优布局方案最近很有朋友都对 Flex 布局有问题, 比如开发时的布局与最后在浏览器里看到的有很大出入, 今天这个帖子是专门针对这类问题的, 以下都是我自己的经验, 请笑纳.Flex 最优布局方案:1. 如果你愿意的话, 请将操作系统分辨率调整到 1024*768 (这是最佳的), 如果你不愿意也可以, 但是你的操作系统分辨率不能低于 1024*768.2. 下载 Inter

longne的专栏 1757

CSS-7 浮动 float;浮动规则;案例练习;clear清除浮动,浮动高度坍塌问题;布局方案总结;flex布局flex与float的区别;

浮动 float;浮动规则;案例练习;clear清除浮动,解决高度坍塌问题;布局方案总结;flex布局flex与float的区别;flex-direction;flex-wrap;flex-flow;justify-content;align-items;align-content;flex-grow;flex-shrink;flex-basis;order;align-self;

qq_54075517的博客 764

Flex 布局的 5 大常见陷阱与解决方案

Flex 布局的 5 大常见陷阱与解决方案

ttod的博客 492

【鸿蒙性能优化篇】—— Flex布局性能提升方案

Flex为采用弹性布局的容器。容器内部的所有子元素,会自动参与弹性布局。子元素默认沿主轴排列,子元素在主轴方向的尺寸称为主轴尺寸。在单行布局场景下,容器里子组件的主轴尺寸长度总和可能存在不等于容器主轴尺寸长度的情况。例如,三个子组件的宽均为200px,容器宽为500px,当第一个子组件和第二个子组件布局完成后,为了显示第三个子组件,需要给第二个子组件和第三个子组件设置压缩属性 flexShrink ,此时第二个子组件会被再布局一次,导致布局效率下降。

shangkangba的博客 956

flex布局下overflow失效解决方案

flex布局下overflow失效解决方案 这里使用经典的两栏布局 比如说我们想让中间部分自适应并且超出长度出现滚动 dom结构简单如下 <div class="container"> <div class="left"></div> <div class="content"> <span></span> <span></span> <span></span> &lt

ZQD的博客 1万+

CSS3 flex弹性布局

CSS3 Flex弹性布局摘要 Flexbox是CSS3提供的弹性盒子布局模型,通过父容器(flex container)控制子项目(flex item)的排列方式。主要特性包括: 容器属性: flex-direction:定义主轴方向(行/列) flex-wrap:控制是否换行 justify-content:主轴对齐方式 align-items:交叉轴对齐方式 align-content:多行对齐方式 项目属性: flex-grow:定义剩余空间分配比例 flex-shrink:定义空间不足时的收缩比例

xiangxiongfly 2031

css3-flex布局:基础使用 / Flexbox布局

该属性的值决定了 Flex 项目的伸缩性,它能够让 Flex 项目在 Flex 容器中的尺寸发生变化,以适应不同的屏幕尺寸或者容器大小。4.2、Flex项目(Flex Item):Flex 容器中的子元素称为 Flex 项目(Flex Item),每个 Flex 项目都具有弹性盒的属性。在该轴上,Flex 容器中的 Flex 项目会被依次排列。Flex容器是包含Flex项目的父级元素,通过设置该元素的display属性为flex或inline-flex,即可创建一个Flex容器。

snow的博客 2001

CSS中的弹性盒子总结

一、弹性盒布局相关词汇 图中是一个 flex-direction 属性为 row的弹性容器,意味着其内的弹性项目将根据既定书写模式沿主轴水平排列,其方向为元素的文本流方向,在这个例子里,为从左到右。 1.弹性容器(Flex container) 包含着弹性项目的父元素。通过设置 display属性的值为 flex或 inline-fle来定义弹性容器。 2.弹性项目(Flex item) 弹性容器的每个子元素都称为弹性项目。弹性容器直接包含的文本将被包覆成匿名弹性单元。 3.轴(Axis) 每个弹性框布局

m0_55870194的博客 779

CSS3-flex布局

flexflex-grow,flex-shrink,flex-basic三个属性的简写形式,默认值是flex:0 1 auto1)flex-grow属性可以按比例分配剩余空间2)flex-shrink属性指定了flex元素的收缩规则3flex-basic定义了该元素的空间大小,该属性默认值是auto,若设置了width,则flex-basic为width,flex-basic具有比width更高的优先级.item{案例:div。

qq_44791442的博客 1332

Flex布局

参考链接 传统的盒模型布局,依赖display属性() + position属性() + float属性()。对于一些特定的布局不是很方便,比如垂直居中。 /*任何容器都能指定为Flex布局*/ .box { display: flex; } /*行内元素也可以使用*/ .box { display: inline-flex; } /*webkit内核的浏览器,必须加上 -webkit 前...

ckwang6的博客 399

flex布局体验

flex布局 1.1 传统布局flex布局 传统布局 兼容性好 布局繁琐 局限性,不能再移动端很好的布局 flex弹性布局 操作方便,布局集为简单,移动端应用很广泛 PC端浏览器支持情况较差 IE 11或更低版本,不支持或仅部分支持 建议: 如果是PC端页面布局,我们还是传统布局。 如果是移动端或者不考虑兼容性问题的PC端页面布局,我们还是使用flex弹性布局 1.2 初体验 <!DOCTYPE html> <html lang="en"> <head>

罗彬桦的博客 891
上一篇: 响应式布局
下一篇: JavaScript基本用法
zygygiug
博客等级 码龄5年 5粉丝 · 36原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值