【前端】1、flex 布局详解

这篇具有很好参考价值的文章主要介绍了【前端】1、flex 布局详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、flex container 和 flex items

🎄 1、开启了 Flex 布局的元素叫 flex container
🎄 2、flex container 里面的直接子元素叫做 flex items

🎄 3、若元素的 display 属性的值为 flexinline-flex,则该元素是 flex container

🎄 4、display 属性值为 flex,则 flex containerblock-level 形式存在

🎄 5、display 属性值为 inline-flex,则 flex containerinline-level 形式存在

二、用在 flex container 上的 CSS 属性

✏️ flex-direction
✏️ justify-content
✏️ align-items
✏️ flex-wrap
✏️ flex-flow
✏️ align-content

(1) flex-direction

  • flex-items 默认都是沿着 main axis(主轴)从 main start 开始往 main end 方向排布

【前端】1、flex 布局详解

flex-direction 决定了 main axis 的方向(有四个取值):
① row(默认)
② row-reverse
③ column
④ column-reverse

(2) justify-content

justify-content 决定了 flex-itemsmain axis 上的对齐方式

【前端】1、flex 布局详解

flex-start(默认值):与 main start 对齐
flex-end:与 main end 对齐
center:沿着主轴居中 对齐

space-between:1️⃣ flex items 之间的距离相等;2️⃣ 与 main start、main end 两端对齐

space-evenly:1️⃣ flex items 之间的距离相等;2️⃣ flex items 与 main start、main end 之间的距离等于 flex items 之间的距离
【前端】1、flex 布局详解

space-around:1️⃣ flex items 之间的距离相等;2️⃣ flex items 与 main start、main end 之间的距离等于 flex items 之间的距离的一半

【前端】1、flex 布局详解

(3) align-items

align-items 决定了 flex-itemscross axis(交叉轴) 上的对齐方式

cross axis(交叉轴)的方向有两种:① 向下;② 向右

【前端】1、flex 布局详解

flex-start:与 cross start 对齐
flex-end:与 cross end 对齐
center:在 cross end 上居中对齐

baseline:与基准线对齐
stretch(默认):当 flex itemscross axis 方向的 size 为 auto(不固定) 时,会自动拉伸至填充 flex container

📌 size:① 假如 cross axis 向下,sizeheight;② 假如 cross axis 向右,sizewidth

(4) flex-wrap

flex-wrap 决定 flex-container 是单行还是多行

nowrap:单行
wrap:多行【个人理解:朝着交叉轴的方向换行

【前端】1、flex 布局详解

wrap-reverse:多行(对比 wrap,cross start 和 cross end 相反)【个人理解:朝着交叉轴的方向换行

【前端】1、flex 布局详解

(5) flex-flow

flex-flowflex-directionflex-wrap 的简写【这两个属性可以只出现一个,可以只是一种属性的简写】

下面的两种写法的作用是一样的:

  #root-box {
      flex-flow: column wrap;
  }
   
  #root-box2 {
      flex-direction: column; 
      flex-wrap: wrap;
  }

下面的两种写法的作用是一样的:

  #root-box {
      flex-flow: row-reverse;
  }
   
  #root-box2 {
      flex-direction: row-reverse; 
      flex-wrap: nowrap;
  }

下面的两种写法的作用是一样的:

  #root-box {
      flex-flow: wrap;
  }
   
  #root-box2 {
      flex-direction: row; 
      flex-wrap: wrap;
  }

(6) align-content

align-content 决定了多行 flex-itemscross axis(交叉轴) 上的对齐方式【用法与 justify-content 类似】

【前端】1、flex 布局详解

flex-start:与 cross start 对齐
flex-end:与 cross end 对齐
center:沿着 cross axis(交叉轴) 居中对齐
stretch:与 align-itemsstretch 类似
space-between:1️⃣ flex items 之间的距离相等;2️⃣ 与 cross start、cross end 两端对齐
space-around:1️⃣ flex items 之间的距离相等;2️⃣ flex items 与 cross start、cross end 之间的距离等于 flex items 之间的距离的一半
⑦ ⑤ space-evenly:1️⃣ flex items 之间的距离相等;2️⃣ flex items 与 cross start、cross end 之间的距离等于 flex items 之间的距离

