CSS弹性布局回顾(Flex)

深入浅出了解Flex弹性布局(一) 布局从无到有的发展历程以及Flex弹性布局中容器属性的语法(举例:骰子的单个项目布局) 阅读详情

Flex即Flexible Box,用来为盒状模型提供最大的灵活性。

一、使用方法:

  • 为一个容器指定Flex布局
    .box{
      display:flex;
    }
  • 为行内元素指定Flex布局
    .box{
      display:inline-flex;
    }
  • 考虑兼容问题,Webkit内核浏览器必须加上-webkit前缀
    .box{
      display:-webkit-flex;
      display:flex;
    }

注意设置了Flex布局之后,子元素的float、clear和vertical-align属性会失效!

二、概念:

设置为Flex的元素即可被称为“容器”(flex container),它的所有子元素自动成为容器的成员,称为“项目”(flex item)。

容器存在两根轴:水平主轴(main axis)、垂直交叉轴(cross axis)、

主轴的开始位置(即水平主轴与边框的交叉点)叫做main start、结束位置叫做main end;

交叉轴开始的位置叫做cross start、结束位置叫做cross end。


项目默认沿主轴排列,单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size

三、容器的属性

概括一下有7个属性:direction、flex-direction、flex-wrap、flex-flow、justify-content、align-items、align-content

下面会一一讲述每个属性的用法以及效果

3.1 direction 属性

设置direction属性为rtl(right-to-left)改变弹性元素的排列顺序,很好理解,就是把原来的从左到右排序变成了从右到左

注意这里连页面布局也会跟着变化

默认:


改变之后:


3.2 flex-direction属性

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

flex-direction: row | row-reverse | column | column-reverse





3.3 flex-wrap属性

默认情况下,项目(item)都排列在一条轴线(main axis | cross axis)上。

而flex-wrap的属性定义就是 如果一条轴线排列不下,如何去换行。

flex-wrap:nowrap | wrap | wrap-reverse | initial | inherit




3.4 flex-flow属性

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

比如如下定义使用:

.box{
  display:flex;
  flex-flow:row-reverse wrap;
}
3.5 justify-content属性

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

justify-content: flex-start | flex-end | center | space-between | space-around

  • flex-start(默认值):左对齐
  • flex-end:右对齐
  • center:居中
  • space-between:两端对齐,项目之间的间隔都相等
  • space-around:每个项目两侧的间隔相等,所以,项目之间的间隔比项目与边框的间隔大一倍


3.6 align-items属性

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

align-items: flex-start | flex-end | center | baseline | stretch

  • flex-start:交叉轴的起点对齐
  • flex-end:交叉轴的终点对齐
  • center:交叉轴的中点对齐
  • baseline:项目的第一行文字的基线对齐
  • stretch(默认值):如果项目末设置高度或设为auto,将占满整个容器的高度


3.7 align-content属性

align-content属性定义了多根轴线的对齐方式,如果项目只有一根轴线,该属性不起作用。

align-content: flex-start | flex-end | center | space-between | space-around | stretch

  • flex-start:与交叉轴的起点对齐
  • flex-end:与交叉轴的终点对齐
  • center:与交叉轴的中点对齐
  • stretch(默认值):轴线占满整个交叉轴
  • space-between:与交叉轴两端对齐,轴线之间的间隔平均分布
  • space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍

四、项目的属性

概括一下有6个属性设置在项目上:order、flex-grow、flex-shrink、flex-basis、flex、align-self

下面一一讲解每个属性的用法以及其效果

4.1 order属性

order属性定义项目的排列顺序,数值越小,排列越靠前,默认为0,可以为负值

如以下例子,把flex item 2设置到second类,使它的order属性为-1 

.flex-item {
    background-color: cornflowerblue;
    width: 100px;
    height: 100px;
    margin: 10px;
}
.second {
    -webkit-order: -1;
    order: -1;
}

由于属性为负数,其他两个item属性默认为0,所以item 2排列到最前面


