布局之弹性布局

// 弹性布局
@Entry
@Component
struct FlexPage {
  @State message: string = 'Hello World'

  build() {
    // Flex({direction:FlexDirection.Row}){//使其主轴方向为水平方向,并且排布方向为正向(从左到右
    //   Column(){Text('1').fontColor(Color.White)}.width('20%').height(60).backgroundColor(Color.Blue)
    //   Column(){Text('2').fontColor(Color.White)}.width('20%').height(60).backgroundColor(Color.Pink)
    //   Column(){Text('3').fontColor(Color.White)}.width('20%').height(60).backgroundColor(Color.Gray)
    // }
    // .width('100%')
    // .height('100%')

    // Flex({direction:FlexDirection.RowReverse}){//使其主轴方向为水平方向,并且排布方向为反向(从右到左
    //   Column(){Text('1').fontColor(Color.White)}.width('20%').height(60).backgroundColor(Color.Blue)
    //   Column(){Text('2').fontColor(Color.White)}.width('20%').height(60).backgroundColor(Color.Pink)
    //   Column(){Text('3').fontColor(Color.White)}.width('20%').height(60).backgroundColor(Color.Gray)
    // }
    // .width('100%')
    // .height('100%')

    // Flex({direction:FlexDirection.Column}){//使其主轴方向为垂直方向,并且排布方向为正向(从上到下
    //   Column(){Text('1').fontColor(Color.White)}.width('20%').height(60).backgroundColor(Color.Blue)
    //   Column(){Text('2').fontColor(Color.White)}.width('20%').height(60).backgroundColor(Color.Pink)
    //   Column(){Text('3').fontColor(Color.White)}.width('20%').height(60).backgroundColor(Color.Gray)
    // }
    // .width('100%')
    // .height('100%')

    // Flex({direction:FlexDirection.ColumnReverse}){//使其主轴方向为垂直方向,并且排布方向为反向(从下到上
    //   Column(){Text('1').fontColor(Color.White)}.width('20%').height(60).backgroundColor(Color.Blue)
    //   Column(){Text('2').fontColor(Color.White)}.width('20%').height(60).backgroundColor(Color.Pink)
    //   Column(){Text('3').fontColor(Color.White)}.width('20%').height(60).backgroundColor(Color.Gray)
    // }
    // .width('100%')
    // .height('100%')

    // wrap:FlexWrap.Wrap换行,就是当子元素的宽度合大于父元素的宽度的时候就会换行
    // wrap:FlexWrap.WrapReverse换行,就是当子元素的宽度合大于父元素的宽度的时候就会换行并且会使排布方向与原本方向相反
    // wrap:FlexWrap.NoWrap不换行,如果当子元素的宽度合大于父元素的宽度的时候就会压缩子元素的宽度
    // Flex({direction:FlexDirection.Row,wrap:FlexWrap.WrapReverse}){//使其主轴方向为水平方向,并且排布方向为正向(从左到右
    //   Column(){Text('1').fontColor(Color.White)}.width('50%').height(60).backgroundColor(Color.Blue)
    //   Column(){Text('2').fontColor(Color.White)}.width('50%').height(60).backgroundColor(Color.Pink)
    //   Column(){Text('3').fontColor(Color.White)}.width('50%').height(60).backgroundColor(Color.Gray)
    // }
    // .width('100%')
    // .height('100%')

  //   主轴方向的对齐方式是通过justifyContent参数设置在主轴方向的对齐方式。跟线性布局的是一样的,可以移步去看线性布局的

  //   下面是交叉轴的对齐方式
  //   alignItems:ItemAlign.Start交叉轴的开始位置对齐,因为这里的主轴方向是水平方向,所以交叉轴就是垂直方向,所以就是顶部对齐
  //   alignItems:ItemAlign.Center子元素位于交叉轴的中心位置并且居中对齐
  //   alignItems:ItemAlign.End子元素位于交叉轴的结束位置并且底部对齐
  //   alignItems:ItemAlign.Baseline子元素文本基线对齐,就是子元素的文本处于一条水平线上
  //   alignItems:ItemAlign.Stretch子元素在交叉轴方向进行拉伸填充,使其和父元素一样
  //   注: 子组件的alignSelf属性也可以设置子组件在父容器交叉轴的对齐格式,且会覆盖Flex布局容器中alignItems配置
  //   Flex({direction:FlexDirection.Row,justifyContent:FlexAlign.Center,alignItems:ItemAlign.Stretch}){//使其主轴方向为水平方向,并且排布方向为正向(从左到右
  //     Column(){Text('1').height('100%').fontColor(Color.White)}.width('25%').height(30).backgroundColor(Color.Blue)
  //     Column(){Text('2').height('100%').fontColor(Color.White)}.width('25%').height(60).backgroundColor(Color.Pink)
  //     Column(){Text('3').height('100%').fontColor(Color.White)}.width('25%').height(90).backgroundColor(Color.Gray)
  //   }
  //   .width('100%')
  //   .height('100%')

  //   内容对齐方式
    Flex({ justifyContent: FlexAlign.SpaceBetween, wrap: FlexWrap.Wrap, alignContent: FlexAlign.SpaceEvenly }) {
      Text('1').width('30%').height(20).backgroundColor(0xF5DEB3)
      Text('2').width('60%').height(20).backgroundColor(0xD2B48C)
      Text('3').width('40%').height(20).backgroundColor(0xD2B48C)
      Text('4').width('30%').height(20).backgroundColor(0xF5DEB3)
      Text('5').width('20%').height(20).backgroundColor(0xD2B48C)
    }
    .width('90%')
    .height(100)
    .backgroundColor(0xAFEEEE)

  //   flexBasis设置子组件的主轴方向的大小,如果flexBasis设置了值,以flexBasis大小为主,反之则以设置的width/height为主
  //   如果没有设置width/height则自适应尺寸
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flex布局,也称为弹性布局,是一种浏览器提倡的布局模型。它的特点是可以更简单、灵活地布局网页,避免了浮动脱标的问题。通过使用Flex布局,我们可以精确灵活地控制块级盒子的布局方式,避免浮动布局中脱离文档流现象的发生。Flex布局非常适合用于结构化布局。 Flex布局的设置方式是在父元素上添加`display: flex`,这样子元素就可以自动地被挤压或拉伸。Flex布局由弹性容器、弹性盒子、主轴、侧轴/交叉轴组成。 在Flex布局中,`flex`属性是`flex-grow`、`flex-shrink`和`flex-basis`三个属性的简写,默认值为`0 1 auto`。其中`flex-grow`表示弹性元素的放大比例,`flex-shrink`表示弹性元素的缩小比例,`flex-basis`表示弹性元素的初始大小。 除了`flex`属性,还有一些其他的属性可以用来设置Flex布局,这些属性设置在容器上,包括`flex-direction`、`flex-wrap`、`flex-flow`、`justify-content`、`align-items`和`align-content`等属性,用来控制弹性容器和弹性盒子的布局方式。 总结来说,Flex布局是一种简单、灵活的布局模型,通过使用弹性容器和弹性盒子,可以精确控制块级盒子的布局方式,避免了浮动布局中的问题。使用Flex布局可以使网页的布局更加简单、灵活,适用于结构化布局。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Flex布局(弹性布局)-图文介绍](https://blog.csdn.net/qq_52031408/article/details/124053711)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [flex弹性布局](https://blog.csdn.net/m0_48958478/article/details/125508280)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值