🎄 单行用 align-items
🎄 多行用 align-content

【前端】1、flex 布局详解

三、用在 flex items 上的 CSS 属性

✏️ order
✏️ align-self
✏️ flex-grow
✏️ flex-shrink
✏️ flex-basis
✏️ flex

(1) order(顺序)

order 决定 flex items 的排布顺序

🎄 可设置任意整数(正整数、负整数、0)
🎄 值越小排在越前面
🎄 默认值是 0
🎄 order 值一样的时候按照渲染顺序排布

(2) align-self

flex items 可通过 align-self 覆盖 flex container 中设置的 align-items

🎄 默认值是 auto【遵从 flex containeralign-items 设置】

🎄 属性:① stretch、② flex-start、③ flex-end、④ center、⑤ baseline
🎄 效果和 align-items 差不多

(3) flex-grow

  • flex-grow 决定 flex items 如何扩展

🍀 当 flex container 在 main axis 方向上有剩余 size( 宽度或高度 ) 的时候,flex-grow 属性才有效

🍀 取值:可设置任意非负数字(正小数、正整数、0)【 默认是 0

【前端】1、flex 布局详解


【前端】1、flex 布局详解
【前端】1、flex 布局详解


① 如果所有 flex items 的 flex-grow 总和 sum 超过 1,每个 flex item 扩展的 size 为 'flex container 剩余 size' * (flex-grow / sum)

② 如果所有 flex items 的 flex-grow 总和 sum 不超过 1,每个 flex item 扩展的 size 为 'flex container 剩余 size' * flex-grow

🍀 flex items 扩展后的最终 size 不能超过 max-widthmax-height

(4) flex-shrink

  • flex-shrink 决定 flex items 如何收缩

🍀 当 flex items 在 main axis 方向上超过 flex container 的 size 的时候,flex-shrink 属性才有效

🍀 取值:可设置任意非负数字(正小数、正整数、0)【 默认是 1

  • 收缩比例:flex-shrink * (item 的 size)
  • size 是 width 或 height

① 收缩比例:flex-shrink * item 的 基础 size 【基础 size:flex item 放入 flex container 之前的 size】
② 每个 flex item 收缩的 size 为:
flex items 超出 flex container 的 size *收缩比例 / 所有 flex items 的收缩比例之和
③ flex items 收缩的最终 size 不能小于 min-width 或 min-height

(5) flex-basis

flex-basis 用于设置 flex items 在 main axis 上的 base size

auto(默认值):取决于内容本身的 size
content:取决于内容本身的 size

决定 flex items 最终 base size 的因素,优先级从高到低为:

1️⃣ max-width、max-height、min-width、min-height
2️⃣ flex-basis
3️⃣ width、height
4️⃣ 内容本身的 size

 .son {
     /* 平分 */
     flex-basis: 0; /* flex items 的 size 是 0 */
     flex-grow: 1; /* 每个 flex item 的扩展比例是一样的 */
 }

【前端】1、flex 布局详解

(6) flex

  • flex 属性是 flex-grow、flex-shrink(可有可无)、flex-basic 的简写

下面3种写法都是平分布局:文章来源地址https://www.toymoban.com/news/detail-443919.html

 .son {  
     /* flex item 平分布局 */
     flex: 1;
 }
 .son {  
     flex-grow: 1;
     flex-basis: 0;
 }
 .son {  
     flex: 1 0;
 }
  • 默认值0 1 auto
  • auto: 0 0 auto