4.2 flex-grow属性

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

如果所有项目的flex-grow属性都为1,则它们将等分剩余空间(如果有的话)

如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他多一倍


4.3 flex-shrink属性

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

如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小

如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小

负值对该属性无效!


4.4 flex-basis属性

flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)

浏览器根据这个属性,计算主轴是否有多余空间,它的默认值为auto,即项目本来的大小

它可以设为跟width或height属性一样的值,则项目将占据固定空间

4.5 flex属性

flex属性是flex-grow、flex-shrink、flex-basis的简写,默认值为0 1 auto

后两个属性可选

该属性有四个快捷值:auto(1 1 auto) 、none(0 0 auto) 、initial(0 1 auto)、inherit(从父元素继承)

建议优先使用这个属性,而不是单独写三个分离的属性,因为浏览器会推算相关值

以下例子示范第一个弹性子元素占据1/2空间,其他两个各占1/4空间

.flex-item {
    background-color: cornflowerblue;
    margin: 10px;
}
.item1 {
    -webkit-flex: 2;
    flex: 2;
}
.item2 {
    -webkit-flex: 1;
    flex: 1;
}
.item3 {
    -webkit-flex: 1;
    flex: 1;
}

4.6 align-self属性

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

默认值是auto,表示继承父元素的align-items属性

如果没有父元素,则等同于strech

效果参考容器align-items属性效果

以下示例align-self是作用单个项目的效果是怎样的


align-self属性的取值与align-items无异,只是多了一个auto







CSS3笔试题精讲1 防止父元素高度坍塌 4种方案 BFC Flex 居中 rpx、px、em、rem、%、vh、vw的区别 响应式布局的方式,媒体查询原理 阅读详情

相关推荐

clock-gating整理

文章目录clock gating 理解1、latch双稳态器件常见锁存器结构SR锁存器D锁存器2、clock gating(clock low-active) latch + AND gating 电路(clock high-active)latch + OR gating 电路 clock gating 理解 1、latch 参考:https://www.cnblogs.com/IClearner/p/6443539.html 双稳态器件 稳定状态为0或1两种 举例:交叉耦合反相器 假设初始Q为1,则可

d_b_的博客 1万+

CSS(十) flex

flex,又叫,弹性布局,在移动端是最常用的布局方式(因为移动端的浏览器版本都比较高,电脑端要兼容ie,因此...) w3c提出的新的布局方式,传统的为:display+float+position布局,而flex可以更方便,快速,完整,响应式的实现页面布局 通过dislay:flex,设置指定容器为flex布局 flex横向的主轴(X轴)叫做main-axis,其中左侧起始的位置叫做...

Oliver尹的博客 461

jaka+realsense+aruco+手眼标定(python)

第二次重建了项目的手眼标定部分……有很多第一次记录遗漏的地方,在此补充。

drivenzyw的博客 2122

CSS之flex兼容

随着自己写过的页面的增多,也遇到了很多CSS兼容性的问题。这些兼容性问题,都是必然的,因为技术在不断进步,不断革新,所谓,“后浪推前浪,前浪拍死在沙滩上”,当然我们的技术不能是被拍死在沙滩上,我们还要支持,不支持的话,只能是你这个页面,这个产品被淘汰。 那么为了不被淘汰,我们就要做些兼容性处理。 我写页面的时候用到过很多的flex布局,觉得非常好用。下面附上一篇不错的flex布局介绍的文章。

为了而努力 5万+

【iOS开发】dyld: Symbol not found: ___chkstk_darwin 问题解决

【iOS开发】dyld: Symbol not found: ___chkstk_darwin 问题解决 Xcode 13.2.1 运行到iOS12.x版本上崩溃报错如下:dyld: Symbol not found: ___chkstk_darwin dyld: Symbol not found: ___chkstk_darwin Referenced from: /private/var/containers/Bundle/Application/A424CEFD-51DB-450E-9D62-B8

wm9028的专栏 6563

