首页 > 其他分享 >Flex布局

Flex布局

时间:2024-06-23 21:53:21浏览次数:18  
标签:容器 Flex 布局 item 主轴 flex 对齐

Flex容器是什么

任何容器都可以使用Flex布局,当我们设置一个容器(一般是div)的display样式为display: flex; display: inline-flex; 的时候,这个容器就是一个Flex容器。
Flex容器有几个比较重要的概念:
1、水平主轴(main axis) 和垂直交叉轴(cross axis),默认情况下,水平方向为main axis,垂直方向为cross axis,当然你也可以手动修改,使水平方向为cross axis,垂直方向为main axis,这个我们一般不需要修改。
2、flex item:Flex容器中的每一个项被称为flex item。
3、主轴空间、交叉轴空间:我们可以简单的这么理解, 每个flex item在主轴方向上的宽度为主轴空间。每个flex item在垂直方向上的高度为交叉轴空间。

Flex容器样式

在Flex容器上可以设置的css样式主要有六个,分别是flex-direction、flex-wrap、 flex-flow、 justify-content、 align-items、 align-content。接下来依次介绍这几个属性

容器样式1:flex-direction:设置主轴的方向,其实就是flex item的排列方向。

默认值:row:主轴为水平方向,flex item水平方向从左向右依次排列。
row-reverse:主轴为水平方向,flex item水平方向从右向左依次排列。
column:主轴为垂直方向,flex item垂直方向从上到下依次排列。
column-reverse:主轴为垂直方向,flex item垂直方向从下到上依次排列。

容器样式2:flex-wrap:决定容器内项目是否可以换行

默认值nowrap:flex item不可以换行,主轴空间改变时,flex item的空间会随着主轴空间会跟随主轴调整。
wrap:主轴总尺寸超出容器尺寸的时候,换行。
wrap-reverse:主轴总尺寸超出容器尺寸的时候,换行,不过第一行在下面,而不是在上面。

容器样式3:flex-flow:flex-direction和flex-wrap的简写。

语法如下:flex-flow: row nowrap;

容器样式4:justify-content:定义了flex item在主轴上的对齐方式

默认值flex-start:左对齐
flex-end:右对齐。
center:居中对齐。
space-between:两端对齐,项目之间间隔相等,左右两边贴着容器最左边和最右边。
space-around:每个flex item左右两边的距离相等,所有最左边的距离和最右边的距离比中间的距离少一倍。

容器样式5:align-items:定义flex item在交叉轴的对齐方式

默认值stretch:填满flex容器的高度。
flex-start:flex item高度不同的时候,顶部对齐。
flex-end:flex item高度不同的时候,底部对齐。
center:flex item高度不同的时候,垂直方向居中对齐。
baseline:第一个flex item中文字的基线对齐,一般用的少。

容器属性6:align-content:定义多根轴线的对齐方式。 这个稍后学习

当你的flex-wrap设置为nowrap的时候,只有一根主轴,这个属性不起作用。只有当flex item有可能换行的时候,这个属性会起作用。

Flex Item属性

除了可以在Flex容器上设置css样式之外,还可以在每一个具体的flex item元素上设置css样式,主要有以下样式:order、flex-basis、flex-grow、flex-shrink、flex、align-self这几个属性。

Flex Item属性1:order:定义flex item在flex容器中的位置

order默认值为0,数值越小,越排在前面。

Flex Item样式2:flex-grow:定义项目在主轴的放大比例

如果主轴有剩余的空间,flex-grow定义项目的空间如何放大。默认值为0,也就是不放大。如果flex-grow都设置为1的话,所有项目同比例放大,如果flex-grow设置为1:2的话,两个flex item的空间比例为1:2。
那如果主轴的空间不够用,就需要压缩空间,这个时候压缩空间的比例,就要用到下面这个属性了。

Flex Item样式3:flex-shrink:定义项目在主轴的缩小比例

默认值flex-shrink,当主轴空间不足的时候,不压缩flex item的空间。

Flex Item样式4:flex:flex-grow flex-shrink 和flex-basis 三个属性的结合。

格式如下:flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]

Flex Item样式5:align-self 允许单个项目有自己在交叉轴的对齐方式