到了这里,关于【前端】1、flex 布局详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Flex布局常用属性详解

    在电脑PC端,使用浮动,定位同时使用像素px单位就可以完成大部分布局,而且布局完之后不会有大问题,但是到了移动端,移动设备的屏幕尺寸多种多样,从小屏幕的智能手机到大屏幕的平板电脑,甚至是可穿戴设备,简单地运用和PC端一样的方式就会出现一些布局和排列的

    2024年02月12日
    浏览(36)
  • 前端小案例3:Flex弹性布局行内元素宽度自适应

    项目背景:需要在一行上展示空调设备的三个模式(制冷、制热、通风)或者两个模式(制冷、制热);因为不同产品的模式数量不同,因此需要让模式按钮的宽度自适应,有两个模式时,单个模式宽度占据50%;三模式时,宽度占据33.3%。 可以使用Grid和Flex 弹性布局实现。

    2024年02月04日
    浏览(33)
  • css3 flex弹性布局详解

    2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。 Flex 是 Flexible Box 的缩写,意为\\\"弹性布局\\\",用来为盒状模型提供最大的灵活性。 开启flex布局:

    2024年02月05日
    浏览(36)
  • elementui前端flex布局兼容IE10浏览器常用属性使用

    IE10以下完全不兼容flex,IE10部分兼容,使用时对应chrome的用法为如下所示: 注:任何的版本的 Internet Explorer (包括 IE8)都不支持属性值 inherit。

    2024年02月13日
    浏览(29)
  • Flex布局简介及微信小程序视图层View详解

    目录 一、Flex布局简介 什么是flex布局? flex属性 基本语法和常用属性 Flex 布局技巧 二、视图层View  View简介 微信小程序View视图层 WXML 数据绑定 列表渲染 条件渲染 模板 WXSS 样式导入 内联样式 选择器 全局样式与局部样式 WXS 示例 注意事项 页面渲染 数据处理 Flex 布局(又称

    2024年02月20日
    浏览(37)
  • web前端之使用弹性和外边距进行网页布局、非常有用的小技巧、flex、margin、auto

    图中效果只需要flex和margin便可以实现。 1、d_f: display: flex; 2、fw_w: flex-wrap: wrap; 3、m_a: margin: auto; 4、ml_a: margin-left: auto; 5、mr_a: margin-right: auto; 3、item类名比较特殊,所以单独定义,涉及到变量,不属于公共样式 4、其他类名基本是见名知意,不做过多叙述

    2024年02月20日
    浏览(43)
  • CSS - 完美解决 flex 布局下,一行显示固定个数(平均分布)并且强制换行,超出后 “靠左“ 对其(详细解决方案,适用于 Web、Vue、React 等任何前端项目)

    关于 flex 布局下 justify-content: xx,很多朋友都想让其换行后,靠左进行依次排列(默认会平均分布居中)。 本文实现了 纯 CSS (无任何 JS),实现 flex / justify-content 弹性布局下,断行后让元素始终靠左排序, 你可以一键复制示例,然后稍微改改样式就能使用。 如下图所示,

    2024年02月03日
    浏览(29)
  • 【CSS】flex布局用法解析,快速上手flex布局,flex:1是什么意思?肯定看的懂好吧?

    flex 是 flexible box 的缩写,意为\\\"弹性布局\\\",用来为盒状模型提供最大的灵活性。 任何一个容器都可以指定为 flex 布局。 采用 flex 布局的元素,称为 flex 容器(flex container),简称\\\"容器\\\"。 flex-direction 属性决定主轴的方向(也就是元素的排列方向),与主轴垂直的轴是交叉轴。

    2024年02月03日
    浏览(36)
  • flex布局:输入框布局demo

    代码: 结果: 包括:去除边距、设置父盒子的宽度(如果不设置宽度,会使用整个浏览器的宽度)、添加父盒子边框等 代码: 结果: code: flex:1: 即按照1:1的比例对剩余的空间进行放大或者缩小 结果: 由于前面设置label标签为flex布局,因此对第二个label标签进一步设置也

    2023年04月09日
    浏览(23)
  • 【移动端网页布局】flex 弹性布局子项目属性 ① ( flex 属性用法说明 | 代码示例 : 占有剩余布局 / 平均分成若干等份 )

    flex 子项目 的常用属性 : flex 属性 : flex 子项目 在 flex 父容器 中 占有的 份数比例 , 如果都设置 1 , 那么将对应尺寸平分即可 ; align-self 属性 : 控制 flex 子项目 在 侧轴 的排列方式 ; order 属性 : 控制 flex 子项目 的排列顺序 ; 主要是修改前后顺序 , 原来是 1 - 2 - 3 排列顺序 , 可以

    2024年02月09日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包