flex布局基本语法的详细介绍

本篇文章给大家带来的内容是关于flex布局基本语法的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

2009年,W3C提出了一种新的方案—-Flex布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能

1.什么是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属性将失效。

2.基本概念

Flex容器(flex container) : 采用Flex布局的元素,称为flex容器.

Flex项目(flex item) : flex容器的所有子元素,自动成为容器成员,即flex项目.

容器的两根轴线 : 水平的主轴(main axis), 垂直的交叉轴(cross axis).

主轴(main axis) : 开始位置->main start, 结束位置->main end, 项目默认沿主轴排列.

交叉轴(cross axis) : 开始位置->cross start, 结束位置->cross end

容器内的单个项目占据的主轴空间叫做->main size, 交叉轴空间叫做->cross size

flex布局基本语法的详细介绍

3.FLex属性

flex属性分为容器属性和项目属性.

容器属性 : flex-direction, flex-wrap, flex-flow, justify-content, align-items, align-content

项目属性 : order, flex-grow, flex-shrink, flex-basis, flex, align-self

3.1容器属性

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

  row : 水平方向,从左到右.(默认属性)

  row-reverse : 水平方向,从右到左.

  column : 垂直方向,从上到下.

  column-reverse : 垂直方向,从下到上.

flex-wrap : 规定一条轴线排不下,如何换行.

  nowrap : 不换行(默认属性)

  wrap : 换行,第一行在上边

  wrap-reverse : 换行,第一行在下边,(只行数排列相反,单行内依旧从左到右排列,每一行都是).

flex-flow : 结合flex-direction和flex-wrap,写法如下 

  .box{flex-flow:column wrap-reverse}

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

  flex-start : 左对齐(默认值),项目以主轴的起点对齐

  flex-end : 右对齐,项目以主轴的终点

  center : 居中

  space-between : 两端对齐,项目之间间隔相等

  space-around : 每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍

align-items : 定义项目在交叉轴的对齐方式(仅单行,多行对齐由align-content定义)

  stretch : 如果项目未设置高度或设为auto,将占满整个容器的高度(默认值)

  flex-start : 从上到下,以交叉轴的起点为基线,向终点延伸

  flex-end : 从下到上,以交叉轴的终点为基线,向起点延伸

  center : 交叉轴的中点对齐,项目的中点放在交叉轴的中点上

  baseline : 以一行中每个项目的第一行文字进行对齐.

align-content : 定义了容器内有多行项目时沿交叉轴的对齐方式, 如果项目只有一根轴线,该属性不起作用

  stretch : 轴线占满整个交叉轴(每行都有一条轴线), 默认属性

  flex-start : 以交叉轴的起点对齐

  flex-end : 以交叉轴的终点对齐

  center : 以交叉轴的中点对齐

  space-between : 多行项目在交叉轴上间隔平均分布

  space-around : 多行项目在交叉轴上两侧的间隔都相等。所以,项目在交叉轴上的间隔比项目与边框的间隔大一倍

  注 : justify-content, align-items和align-content是容器的属性,而不是项目的属性,是设定一个容器内项目以轴线上的某一位置对齐

3.2项目属性

order : 定义项目的排列顺序,数值越小,排列越靠前.默认值为0,写法如下

  .item{order:5}

flex-grow : 定义属性项目放大比例,默认为1

  如果所有项目的flex-grow属性都为1,则它们将等分剩余空间(如果有的话)。如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍

flex-shrink : 定义项目缩小比例,默认为1

  如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小。如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小.负值对该属性无效

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

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