默认值auto,继承flex容器的align-items的属性。

Flex Item样式6:flex-basis 这个稍后学习

标签:容器,Flex,布局,item,主轴,flex,对齐
From: https://www.cnblogs.com/caoruipeng/p/18162727

相关文章

  • 面试官:请你实现三栏布局并且优先加载中间内容 我:稳啦- ̗̀(๑ᵔ⌔ᵔ๑)
    前言三栏布局是网页设计中一种经典布局方式,它将页面分为三个垂直部分:左栏、中栏和右栏,三栏在同一行显示。这种布局模式在很多网站的首页或内容密集型页面中非常常见,因为它能够有效地组织信息,提供良好的用户体验。常常也是作为面试常考题出现,今天将为大家介绍常见的三栏布......
  • GridPane网格布局
    JavaFX的GridPane是一种基于网格的布局方式,它允许你将子节点放置在网格的行和列中。GridPane提供了高度的灵活性来创建复杂的用户界面布局。以下是GridPane的一些基本用法:添加节点到网格:使用add方法将子节点添加到特定的行和列。行和列的索引:行和列的索引都是从0开......
  • DialogPane对话框布局
    JavaFX的DialogPane是一个用于创建对话框的控件,它是Dialog类内容部分的根节点。DialogPane提供了一个灵活的方式来自定义对话框的内容和行为。以下是DialogPane的一些基本用法:构造函数:DialogPane可以通过多种构造函数创建,可以指定标题、头部、内容和扩展按钮。标......
  • FlowPane流式布局
    JavaFX的FlowPane是一种流式布局的面板,它能够自动将子节点排列成多行或多列,当一行或一列填满后,会自动换行或换列。FlowPane非常适合用来创建动态的、可适应不同窗口大小的布局。以下是FlowPane的一些基本用法和特性:排列方向:FlowPane默认的排列方向是水平的,子节点会从左......
  • AnchorPane锚点布局
    JavaFX的AnchorPane是一种布局方式,允许你通过指定锚点来定位子节点。锚点是相对于父节点边缘的位置,你可以使用这些锚点来控制子节点的位置和大小。AnchorPane非常适合用来创建复杂的布局,其中组件的位置需要相对于其他组件或父容器的边缘进行定位。以下是AnchorPane的一些基......
  • BorderPane边框布局
    JavaFX的BorderPane是一种布局方式,它将容器分为五个区域:顶部(top)、底部(bottom)、左侧(left)、右侧(right)和中心(center)。每个区域可以放置一个节点,中心区域可以放置任意类型的节点,而其他四个区域通常放置较小的控件或组件。以下是BorderPane的一些基本用法:区域设置:使用setTop......
  • 第二讲 常见布局及控件
    第二讲常见布局及控件一.RelativeLayout格式:android:layout_二.线性布局 layout_width不要设置wrap_content没有用layout_weight是每个控件占权重线性布局默认水平显示选择题:1.在下列选项中,用于给Activity指定主题的属性是(C)A、iconB、labelC、themeD、style分......
  • qt开发-08_layout 布局
    Qt提供了非常丰富的布局类,基本布局管理类包括:QBoxLayout、QGridLayout、QFormLayout和QStackedLayout。这些类都从QLayout继承而来,它们都来源于QObject(而不是QWidget)。创建更加复杂的布局,可以让它们彼此嵌套完成。其中QBoxLayout提供了水平和垂直的布局管理;QFormLa......
  • fyne的VBox布局
    fyne的VBox布局最常用的布局是layout.BoxLayout,它有两种变体,水平和垂直。box布局将所有元素排列在单行或单列中,并带有可选的空格以帮助对齐。一步一步实现一个如下界面布局,这个界面可以使用VBox布局来实现。代码1packagemainimport( "fyne.io/fyne/v2" "fyne.io/......
  • fyne的border布局02
    border布局02边框布局可能是最广泛用于构建用户界面的布局,因为它允许将项目定位在中心元素周围,而中心元素将扩展以填充空间。实现如下一个界面布局:实现代码如下:packagemainimport( "edgevpndemo/resources" "fyne.io/fyne/v2" "fyne.io/fyne/v2/app" "fyne.i......