华为昇腾 910B 实战:DeepSeek-R1 蒸馏模型高效部署与性能调优全解析

本文详细解析了在华为昇腾910B硬件平台上高效部署DeepSeek-R1蒸馏系列模型(14B/32B版本)的完整实战流程。内容涵盖从MindIE环境搭建、镜像获取、模型准备,到服务配置、内存参数调优、性能测试及常见问题排查,为开发者提供了基于昇腾910B进行大模型部署与优化的全链路指南。

weixin_28235513的博客 210

CSS - flex

CSS2.1定义了四种布局方式,由一个盒与其兄弟,祖先盒的关系决定其尺寸与位置的算法。块布局:呈现文档的布局模式。行内布局:呈现文本的布局模式。表格布局:用表格呈现2D数据的布局模式。定位布局:能够直接地定位元素的布局模式,定位元素奴基本与其他元素没有任何关系。CSS3引入的flex布局,主要思想是让容器有能力控制子项目的高度,宽度(设置顺序)。以最佳方式填充可用空间(主要是为了适应所有类型的显示...

小蚂蚁的世界 1705

使用Docker搭建SearXNG搜索引擎

【代码】使用Docker搭建SearXNG搜索引擎。

janthinasnail的博客 1168

彻底理解CSS3弹性盒模型flex 用法

flex-direction: row | row-reverse | column | column-reverse /* 规定子元素排列方向 * row:横向从左到右排序 * row-reverse:横向从右到左排序 * column:纵向从上到下排序 * column-reverse:纵向从下到上排序 */

weixin_41010310的博客 1087

DDR核心机制解析:从Burst到Prefetch的性能跃迁

本文深入解析了DDR内存性能跃迁的核心机制,重点阐述了Burst(突发传输)与Prefetch(预取)技术的协同工作原理。Burst机制通过连续传输数据减少访问延迟,而Prefetch则通过内部预取数据提升吞吐量,两者结合完美匹配现代CPU缓存行需求,是DDR3等内存实现高效带宽的关键。

weixin_29232121的博客 135

SAP自动化-ME51N批量创建采购申请

2、需要管理员授权RZ11脚本录制回放功能。1、仅限于正对SAP日常工作的批量处理。3、数据模板按实际需求更新。物料编码,工厂,数量。

小九啥也不会 530

flex兼容性问题解决方案-CSS3属性加前缀

1 兼容性写法 flex布局存在兼容性问题,比如ios8对flex不兼容问题,为了解决兼容性问题,我们将普通代码改为兼容性代码。 普通代码: .ec-list{ display: flex; } .ec-item{ flex:1; } 兼容性代码: .ec-list { display: -webkit-box; display: -webkit-flex; display: flex; } .ec-item { -webkit-box-flex: 1; -webk

Serena_tz的博客 2691

深度解析长鑫G5 DRAM工艺的技术逻辑与微缩边界

长鑫存储G5 DRAM平台通过多重图形化、45:1高深宽比电容与外围HKMG技术,突破先进光刻受限瓶颈,在11.95 nm有源区半间距下实现阵列微缩与电容结构优化。其核心意义不在于对标国际节点,而在于系统性解决“尺寸缩小—电荷保持—外围跟进而”三大矛盾,展现国产DRAM在无EUV条件下推进先进制程的工艺整合能力。

硬核科技 36

CSS布局之Flex弹性布局回顾

任何一个容器都可以用flex布局: .box{ display:flex; } 行内元素也可以用flex布局: .span{ display:inline-flex; } 注意:设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。 设置容器flex布局后,有6中属性可设置容器中的直接子元素 一. flex-direction 设置主轴方向(直接子...

qq_42313319的博客 321

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

前端三剑客 —— CSS (第六节)

前端三剑客 —— CSS (第六节)

weixin_51562484的博客 1781

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

flex 方式的布局你用对了吗?

对于 CSS 中的 flex 弹性布局,曾经我在公众号里写过《一点点对 flex 布局有关的看法》和《又一次想说 flex 布局挖坑给你,信吗?》,印象中最深的一个点,是我在文中提到的对于 flex 的这个属性中的三个属性值怎么用的话题。如果你有兴趣的话,可以点击链接再去看看,不想看的可以直接想一下:flex: 1 1 auto; flex: 1 0 auto; flex: 0 0 200px; ...

weixin_34281477的博客 245

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

分享我在web前端开发中走的一些弯路程序,移动web开发学习笔记(rem适配布局,阿里三面

一、移动web开发移动端常见布局:流式布局(百分比布局)flex弹性布局less+rem+媒体查询布局混合布局今天我们来说说less+rem+媒体查询布局,flex弹性布局在之前已经详细讲过了,如需请点击链接查看二、rem适配布局1.rem基础rem(root em)是一个相对单位,类似于em,em是父元素字体大小。不同的是rem的基准是相对于html元素的字体大小。比如,根元素(html)设置font-size=12px;非根元素设置width:2rem;则换成px表示就是24px。

m0_60388292的博客 421

本周总结

视觉格式化模型(visual gormatting model) :css的一种机制,它规定了页面中的多个盒子如何布局 一、视觉格式化模型要求,所有的元素必须放置在他的包含块中,元素在包含块中的尺寸和位置,主要受到两个因素的影响: 元素的盒模型 元素的定位体系 什么是定位体系 视觉格式化模型规定,定位体系一共有三种: ①常规流(normal flow) ②浮动(float) ③绝对定位(absolute positioned) 任何一个元素,必须属于其中一种定位体系,不同的定位体系中,元素在包含块中

ghfiy的博客 240

跟面试官扯了半小时的CSS的flex弹性布局,都在这里了。【看完你会更加透彻】

目录1. CSS3怪异盒模型2. flex基本概念3. 弹性布局属性4. CSS3多列5. 响应式 1. CSS3怪异盒模型 在说flex布局之前,再来回顾一下CSS3的怪异盒模型。 (1) 标准盒模型的总大小=width/height+padding+border+margin; 怪异盒模型的总大小=width/height+margin. (2)box-sizing属性: 可以给box-si...

huangfuyk.的博客 1万+

【CSS】css弹性布局、CSS hack_08

项目中能用弹性的都能用浮动写,但是能用弹性的都不建议用浮动,都用弹性来写。弹性布局是目前的主流布局,浮动是比较low的过时的布局,当前弹性蒸蒸日上,现在是弹性的天下,写项目时,没辙了根本就解决不了了,再用相对定位、绝对定位

青春木鱼的博客 1341

flex布局——回顾

flex 即为弹性布局。   任何一个容器都可以指定为flex布局。     .box{display:flex}   行内元素可以使用flex布局     .box{display: inline-...

lumot的博客 214

响应式布局实现的几种方法 — 弹性布局

  响应式布局的实现是前端工程中一个非常大的跨越,它非常灵活的可塑造性使得同一个网站能在不同的终端设备上展现出不同的活力。就今天这个机会,我想与大家分享并探讨一些常用来实现响应式布局方法中的弹性布局。...

Wangxinlei_King的博客 1437

flex布局回顾

最近开始学习前段了,对于我这个对前段七窍通了六窍的人,学了之后不多温习温习的话,你懂的! 所以今天我就回顾了一下前不久学习的弹性布局的知识,如果有什么错误或者遗漏之处,还望各位大佬指点一二 (˘Δ˘入) ...

qq_53632527的博客 146

我的JavaScript回顾之路_08—0227—支付密码输入框/弹性布局flex

1、支付密码输入框 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src="jquery.js">&amp

zsqRr123456的博客 205

CSS布局 Flex 和 Grid

在 CSS 中,理解 flex 和 Grid 布局非常重要,今天把这两个重要知识点回顾一下。

hawk2014bj的博客 915
上一篇: Ajax小总结
下一篇: (转载)npm安装教程(配置nodejs、安装vue脚手架)
cccBtrya
博客等级 码龄10年 10粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值