flex : 结合flex-grow, flex-shrink 和 flex-basis的属性, 默认值为0 1 auto, 推荐优先使用

  该属性有两个快捷值:auto (1 1 auto) 和 none (0 0 auto

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

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

【相关推荐:CSS视频教程】

以上就是flex布局基本语法的详细介绍的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1614336.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 04:13:21
下一篇 2025年12月24日 04:13:33

相关推荐

  • Flex 布局左右同高怎么实现?

    flex布局左右同高 在flex布局中,左右布局的元素高度不一致时,想要让边框延伸到最大高度,可以采用以下方法: 基于当前结构的方法: 给.rht和.lft盒子添加: .rht { height: min-content;} 这样可以使弹性盒子被子盒子内容撑开。 使用javascript获取.rht…

    2025年12月24日
    000
  • flex 布局中 padding-right 失效了怎么办?

    flex布局中,padding-right失效的解决方案 在flex布局中,你遇到padding-right没有效果的问题,可能是以下代码造成的: width: 100vw; 当你的父元素宽度设置成100vw时,padding-right就会失效,因为整个父元素的宽度已经撑满视口。 要解决这个问题,…

    2025年12月24日
    000
  • 菜单对齐难?Flex布局如何帮您完美解决?

    菜单对齐难?试试Flex布局! 对于菜单排版,如何让菜名和价格左右对齐,中间虚线居中,想必让不少人头疼不已。 基于这个思路,你可以设定一个基准,例如100个“·”,但可能会面临对齐不准的问题。 Flex布局解决之道: 采用Flex布局,可以让布局更加灵活。 菜名和价格对齐: 对于菜名和价格,直接使用…

    2025年12月24日
    000
  • HTML “ 元素莫名高出 4px:内联元素行内对齐惹的祸?

    行内元素高度突增,溯源探因 在 HTML 中发现 元素无端高出 4px,即便不存在空格。这引发的疑惑是: 问题:为什么 元素会高出? 答案: 立即学习“前端免费学习笔记(深入)”; 这一问题源于 元素内部的内联元素(如)存在行内对齐。行内元素的默认对齐方式为基线对齐,而空格在基线对齐中会占据一定的垂…

    2025年12月24日
    000
  • 如何使用Flex布局让按钮浮动在父容器右边?

    flex布局中让按钮浮动在父容器右边 在flex布局中,通过控制子元素的排布,可以实现各种布局效果。当需要让按钮浮动在父容器右边时,可以通过调整父容器的 justify-content 属性来实现。 修改后的代码如下: .container { justify-content: space-betw…

    好文分享 2025年12月24日
    000
  • 小程序表格如何让取到的数据在新的一行显示?

    小程序“表格”如何让取到的数据在新的一行显示? 小程序的表格默认只会在横向滑动时显示所有数据,但有些情况需要在同一列显示更多数据。本文将介绍如何修改代码,让表格数据在新的一行显示。 问题代码分析 根据提供的代码,问题出在以下部分: .table__row { display: flex; flex-…

    2025年12月24日
    000
  • ElementPlus input.textarea 如何撑满整个盒子?

    elementplus input.textarea如何撑满整个盒子? 使用input.textarea时,有些情况下需要让其高度撑满整个盒子,这时该怎么做呢? 解决方案: 使用行数rows属性: 为textarea设置rows属性,指定其行数。例如: 设置高度height和最小高度min-heig…

    2025年12月24日
    000
  • Flex布局中,子元素设置`width: 0;`和`flex: 1;`为何能防止内容被挤压?

    避免flex容器元素挤压内容 为何在flex布局中,为子元素设置width: 0;与flex: 1;可以避免内容被挤没? 在flex布局中,子元素默认具有min-width: auto和min-height: auto属性。当一个子元素的宽度未显式指定时,它将根据其内容自动伸缩。如果flex容器具有…

    2025年12月24日
    000
  • 如何在 “ 标签中嵌入图片并保持其原始大小?

    如何实现这种样式? 您提供的样式要求包含一个 标签裹着一个图片。为实现此样式,这里提供了一种方法: 解决方案: 采用flex布局,使用如下代码: ` @@##@@ Magician Figma插件,AI生成图标、图片和UX文案 487 查看详情 ` 在这个解决方案中: 元素采用flex布局。 元素包…

    2025年12月24日 好文分享
    000
  • el-table表格单元格换行失效:如何解决代码中 div 嵌套导致的换行问题?

    el-table表格单元格换行难题 在使用el-table表格组件时,有人遇到了单元格无法换行的难题。尝试了许多方法,包括修改表格样式、添加scoped和行内样式,但均无效果。 本篇文章将根据提供的代码问题进行分析解答。 代码如下: 工作日 休息日 节假日 : 按审批时长计算 按打卡时间计算 按审批…

    2025年12月24日
    000
  • 纯CSS实现自适应布局时,如何让方块贴边自动换行靠左对齐?

    纯CSS实现自适应布局 浏览一位网友的提问,他需要实现一个布局,要求方块贴到大容器边上,大容器宽度不定,一行能放几个就几个,小方块自动换行靠左对齐。那么,是否可以使用纯CSS来实现这个需求呢? 答案是肯定的。我们可以使用Flex布局来实现这个布局。Flex布局可以通过设置flex-direction…

    2025年12月24日
    000
  • Flex容器中图片不收缩到容器宽度的解决方法是什么?

    flex元素中为什么图片不适应父元素宽度? 问题:在flex容器中,图片等子元素设置了宽度,但并不会压缩到容器宽度内,原因是什么? 答案:在flex布局中,子元素的min-width和min-height值默认为auto,这使得子元素的大小不会收缩到比内容大小更小。对于图片元素,其内容大小就是图片本…

    2025年12月24日
    000
  • auto在css中的用法

    auto是CSS中表示浏览器根据特定元素属性自动计算值的一个特殊值,可以在height、width、margin、padding、flex-grow和flex-shrink属性中使用,优点包括适应性、节省时间和响应式设计,但需要注意隐藏内容、flex布局和精确控制布局的情况。 auto在CSS中的用…

    好文分享 2025年12月24日
    000
  • 常用的Flex布局属性有哪些

    flex布局的常用属性有哪些,需要具体代码示例 Flex布局是一种用于设计响应式网页布局的强大工具。它通过使用一组灵活的属性,可以轻松控制网页中元素的排列方式和尺寸。在本文中,我将介绍Flex布局的常用属性,并提供具体的代码示例。 display:设置元素的显示方式为Flex。 .container…

    2025年12月24日
    000
  • 常用的CSS display属性取值及其应用场景

    掌握CSS display属性的常见取值及其应用场景,需要具体代码示例 CSS(Cascading Style Sheets)是一种用于描述HTML文档样式的标记语言,其中display属性是非常重要的一个属性。display属性可用于定义元素的显示行为,并决定了元素在页面上的布局方式、盒模型类型等…

    2025年12月24日
    000
  • 如何通过Css Flex 弹性布局实现不规则的网格布局

    如何通过CSS Flex 弹性布局实现不规则的网格布局 在网页设计中,常常需要使用网格布局来实现页面的分割和排版,通常的网格布局都是规则的,每个网格大小相同,而有时候我们可能需要实现一些不规则的网格布局。 CSS Flex 弹性布局是一种强大的布局方式,它可以很容易地实现各种网格布局,包括不规则的网…

    2025年12月24日
    000
  • 如何通过Css Flex 弹性布局实现页面元素的垂直居中

    如何通过CSS Flex弹性布局实现页面元素的垂直居中 在网页设计中,经常会遇到需要将页面元素进行垂直居中的情况。CSS Flex弹性布局是一种优雅简洁且灵活的布局方式,能够轻松实现页面元素的垂直居中。本文将详细介绍如何使用CSS Flex布局实现页面元素的垂直居中,并提供具体的代码示例。 一、基本…

    2025年12月24日
    000
  • 如何通过Css Flex 弹性布局实现响应式登录表单

    如何通过 CSS Flex 弹性布局实现响应式登录表单 在现代网页设计中,响应式设计已成为不可或缺的一个部分。随着越来越多的用户在不同设备上访问网页,我们需要确保网页能够根据不同的屏幕尺寸和设备方向进行适配。CSS Flex 弹性布局是一种优秀的工具,可以帮助我们创建响应式布局和灵活的网页元素。 本…

    2025年12月24日
    000
  • 如何通过Css Flex 弹性布局实现两栏布局

    如何通过CSS Flex弹性布局实现两栏布局 CSS Flex弹性布局是一种现代的布局技术,它能够简化网页布局的过程,使得设计与开发者们能够轻松创建出灵活且适应各种屏幕尺寸的布局。其中,实现两栏布局是Flex布局中的常见需求之一。在这篇文章中,我们将会介绍如何使用CSS Flex弹性布局来实现一个简…

    2025年12月24日
    000
  • 学习CSS3的flex布局,如何创建灵活的网页布局?

    学习CSS3的flex布局,如何创建灵活的网页布局? 在网页设计中,布局起着至关重要的作用。通过一个良好的布局,可以使网页看起来更加整洁、美观,并且适应不同屏幕尺寸和设备。而CSS3的flex布局则提供了一种灵活且强大的方式来创建网页布局。本文将介绍什么是flex布局以及如何利用它创建灵活的网页布局…

    2025年12月24日
    000

发表回复

登录后才能评论
关注微信