flex布局之容器元素属性

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: flex布局之容器元素属性

容器元素属性


  • order


  • flex-grow


  • flex-shrink


  • flex-basis


  • flex


  • align-self


order


该属性是决定元素排列顺序的。数值越小,排列越靠前,默认为0。如果都为0,就按照代码顺序排列。


<style>
    .box {
      width: 800px;
      display: flex;
    }
    .box div {
      width: 200px;
    }
    .first {
      background: red;
      order: 4;
    }
    .second {
      background: blue;
      order: 3;
    }
    .third {
      background: yellow;
      /* order: 2; */
    }
    .four {
      background: green;
    }
  <div class="box">
    <div class="first">1</div>
    <div class="second">2</div>
    <div class="third">3</div>
    <div class="four">4</div>
  </div>


网络异常,图片无法展示
|


flex-grow


当容器宽度大于容器元素总宽度时,规定容器元素的放大比例。默认为0,即如果存在剩余空间,也不放大。注意:当容器设为flex-wrap: nowrap;不换行的时候,容器宽度有不够分的情况,弹性元素会根据flex-grow来决定。弹性容器的宽度正好等于元素宽度总和,无多余宽度,此时无论flex-grow是什么值都不会生效。


<style>
    .box {
      width: 800px;
      display: flex;
      border: 1px solid black;
    }
    .box div {
      width: 100px;
    }
    .first {
      background: red;
      /* order: 4; */
      flex-grow: 2;
    }
    .second {
      background: blue;
      /* order: 3; */
      flex-grow: 1;
    }
    .third {
      background: yellow;
      /* order: 2; */
    }
    .four {
      background: green;
    }
  </style>
  <div class="box">
    <div class="first">1</div>
    <div class="second">2</div>
    <div class="third">3</div>
    <div class="four">4</div>
  </div>


网络异常,图片无法展示
|


网络异常,图片无法展示
|


flex-shrink


定义了项目的缩小比例(容器宽度<元素总宽度时如何收缩),默认为1,即如果空间不足,该项目将缩小。默认情况下等比例收缩。如果值为0,则该元素不缩小。


<style>
    .box {
      width: 800px;
      display: flex;
      border: 1px solid black;
    }
    .box div {
      width: 250px;
    }
    .first {
      background: red;
      /* order: 4; */
      /* flex-grow: 2; */
      flex-shrink: 0;
    }
    .second {
      background: blue;
      /* order: 3; */
      /* flex-grow: 1; */
      flex-shrink: 2;
    }
    .third {
      background: yellow;
      /* order: 2; */
    }
    .four {
      background: green;
    }
  </style>
  <div class="box">
    <div class="first">1</div>
    <div class="second">2</div>
    <div class="third">3</div>
    <div class="four">4</div>
  </div>


网络异常,图片无法展示
|


flex-basis(个人感觉用处不大)


设置的是元素在主轴上的初始尺寸,所谓的初始尺寸就是元素在flex-growflex-shrink生效前的尺寸,即设置flex-grow, flex-shrink后该值将失效。默认值为auto。如设置了width则元素尺寸由width/height决定(主轴方向),没有设置则由内容决定。当设置为px的数值时,他会覆盖掉元素自身的主轴方向的宽度/高度。


flex-basis: 0 和 flex-basis: auto的区别:


  • flex-basis: auto 表示项目的本来大小,当设置为 auto 时会根据主轴方向检索该 flex-itemwidthheight 值作为 flex-basis 的值。如果 widthheight 值为 auto,则 flex-basis 设置为 content,也就是基于 flex 的元素的内容自动调整大小。


  • flex-basis: 0 相当于指定了宽度或高度(由主轴方向决定)为 0。


flex


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


一些常用缩写表示:


-   flex: 1 = flex: 1 1 0%
-   flex: 2 = flex: 2 1 0%
-   flex: auto = flex: 1 1 auto
-   flex: none = flex: 0 0 auto,常用于固定尺寸不伸缩


align-self


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


可以取:align-self: auto | flex-start | flex-end | center | baseline | stretch

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


<style>
    .box {
      width: 800px;
      height: 300px;
      display: flex;
      border: 1px solid black;
      align-items: center;
    }
    .box div {
      width: 150px;
    }
    .first {
      background: red;
      align-self: auto;
    }
    .second {
      background: blue;
      align-self: stretch;
    }
    .third {
      background: yellow;
      align-self: baseline;
    }
    .four {
      background: green;
      align-self: flex-end;
    }
  </style>
  <div class="box">
    <div class="first">1</div>
    <div class="second">2</div>
    <div class="third">3</div>
    <div class="four">4</div>
  </div>


网络异常,图片无法展示
|


flex布局的注意点:


  • 如果父元素flex-wrap: nowrap,即使子元素宽度固定,最后也会被压缩成一行显示。


网络异常,图片无法展示
|


  • 设置父元素display: flexdisplay: inline-flex的区别。他只是将父元素当场块级元素,还是内联元素。子元素不会受到影响。


  • 如果子元素未设置高度,那么父元素align-items: stretch。子元素将被拉伸,占满父元素的高度。


网络异常,图片无法展示
|



相关文章
|
25天前
|
容器
Bootstrap5 Flex(弹性)布局4
排序:.order 类可设置弹性子元素的排序,范围从 .order-1 至 .order-12,数字越小优先级越高。外边距:.ms-auto 和 .me-auto 分别用于设置子元素的右侧和左侧外边距为 auto。包裹:.flex-nowrap(默认)、.flex-wrap 和 .flex-wrap-reverse 用于控制弹性容器中的子元素是否换行及换行方向。
|
24天前
|
容器
Bootstrap5 Flex(弹性)布局6
使用 `.align-self-*` 类可控制指定子元素的对齐方式,包括 `.align-self-start`, `.align-self-end`, `.align-self-center`, `.align-self-baseline`, 和 `.align-self-stretch`。示例代码展示了如何在一个弹性布局中应用这些类,以实现不同设备上的响应式设计。
|
24天前
Bootstrap5 Flex(弹性)布局5
使用 .align-content-* 控制多行子元素在垂直方向上的堆叠方式,如 .align-content-start、.align-content-center 等。对于单行子元素,使用 .align-items-* 控制对齐,例如 .align-items-start、.align-items-center 等。示例代码展示了不同对齐效果的应用。
|
25天前
Bootstrap5 Flex(弹性)布局2
介绍Flex布局的水平和垂直方向控制。`.flex-row`使子元素水平排列,默认左对齐;`.flex-row-reverse`则右对齐。`.flex-column`让子元素垂直排列;`.flex-column-reverse`则反向排列。示例展示了不同类的效果,通过改变类名实现布局调整。
|
25天前
Bootstrap5 Flex(弹性)布局3
`.justify-content-*` 类用于调整弹性子元素的对齐方式,支持 start、end、center、between、around 等值。`.flex-fill` 类使所有子元素等宽,而 `.flex-grow-1` 则让指定子元素占据剩余空间。这些类在布局设计中非常实用。
|
1月前
|
容器
HTML中使用Flex布局实现双行夹批效果
在HTML中,还可以用table元素来实现双行夹批效果,但比flex布局代码更复杂,效果也不见得更理想。
42 10
|
1月前
|
开发者 UED 容器
鸿蒙next版开发:ArkTS组件通用属性(Flex布局)
在HarmonyOS next中,ArkTS的Flex布局是一种强大且灵活的布局方式,支持水平或垂直方向排列元素,并能动态调整大小和位置以适应不同屏幕。主要属性包括justifyContent、alignItems、direction和wrap,适用于导航栏、侧边栏和表单等多种场景。示例代码展示了如何使用这些属性创建美观的布局。
79 10
|
3月前
|
开发者 容器
flex 布局属性在实际项目中的应用场景有哪些?
flex 布局属性在实际项目中的应用场景有哪些?
|
2月前
|
前端开发 UED 容器
使用 Flex 布局实现垂直居中效果
【10月更文挑战第7天】
275 57
|
1月前
|
前端开发 UED 容器
在 CSS 中使用 Flex 布局实现页面自适应时需要注意什么?
【10月更文挑战第22天】在使用 Flex 布局实现页面自适应时,需要对其基本原理和特性有深入的理解,同时结合具体的布局需求和场景,进行细致的调整和优化。通过合理的设置和注意事项的把握,才能实现理想的自适应效果,提升用户体验。还可以根据实际情况进行更深入的探索和实践,以不断提升 Flex 布局的应用能力。