BootStrap4工具类之flex布局

官方地址

https://getbootstrap.com/docs/4.4/utilities/flex/

其他文档地址

认识flex

启用flex

通用flex

  • .d-flex
  • .d-inline-flex
<div class="container">
    <h1>启用flex</h1>
    <h2>d-flex</h2>

    <div class="d-flex p-2 bg-primary">I'm a flexbox container!</div>

    <hr/>

    <h2>d-inline-flex</h2>

    <div class="d-inline-flex p-2 bg-success">I'm an inline flexbox container!</div>

</div>

响应式flex

  • .d-{breakpoint}-{flex | inline-flex}

    • .d-flex
    • .d-inline-flex
    • .d-sm-flex
    • .d-sm-inline-flex
    • .d-md-flex
    • .d-md-inline-flex
    • .d-lg-flex
    • .d-lg-inline-flex
    • .d-xl-flex
    • .d-xl-inline-flex
<div class="container">
    <h1>响应式flex</h1>
    <p>.d-flex 和 .d-inline-flex 也存在响应式设计。</p>
    <ul>
        <li><code class="">.d-flex</code></li>
        <li><code class="">.d-inline-flex</code></li>
        <li><code class="">.d-sm-flex</code></li>
        <li><code class="">.d-sm-inline-flex</code></li>
        <li><code class="">.d-md-flex</code></li>
        <li><code class="">.d-md-inline-flex</code></li>
        <li><code class="">.d-lg-flex</code></li>
        <li><code class="">.d-lg-inline-flex</code></li>
        <li><code class="">.d-xl-flex</code></li>
        <li><code class="">.d-xl-inline-flex</code></li>
    </ul>
</div>

flex布局方向

  • .flex-row
  • .flex-row-reverse
  • .flex-column
  • .flex-column-reverse

水平

  • .flex-row
  • .flex-row-reverse
<h2>水平方向</h2>
<div class="d-flex flex-row bg-light mb-3">
    <div class="p-2 bg-primary">Flex item 1</div>
    <div class="p-2 bg-success">Flex item 2</div>
    <div class="p-2 bg-info">Flex item 3</div>
</div>
<hr/>
<div class="d-flex flex-row-reverse bg-light">
    <div class="p-2 bg-info">Flex item 1</div>
    <div class="p-2 bg-success">Flex item 2</div>
    <div class="p-2 bg-primary">Flex item 3</div>
</div>

垂直

  • .flex-column
  • .flex-column-reverse
<h2>垂直方向</h2>
<div class="d-flex flex-column bg-light mb-3">
    <div class="p-2 bg-warning">Flex item 1</div>
    <div class="p-2 bg-danger">Flex item 2</div>
    <div class="p-2 bg-dark">Flex item 3</div>
</div>
<hr/>
<div class="d-flex flex-column-reverse bg-light">
    <div class="p-2 bg-dark">Flex item 1</div>
    <div class="p-2 bg-danger">Flex item 2</div>
    <div class="p-2 bg-warning">Flex item 3</div>
</div>

响应式方向

  • .flex-{breakpoint}-{row | row-reverse | column | column-reverse}
    • .flex-row
    • .flex-row-reverse
    • .flex-column
    • .flex-column-reverse
    • .flex-sm-row
    • .flex-sm-row-reverse
    • .flex-sm-column
    • .flex-sm-column-reverse
    • .flex-md-row
    • .flex-md-row-reverse
    • .flex-md-column
    • .flex-md-column-reverse
    • .flex-lg-row
    • .flex-lg-row-reverse
    • .flex-lg-column
    • .flex-lg-column-reverse
    • .flex-xl-row
    • .flex-xl-row-reverse
    • .flex-xl-column
    • .flex-xl-column-reverse

调整内容

使用 flexbox 容器上的 justify-content 通用类别改变 flex 子元素在主轴上的对齐(从x轴开始,如果 flex-direction: column 则为 y 轴)。

  • .justify-content-start
  • .justify-content-end
  • .justify-content-center
  • .justify-content-between
  • .justify-content-around

x轴

flex-direction: row | row-reverse

<h1>flex-direction: row</h1>
<div class="">
    <h1>justify-content-start</h1>
    <div class="d-flex justify-content-start bg-light mb-3">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
    <h1>justify-content-end</h1>
    <div class="d-flex justify-content-end bg-light mb-3">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
    <h1>justify-content-center</h1>
    <div class="d-flex justify-content-center bg-light mb-3">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
    <h1>justify-content-between</h1>
    <div class="d-flex justify-content-between bg-light mb-3">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
    <h1>justify-content-around</h1>
    <div class="d-flex justify-content-around bg-light">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
</div>

y轴

flex-direction: column | column-reverse

<h1>flex-direction: column</h1>
<div class="">
    <h1>justify-content-start</h1>
    <div class="d-flex flex-column justify-content-start bg-light mb-3 vh-100">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
    <h1>justify-content-end</h1>
    <div class="d-flex flex-column justify-content-end bg-light mb-3 vh-100">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
    <h1>justify-content-center</h1>
    <div class="d-flex flex-column justify-content-center bg-light mb-3 vh-100">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
    <h1>justify-content-between</h1>
    <div class="d-flex flex-column justify-content-between bg-light mb-3 vh-100">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
    <h1>justify-content-around</h1>
    <div class="d-flex flex-column justify-content-around bg-light vh-100">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
</div>

justify-content响应式属性

  • .justify-content-{breakpoint}-{start | end | center | between | around}
    • .justify-content-start
    • .justify-content-end
    • .justify-content-center
    • .justify-content-between
    • .justify-content-around
    • .justify-content-sm-start
    • .justify-content-sm-end
    • .justify-content-sm-center
    • .justify-content-sm-between
    • .justify-content-sm-around
    • .justify-content-md-start
    • .justify-content-md-end
    • .justify-content-md-center
    • .justify-content-md-between
    • .justify-content-md-around
    • .justify-content-lg-start
    • .justify-content-lg-end
    • .justify-content-lg-center
    • .justify-content-lg-between
    • .justify-content-lg-around
    • .justify-content-xl-start
    • .justify-content-xl-end
    • .justify-content-xl-center
    • .justify-content-xl-between
    • .justify-content-xl-around

对齐项目

flexbox 容器上使用 align-items 工具改变横轴上 flex 物件的对齐(从y 轴开始,如果 flex-direction: column 则为 x 轴)。

  • .align-items-start
  • .align-items-end
  • .align-items-center
  • .align-items-baseline
  • .align-items-stretch

x轴

flex-direction: row | row-reverse

<div class="">
    <h1>align-items-start</h1>
    <div class="d-flex align-items-start bg-light mb-3 vh-100">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
    <h1>align-items-end</h1>
    <div class="d-flex align-items-end bg-light mb-3 vh-100">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
    <h1>align-items-center</h1>
    <div class="d-flex align-items-center bg-light mb-3 vh-100">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
    <h1>align-items-baseline</h1>
    <div class="d-flex align-items-baseline bg-light mb-3 vh-100">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
    <h1>align-items-stretch</h1>
    <div class="d-flex align-items-stretch bg-light vh-100">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
</div>

y轴

flex-direction: column | column-reverse

<h1>flex-direction: column</h1>
<div class="">
    <h1>align-items-start</h1>
    <div class="d-flex flex-column align-items-start bg-light mb-3 vh-100">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
    <h1>align-items-end</h1>
    <div class="d-flex flex-column align-items-end bg-light mb-3 vh-100">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
    <h1>align-items-center</h1>
    <div class="d-flex flex-column align-items-center bg-light mb-3 vh-100">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
    <h1>align-items-baseline</h1>
    <div class="d-flex flex-column align-items-baseline bg-light mb-3 vh-100">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
    <h1>align-items-stretch</h1>
    <div class="d-flex flex-column align-content-stretch bg-light vh-100">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
</div>

align-items的响应式属性

  • .align-items-{breakpoint}-{start | end | center | baseline | stretch}
    • .align-items-start
    • .align-items-end
    • .align-items-center
    • .align-items-baseline
    • .align-items-stretch
    • .align-items-sm-start
    • .align-items-sm-end
    • .align-items-sm-center
    • .align-items-sm-baseline
    • .align-items-sm-stretch
    • .align-items-md-start
    • .align-items-md-end
    • .align-items-md-center
    • .align-items-md-baseline
    • .align-items-md-stretch
    • .align-items-lg-start
    • .align-items-lg-end
    • .align-items-lg-center
    • .align-items-lg-baseline
    • .align-items-lg-stretch
    • .align-items-xl-start
    • .align-items-xl-end
    • .align-items-xl-center
    • .align-items-xl-baseline
    • .align-items-xl-stretch

自身对齐

使用 flexbox 物件上的 align-self 通用类别单独改变在横轴上的对齐(从y 轴开始,如果 flex-direction: column 则为 x 轴)。

  • .align-self-start
  • .align-self-end
  • .align-self-center
  • .align-self-baseline
  • .align-self-stretch

x轴

.flex-direction: row | row-reverse

<h1>flex-direction: row</h1>
<div class="">
    <h1>align-self-start</h1>
    <div class="d-flex bg-light mb-3 vh-100">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success align-self-start ">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
    <h1>align-self-end</h1>
    <div class="d-flex bg-light mb-3 vh-100">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success align-self-end">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
    <h1>align-self-center</h1>
    <div class="d-flex bg-light mb-3 vh-100">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success align-self-center">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
    <h1>align-self-baseline</h1>
    <div class="d-flex bg-light mb-3 vh-100">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success align-self-baseline">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
    <h1>align-items-stretch</h1>
    <div class="d-flex bg-light vh-100">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success align-items-stretch">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
</div>

y轴

flex-direction: column | column-reverse

<h1>flex-direction: column</h1>
<div class="">
    <h1>align-self-start</h1>
    <div class="d-flex flex-column bg-light mb-3 vh-100">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success align-self-start">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
    <h1>align-self-end</h1>
    <div class="d-flex flex-column bg-light mb-3 vh-100">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success align-self-end">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
    <h1>align-self-center</h1>
    <div class="d-flex flex-column bg-light mb-3 vh-100">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success align-self-center">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
    <h1>align-self-baseline</h1>
    <div class="d-flex flex-column bg-light mb-3 vh-100">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success align-self-baseline">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
    <h1>align-self-stretch</h1>
    <div class="d-flex flex-column bg-light vh-100">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success align-self-stretch">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
    </div>
</div>

align-self的响应式属性

  • .align-self-{breakpoint}-{start | end | center | baseline | stretch}
    • .align-self-start
    • .align-self-end
    • .align-self-center
    • .align-self-baseline
    • .align-self-stretch
    • .align-self-sm-start
    • .align-self-sm-end
    • .align-self-sm-center
    • .align-self-sm-baseline
    • .align-self-sm-stretch
    • .align-self-md-start
    • .align-self-md-end
    • .align-self-md-center
    • .align-self-md-baseline
    • .align-self-md-stretch
    • .align-self-lg-start
    • .align-self-lg-end
    • .align-self-lg-center
    • .align-self-lg-baseline
    • .align-self-lg-stretch
    • .align-self-xl-start
    • .align-self-xl-end
    • .align-self-xl-center
    • .align-self-xl-baseline
    • .align-self-xl-stretch

换行

默认情况下,flex的子元素是在一行上显示的。可设置以下的值:

  • .flex-nowrap (默认)
  • .flex-wrap
  • .flex-wrap-reverse

不换行

默认就是 or flex-nowrap

<div class="">
    <div class="d-flex flex-nowrap bg-dark p-2" style="width: 200px;">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
    </div>
</div>

换行

.flex-wrap

<div class="">
    <div class="d-flex flex-wrap bg-dark p-2" style="width: 200px;">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
    </div>
</div>

换行反转

.flex-wrap-reverse

<h1>.flex-wrap-reverse</h1>
<div class="">
   <div class="d-flex flex-wrap-reverse bg-dark p-2" style="width: 200px;">
       <div class="p-2 bg-primary">Flex item</div>
       <div class="p-2 bg-secondary">Flex item</div>
       <div class="p-2 bg-success">Flex item</div>
       <div class="p-2 bg-info">Flex item</div>
       <div class="p-2 bg-warning">Flex item</div>
   </div>
</div>

flex-wrap的响应式属性

  • .flex-{breakpoint}-{nowrap | wrap | wrap-reverse}
    • .flex-nowrap
    • .flex-wrap
    • .flex-wrap-reverse
    • .flex-sm-nowrap
    • .flex-sm-wrap
    • .flex-sm-wrap-reverse
    • .flex-md-nowrap
    • .flex-md-wrap
    • .flex-md-wrap-reverse
    • .flex-lg-nowrap
    • .flex-lg-wrap
    • .flex-lg-wrap-reverse
    • .flex-xl-nowrap
    • .flex-xl-wrap
    • .flex-xl-wrap-reverse

对齐内容

使用 flexbox 容器上的 align-content 工具将 flex 物件于横轴上一起对齐。
为了呈现这通用类别的效果,我们加入了 flex-wrap: wrap 及增加了flex项的数量。

  • .align-content-start
  • .align-content-end
  • .align-content-center
  • .align-content-between
  • .align-content-around
  • .align-content-stretch

x轴

flex-direction: row | row-reverse

<h1>flex-direction: row</h1>
<div class="">
    <h2>align-content-start</h2>
    <div class="d-flex align-content-start flex-wrap bg-dark mb-3" style="height: 200px; width: 600px;">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
        <div class="p-2 bg-danger">Flex item</div>
        <div class="p-2 bg-light">Flex item</div>
        <div class="p-2 bg-white">Flex item</div>
        <div class="p-2 bg-light">Flex item</div>
        <div class="p-2 bg-danger">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-primary">Flex item</div>
    </div>

    <h2>align-content-end</h2>
    <div class="d-flex align-content-end flex-wrap bg-dark mb-3" style="height: 200px; width: 600px;">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
        <div class="p-2 bg-danger">Flex item</div>
        <div class="p-2 bg-light">Flex item</div>
        <div class="p-2 bg-white">Flex item</div>
        <div class="p-2 bg-light">Flex item</div>
        <div class="p-2 bg-danger">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-primary">Flex item</div>
    </div>

    <h2>align-content-center</h2>
    <div class="d-flex align-content-center flex-wrap bg-dark mb-3" style="height: 200px; width: 600px;">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
        <div class="p-2 bg-danger">Flex item</div>
        <div class="p-2 bg-light">Flex item</div>
        <div class="p-2 bg-white">Flex item</div>
        <div class="p-2 bg-light">Flex item</div>
        <div class="p-2 bg-danger">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-primary">Flex item</div>
    </div>

    <h2>align-content-between</h2>
    <div class="d-flex align-content-between flex-wrap bg-dark mb-3" style="height: 200px; width: 600px;">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
        <div class="p-2 bg-danger">Flex item</div>
        <div class="p-2 bg-light">Flex item</div>
        <div class="p-2 bg-white">Flex item</div>
        <div class="p-2 bg-light">Flex item</div>
        <div class="p-2 bg-danger">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-primary">Flex item</div>
    </div>

    <h2>align-content-around</h2>
    <div class="d-flex align-content-around flex-wrap bg-dark mb-3" style="height: 200px; width: 600px;">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
        <div class="p-2 bg-danger">Flex item</div>
        <div class="p-2 bg-light">Flex item</div>
        <div class="p-2 bg-white">Flex item</div>
        <div class="p-2 bg-light">Flex item</div>
        <div class="p-2 bg-danger">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-primary">Flex item</div>
    </div>

    <h2>align-content-stretch</h2>
    <div class="d-flex align-content-stretch flex-wrap bg-dark mb-3" style="height: 200px; width: 600px;">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
        <div class="p-2 bg-danger">Flex item</div>
        <div class="p-2 bg-light">Flex item</div>
        <div class="p-2 bg-white">Flex item</div>
        <div class="p-2 bg-light">Flex item</div>
        <div class="p-2 bg-danger">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-primary">Flex item</div>
    </div>
</div>

y轴

flex-direction: column | column-reverse

<h1>flex-direction: column</h1>
<div class="">
    <h2>align-content-start</h2>
    <div class="d-flex align-content-start flex-column flex-wrap bg-dark mb-3" style="height: 200px; width: 600px;">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
        <div class="p-2 bg-danger">Flex item</div>
        <div class="p-2 bg-light">Flex item</div>
        <div class="p-2 bg-white">Flex item</div>
        <div class="p-2 bg-light">Flex item</div>
        <div class="p-2 bg-danger">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-primary">Flex item</div>
    </div>

    <h2>align-content-end</h2>
    <div class="d-flex align-content-end flex-column flex-wrap bg-dark mb-3" style="height: 200px; width: 600px;">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
        <div class="p-2 bg-danger">Flex item</div>
        <div class="p-2 bg-light">Flex item</div>
        <div class="p-2 bg-white">Flex item</div>
        <div class="p-2 bg-light">Flex item</div>
        <div class="p-2 bg-danger">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-primary">Flex item</div>
    </div>

    <h2>align-content-center</h2>
    <div class="d-flex align-content-center flex-column flex-wrap bg-dark mb-3"
         style="height: 200px; width: 600px;">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
        <div class="p-2 bg-danger">Flex item</div>
        <div class="p-2 bg-light">Flex item</div>
        <div class="p-2 bg-white">Flex item</div>
        <div class="p-2 bg-light">Flex item</div>
        <div class="p-2 bg-danger">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-primary">Flex item</div>
    </div>

    <h2>align-content-between</h2>
    <div class="d-flex align-content-between flex-column flex-wrap bg-dark mb-3"
         style="height: 200px; width: 600px;">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
        <div class="p-2 bg-danger">Flex item</div>
        <div class="p-2 bg-light">Flex item</div>
        <div class="p-2 bg-white">Flex item</div>
        <div class="p-2 bg-light">Flex item</div>
        <div class="p-2 bg-danger">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-primary">Flex item</div>
    </div>

    <h2>align-content-around</h2>
    <div class="d-flex align-content-around flex-column flex-wrap bg-dark mb-3"
         style="height: 200px; width: 600px;">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
        <div class="p-2 bg-danger">Flex item</div>
        <div class="p-2 bg-light">Flex item</div>
        <div class="p-2 bg-white">Flex item</div>
        <div class="p-2 bg-light">Flex item</div>
        <div class="p-2 bg-danger">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-primary">Flex item</div>
    </div>

    <h2>align-content-stretch</h2>
    <div class="d-flex align-content-stretch flex-column flex-wrap bg-dark mb-3"
         style="height: 200px; width: 600px;">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
        <div class="p-2 bg-danger">Flex item</div>
        <div class="p-2 bg-light">Flex item</div>
        <div class="p-2 bg-white">Flex item</div>
        <div class="p-2 bg-light">Flex item</div>
        <div class="p-2 bg-danger">Flex item</div>
        <div class="p-2 bg-warning">Flex item</div>
        <div class="p-2 bg-info">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-primary">Flex item</div>
    </div>

    <hr/>

    <h1>
        <code>align-content</code> 也包含响应式设计
    </h1>
    <p>
        <code>.align-content-{breakpoint}-{start | end | center | between | around | stretch}</code>
    </p>
    <ul>
        <li><code class="">.align-content-start</code></li>
        <li><code class="">.align-content-end</code></li>
        <li><code class="">.align-content-center</code></li>
        <li><code class="">.align-content-around</code></li>
        <li><code class="">.align-content-stretch</code></li>
        <li><code class="">.align-content-sm-start</code></li>
        <li><code class="">.align-content-sm-end</code></li>
        <li><code class="">.align-content-sm-center</code></li>
        <li><code class="">.align-content-sm-around</code></li>
        <li><code class="">.align-content-sm-stretch</code></li>
        <li><code class="">.align-content-md-start</code></li>
        <li><code class="">.align-content-md-end</code></li>
        <li><code class="">.align-content-md-center</code></li>
        <li><code class="">.align-content-md-around</code></li>
        <li><code class="">.align-content-md-stretch</code></li>
        <li><code class="">.align-content-lg-start</code></li>
        <li><code class="">.align-content-lg-end</code></li>
        <li><code class="">.align-content-lg-center</code></li>
        <li><code class="">.align-content-lg-around</code></li>
        <li><code class="">.align-content-lg-stretch</code></li>
        <li><code class="">.align-content-xl-start</code></li>
        <li><code class="">.align-content-xl-end</code></li>
        <li><code class="">.align-content-xl-center</code></li>
        <li><code class="">.align-content-xl-around</code></li>
        <li><code class="">.align-content-xl-stretch</code></li>
    </ul>
</div>

填满

  • .flex-fill 占用剩下所有可用的水平空间。
  • 在相邻元素上使用 .flex-fill 来强制它们在相同的宽度上分配所有可用的水平空间。对于等宽导览特别有用。

.flex-fill 内部:flex: 1 1 auto;

flex-fill

<div class="d-flex bg-dark">
    <div class="p-2 flex-fill bg-primary">Flex item</div>
    <div class="p-2 flex-fill bg-success">Flex item</div>
    <div class="p-2 flex-fill bg-info">Flex item</div>
</div>

flex-fill的响应式属性

  • .flex-fill
  • .flex-sm-fill
  • .flex-md-fill
  • .flex-lg-fill
  • .flex-xl-fill

伸缩值

  • .flex-grow-*
  • .flex-shrink-*

不清楚flex-growflex-shrink属性,可以参考:

https://blog.csdn.net/m0_37058714/article/details/80765562

flex-grow-*

使用 .flex-grow-* 通用类别来切换项目弹性增长以填充可用空间。

在下面的范例中, .flex-grow-1 元素使用它可以使用的所有可用空间,同时允许剩余的两个 flex 物件保留必要的空间。

<div class="d-flex bg-dark p-2">
    <div class="p-2 flex-grow-1 bg-primary">Flex item</div>
    <div class="p-2 bg-secondary">Flex item</div>
    <div class="p-2 bg-success">Third flex item</div>
</div>

flex-shrink-*

使用 .flex-shrink-* 工具来切换调整项目的尺寸。

在下面的示例中,第二个带有 .flex-shrink-1 的弹性项目被强制将其内容包装到一个新行,“收缩”以允许更多空间用于上一个具有 .w-100 的弹性项目。

<div class="d-flex bg-dark p-2">
    <div class="p-2 w-100 bg-primary">Flex item</div>
    <div class="p-2 flex-shrink-1 bg-success">Flex item</div>
</div>

flex-grow与flex-shrink的响应式属性

flex-growflex-shrink 也具备响应式设计。

  • .flex-{grow|shrink}-0
  • .flex-{grow|shrink}-1
  • .flex-sm-{grow|shrink}-0
  • .flex-sm-{grow|shrink}-1
  • .flex-md-{grow|shrink}-0
  • .flex-md-{grow|shrink}-1
  • .flex-lg-{grow|shrink}-0
  • .flex-lg-{grow|shrink}-1
  • .flex-xl-{grow|shrink}-0
  • .flex-xl-{grow|shrink}-1

自动的边距

当你将flex 对齐与auto margin 混在一起的时候,flexbox 也能正常的运行。

下面的范例是通过marginauto来控制 flex子元素的八(官方3个 + 自行5个)个案例,以供参考:

  • 预设(无 margin
  • 向右推两个项目(.mr-auto
  • 向左推两个项目(.ml-auto)
  • 向下推两个项目(.mb-auto)
  • 向上推两个项目(.mt-auto)
  • 水平居中(.mx-auto)
  • 垂直居中(.my-auto)
  • 水平垂直居中(.m-auto)

预设(无margin)

<div class="d-flex bg-dark mb-3">
    <div class="p-2 bg-primary">Flex item</div>
    <div class="p-2 bg-secondary">Flex item</div>
    <div class="p-2 bg-success">Flex item</div>
</div>

向右推两个项目(.mr-auto)

<div class="d-flex bg-dark mb-3">
    <div class="mr-auto p-2 bg-primary">Flex item</div>
    <div class="p-2 bg-secondary">Flex item</div>
    <div class="p-2 bg-success">Flex item</div>
</div>

向左推两个项目(.ml-auto)

<div class="d-flex bg-dark mb-3">
    <div class="p-2 bg-primary">Flex item</div>
    <div class="p-2 bg-secondary">Flex item</div>
    <div class="ml-auto p-2 bg-success">Flex item</div>
</div>

向下推两个项目(.mb-auto)

<div class="d-flex bg-dark mb-3">
    <div class="p-2 bg-primary">Flex item</div>
    <div class="p-2 mx-auto bg-secondary">Flex item</div>
    <div class="p-2 bg-success">Flex item</div>
</div>

向上推两个项目(.mt-auto)

<div class="d-flex align-items-start flex-column bg-dark mb-3" style="height: 200px;">
    <div class="mb-auto p-2 bg-secondary">Flex item</div>
    <div class="p-2 bg-primary">Flex item</div>
    <div class="p-2 bg-success">Flex item</div>
</div>

水平居中(.mx-auto)

<div class="d-flex align-items-end flex-column bg-dark mb-3" style="height: 200px;">
    <div class="p-2 bg-primary">Flex item</div>
    <div class="p-2 bg-success">Flex item</div>
    <div class="mt-auto p-2 bg-secondary">Flex item</div>
</div>

垂直居中(.my-auto)

<div class="d-flex bg-dark mb-3" style="height: 400px;">
       <div class="p-2 bg-primary">Flex item</div>
       <div class="p-2 my-auto bg-secondary">Flex item</div>
       <div class="p-2 bg-success">Flex item</div>
</div>

水平垂直居中(.m-auto)

<div class="d-flex bg-dark mb-3" style="height: 400px;">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 m-auto bg-secondary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
</div>

排序

使用 order 通用类别改变特定 flex物件的 显示 排序。

order 只能使用整数值(例如,5),范围( 0 - 12 )

order

 <div class="d-flex flex-nowrap bg-dark">
     <div class="order-last p-2 bg-primary">Order-Last flex item: 13</div>
     <div class="order-2 p-2 bg-success">Second flex item</div>
     <div class="order-1 p-2 bg-secondary">Third flex item</div>
     <div class="order-first p-2 bg-secondary">Order-First flex item: -1</div>
     <div class="order-0 p-2 bg-secondary">Third flex item</div>
     <div class="order-md-first p-2 bg-secondary">order-md-first Third flex item</div>
 </div>

order的响应式属性

  • .order-first ==> 内部为:order: -1
  • .order-last ==> 内部为:order: 13
  • .order-0
  • .order-1
  • .order-2
  • .order-3
  • .order-4
  • .order-5
  • .order-6
  • .order-7
  • .order-8
  • .order-9
  • .order-10
  • .order-11
  • .order-12
  • .order-sm-first
  • .order-sm-1ast
  • .order-sm-0
  • .order-sm-1
  • .order-sm-2
  • .order-sm-3
  • .order-sm-4
  • .order-sm-5
  • .order-sm-6
  • .order-sm-7
  • .order-sm-8
  • .order-sm-9
  • .order-sm-10
  • .order-sm-11
  • .order-sm-12
  • .order-md-first
  • .order-md-1ast
  • .order-md-0
  • .order-md-1
  • .order-md-2
  • .order-md-3
  • .order-md-4
  • .order-md-5
  • .order-md-6
  • .order-md-7
  • .order-md-8
  • .order-md-9
  • .order-md-10
  • .order-md-11
  • .order-md-12
  • .order-lg-first
  • .order-lg-1ast
  • .order-lg-0
  • .order-lg-1
  • .order-lg-2
  • .order-lg-3
  • .order-lg-4
  • .order-lg-5
  • .order-lg-6
  • .order-lg-7
  • .order-lg-8
  • .order-lg-9
  • .order-lg-10
  • .order-lg-11
  • .order-lg-12
  • .order-xl-first
  • .order-xl-1ast
  • .order-xl-0
  • .order-xl-1
  • .order-xl-2
  • .order-xl-3
  • .order-xl-4
  • .order-xl-5
  • .order-xl-6
  • .order-xl-7
  • .order-xl-8
  • .order-xl-9
  • .order-xl-10
  • .order-xl-11
  • .order-xl-12

整体代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, shrink-to-fit=no"/>
    <title>15flex布局</title>
    <!--<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">-->

    <!-- 新 Bootstrap4 核心 CSS 文件 -->
    <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css">
</head>
<body>
<pre class="pre-scrollable">

</pre>

<div class="container">
    <h1>启用flex</h1>
    <h2>d-flex</h2>

    <div class="d-flex p-2 bg-primary">I'm a flexbox container!</div>

    <hr/>

    <h2>d-inline-flex</h2>

    <div class="d-inline-flex p-2 bg-success">I'm an inline flexbox container!</div>

</div>

<hr/>

<div class="container">
    <h1>响应式flex</h1>
    <p>.d-flex 和 .d-inline-flex 也存在响应式设计。</p>
    <ul>
        <li><code class="">.d-flex</code></li>
        <li><code class="">.d-inline-flex</code></li>
        <li><code class="">.d-sm-flex</code></li>
        <li><code class="">.d-sm-inline-flex</code></li>
        <li><code class="">.d-md-flex</code></li>
        <li><code class="">.d-md-inline-flex</code></li>
        <li><code class="">.d-lg-flex</code></li>
        <li><code class="">.d-lg-inline-flex</code></li>
        <li><code class="">.d-xl-flex</code></li>
        <li><code class="">.d-xl-inline-flex</code></li>
    </ul>
</div>

<hr/>

<div class="container">
    <h1>方向</h1>
    <pre>
        .flex-row
        .flex-row-reverse
        .flex-column
        .flex-column-reverse
    </pre>
    <hr/>
    <h2>水平方向</h2>
    <div class="d-flex flex-row bg-light mb-3">
        <div class="p-2 bg-primary">Flex item 1</div>
        <div class="p-2 bg-success">Flex item 2</div>
        <div class="p-2 bg-info">Flex item 3</div>
    </div>
    <hr/>
    <div class="d-flex flex-row-reverse bg-light">
        <div class="p-2 bg-info">Flex item 1</div>
        <div class="p-2 bg-success">Flex item 2</div>
        <div class="p-2 bg-primary">Flex item 3</div>
    </div>
    <hr/>
    <h2>垂直方向</h2>
    <div class="d-flex flex-column bg-light mb-3">
        <div class="p-2 bg-warning">Flex item 1</div>
        <div class="p-2 bg-danger">Flex item 2</div>
        <div class="p-2 bg-dark">Flex item 3</div>
    </div>
    <hr/>
    <div class="d-flex flex-column-reverse bg-light">
        <div class="p-2 bg-dark">Flex item 1</div>
        <div class="p-2 bg-danger">Flex item 2</div>
        <div class="p-2 bg-warning">Flex item 3</div>
    </div>

    <hr/>
    <h2>响应式方向</h2>
    <p>
        <code>.flex-{breakpoint}-{row | row-reverse | column | column-reverse}</code>
    </p>
    <ul>
        <li><code class="">.flex-row</code></li>
        <li><code class="">.flex-row-reverse</code></li>
        <li><code class="">.flex-column</code></li>
        <li><code class="">.flex-column-reverse</code></li>
        <li><code class="">.flex-sm-row</code></li>
        <li><code class="">.flex-sm-row-reverse</code></li>
        <li><code class="">.flex-sm-column</code></li>
        <li><code class="">.flex-sm-column-reverse</code></li>
        <li><code class="">.flex-md-row</code></li>
        <li><code class="">.flex-md-row-reverse</code></li>
        <li><code class="">.flex-md-column</code></li>
        <li><code class="">.flex-md-column-reverse</code></li>
        <li><code class="">.flex-lg-row</code></li>
        <li><code class="">.flex-lg-row-reverse</code></li>
        <li><code class="">.flex-lg-column</code></li>
        <li><code class="">.flex-lg-column-reverse</code></li>
        <li><code class="">.flex-xl-row</code></li>
        <li><code class="">.flex-xl-row-reverse</code></li>
        <li><code class="">.flex-xl-column</code></li>
        <li><code class="">.flex-xl-column-reverse</code></li>
    </ul>
</div>

<hr/>
<div class="container">
    <h1>调整内容</h1>
    <p>
        使用 <code>flexbox</code> 容器上的 <code>justify-content</code> 通用类别改变 flex 物件在主轴上的对齐
        (x轴开始,如果 <code>flex-direction: column</code> 则为 y 轴)。
    </p>
    <ul>
        <li>
            <code>.justify-content-start</code>
        </li>

        <li>
            <code>.justify-content-end</code>
        </li>

        <li>
            <code>.justify-content-center</code>
        </li>

        <li>
            <code>.justify-content-between</code>
        </li>

        <li>
            <code>.justify-content-around</code>
        </li>
    </ul>
    <hr/>
    <h1>flex-direction: row</h1>
    <div class="">
        <h1>justify-content-start</h1>
        <div class="d-flex justify-content-start bg-light mb-3">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
        <h1>justify-content-end</h1>
        <div class="d-flex justify-content-end bg-light mb-3">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
        <h1>justify-content-center</h1>
        <div class="d-flex justify-content-center bg-light mb-3">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
        <h1>justify-content-between</h1>
        <div class="d-flex justify-content-between bg-light mb-3">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
        <h1>justify-content-around</h1>
        <div class="d-flex justify-content-around bg-light">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
    </div>

    <hr/>

    <h1>flex-direction: column</h1>
    <div class="">
        <h1>justify-content-start</h1>
        <div class="d-flex flex-column justify-content-start bg-light mb-3 vh-100">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
        <h1>justify-content-end</h1>
        <div class="d-flex flex-column justify-content-end bg-light mb-3 vh-100">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
        <h1>justify-content-center</h1>
        <div class="d-flex flex-column justify-content-center bg-light mb-3 vh-100">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
        <h1>justify-content-between</h1>
        <div class="d-flex flex-column justify-content-between bg-light mb-3 vh-100">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
        <h1>justify-content-around</h1>
        <div class="d-flex flex-column justify-content-around bg-light vh-100">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
    </div>
    <hr/>

    <h2>
        <code>justify-content</code> 的响应式属性
    </h2>
    <h2>
        <code>.justify-content-{breakpoint}-{start | end | center | between | around}</code>
    </h2>
    <ul>
        <li><code class="">.justify-content-start</code></li>
        <li><code class="">.justify-content-end</code></li>
        <li><code class="">.justify-content-center</code></li>
        <li><code class="">.justify-content-between</code></li>
        <li><code class="">.justify-content-around</code></li>
        <li><code class="">.justify-content-sm-start</code></li>
        <li><code class="">.justify-content-sm-end</code></li>
        <li><code class="">.justify-content-sm-center</code></li>
        <li><code class="">.justify-content-sm-between</code></li>
        <li><code class="">.justify-content-sm-around</code></li>
        <li><code class="">.justify-content-md-start</code></li>
        <li><code class="">.justify-content-md-end</code></li>
        <li><code class="">.justify-content-md-center</code></li>
        <li><code class="">.justify-content-md-between</code></li>
        <li><code class="">.justify-content-md-around</code></li>
        <li><code class="">.justify-content-lg-start</code></li>
        <li><code class="">.justify-content-lg-end</code></li>
        <li><code class="">.justify-content-lg-center</code></li>
        <li><code class="">.justify-content-lg-between</code></li>
        <li><code class="">.justify-content-lg-around</code></li>
        <li><code class="">.justify-content-xl-start</code></li>
        <li><code class="">.justify-content-xl-end</code></li>
        <li><code class="">.justify-content-xl-center</code></li>
        <li><code class="">.justify-content-xl-between</code></li>
        <li><code class="">.justify-content-xl-around</code></li>
    </ul>
</div>

<div class="container">
    <h1>对齐项目</h1>
    <p><code>flexbox</code> 容器上使用 <code>align-items</code> 工具改变横轴上 flex 物件的对齐
        (y 轴开始,如果 <code>flex-direction: column</code> 则为 x 轴)。
    </p>

    <h1>flex-direction: row</h1>
    <div class="">
        <h1>align-items-start</h1>
        <div class="d-flex align-items-start bg-light mb-3 vh-100">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
        <h1>align-items-end</h1>
        <div class="d-flex align-items-end bg-light mb-3 vh-100">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
        <h1>align-items-center</h1>
        <div class="d-flex align-items-center bg-light mb-3 vh-100">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
        <h1>align-items-baseline</h1>
        <div class="d-flex align-items-baseline bg-light mb-3 vh-100">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
        <h1>align-items-stretch</h1>
        <div class="d-flex align-items-stretch bg-light vh-100">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
    </div>

    <hr/>


    <h1>flex-direction: column</h1>
    <div class="">
        <h1>align-items-start</h1>
        <div class="d-flex flex-column align-items-start bg-light mb-3 vh-100">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
        <h1>align-items-end</h1>
        <div class="d-flex flex-column align-items-end bg-light mb-3 vh-100">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
        <h1>align-items-center</h1>
        <div class="d-flex flex-column align-items-center bg-light mb-3 vh-100">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
        <h1>align-items-baseline</h1>
        <div class="d-flex flex-column align-items-baseline bg-light mb-3 vh-100">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
        <h1>align-items-stretch</h1>
        <div class="d-flex flex-column align-content-stretch bg-light vh-100">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
    </div>

    <hr/>

    <h2>
        <code>align-items</code> 的响应式属性
    </h2>
    <h2>
        <code>.align-items-{breakpoint}-{start | end | center | baseline | stretch}</code>
    </h2>
    <ul>
        <li><code class="">.align-items-start</code></li>
        <li><code class="">.align-items-end</code></li>
        <li><code class="">.align-items-center</code></li>
        <li><code class="">.align-items-baseline</code></li>
        <li><code class="">.align-items-stretch</code></li>
        <li><code class="">.align-items-sm-start</code></li>
        <li><code class="">.align-items-sm-end</code></li>
        <li><code class="">.align-items-sm-center</code></li>
        <li><code class="">.align-items-sm-baseline</code></li>
        <li><code class="">.align-items-sm-stretch</code></li>
        <li><code class="">.align-items-md-start</code></li>
        <li><code class="">.align-items-md-end</code></li>
        <li><code class="">.align-items-md-center</code></li>
        <li><code class="">.align-items-md-baseline</code></li>
        <li><code class="">.align-items-md-stretch</code></li>
        <li><code class="">.align-items-lg-start</code></li>
        <li><code class="">.align-items-lg-end</code></li>
        <li><code class="">.align-items-lg-center</code></li>
        <li><code class="">.align-items-lg-baseline</code></li>
        <li><code class="">.align-items-lg-stretch</code></li>
        <li><code class="">.align-items-xl-start</code></li>
        <li><code class="">.align-items-xl-end</code></li>
        <li><code class="">.align-items-xl-center</code></li>
        <li><code class="">.align-items-xl-baseline</code></li>
        <li><code class="">.align-items-xl-stretch</code></li>
    </ul>
</div>

<hr/>

<div class="container">
    <h1>自身对齐</h1>
    <p>
        使用 <code>flexbox</code> 物件上的 <code>align-self</code> 通用类别单独改变在横轴上的对齐
        (y 轴开始,如果 <code>flex-direction: column</code> 则为 x 轴)。
    </p>

    <h1>flex-direction: row</h1>
    <div class="">
        <h1>align-self-start</h1>
        <div class="d-flex bg-light mb-3 vh-100">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success align-self-start ">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
        <h1>align-self-end</h1>
        <div class="d-flex bg-light mb-3 vh-100">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success align-self-end">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
        <h1>align-self-center</h1>
        <div class="d-flex bg-light mb-3 vh-100">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success align-self-center">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
        <h1>align-self-baseline</h1>
        <div class="d-flex bg-light mb-3 vh-100">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success align-self-baseline">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
        <h1>align-items-stretch</h1>
        <div class="d-flex bg-light vh-100">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success align-items-stretch">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
    </div>

    <hr/>


    <h1>flex-direction: column</h1>
    <div class="">
        <h1>align-self-start</h1>
        <div class="d-flex flex-column bg-light mb-3 vh-100">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success align-self-start">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
        <h1>align-self-end</h1>
        <div class="d-flex flex-column bg-light mb-3 vh-100">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success align-self-end">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
        <h1>align-self-center</h1>
        <div class="d-flex flex-column bg-light mb-3 vh-100">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success align-self-center">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
        <h1>align-self-baseline</h1>
        <div class="d-flex flex-column bg-light mb-3 vh-100">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success align-self-baseline">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
        <h1>align-self-stretch</h1>
        <div class="d-flex flex-column bg-light vh-100">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-success align-self-stretch">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
        </div>
    </div>

    <hr/>

    <h2>
        <code>align-self</code> 的响应式属性
    </h2>
    <h2>
        <code>.align-self-{breakpoint}-{start | end | center | baseline | stretch}</code>
    </h2>
    <ul>
        <li><code class="">.align-self-start</code></li>
        <li><code class="">.align-self-end</code></li>
        <li><code class="">.align-self-center</code></li>
        <li><code class="">.align-self-baseline</code></li>
        <li><code class="">.align-self-stretch</code></li>
        <li><code class="">.align-self-sm-start</code></li>
        <li><code class="">.align-self-sm-end</code></li>
        <li><code class="">.align-self-sm-center</code></li>
        <li><code class="">.align-self-sm-baseline</code></li>
        <li><code class="">.align-self-sm-stretch</code></li>
        <li><code class="">.align-self-md-start</code></li>
        <li><code class="">.align-self-md-end</code></li>
        <li><code class="">.align-self-md-center</code></li>
        <li><code class="">.align-self-md-baseline</code></li>
        <li><code class="">.align-self-md-stretch</code></li>
        <li><code class="">.align-self-lg-start</code></li>
        <li><code class="">.align-self-lg-end</code></li>
        <li><code class="">.align-self-lg-center</code></li>
        <li><code class="">.align-self-lg-baseline</code></li>
        <li><code class="">.align-self-lg-stretch</code></li>
        <li><code class="">.align-self-xl-start</code></li>
        <li><code class="">.align-self-xl-end</code></li>
        <li><code class="">.align-self-xl-center</code></li>
        <li><code class="">.align-self-xl-baseline</code></li>
        <li><code class="">.align-self-xl-stretch</code></li>
    </ul>
</div>

<hr/>

<div class="container">
    <h1>Wrap换行</h1>
    <p>默认情况下,flex的元素是在一行上显示的。可设置以下的值:</p>
    <ul>
        <li>
            <code>.flex-nowrap (默认)</code>
        </li>

        <li>
            <code>.flex-wrap</code>
        </li>

        <li>
            <code>.flex-wrap-reverse</code>
        </li>
    </ul>
    <div class="">
        <div class="d-flex flex-nowrap bg-dark p-2" style="width: 200px;">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
        </div>
    </div>

    <hr/>

    <h1>.flex-wrap</h1>
    <div class="">
        <div class="d-flex flex-wrap bg-dark p-2" style="width: 200px;">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
        </div>
    </div>

    <hr/>

    <h1>.flex-wrap-reverse</h1>
    <div class="">
        <div class="d-flex flex-wrap-reverse bg-dark p-2" style="width: 200px;">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
        </div>
    </div>

    <hr/>

    <h1>
        <code>flex-wrap</code> 也包含响应式属性
    </h1>
    <ul>
        <li><code class="">.flex-nowrap</code></li>
        <li><code class="">.flex-wrap</code></li>
        <li><code class="">.flex-wrap-reverse</code></li>
        <li><code class="">.flex-sm-nowrap</code></li>
        <li><code class="">.flex-sm-wrap</code></li>
        <li><code class="">.flex-sm-wrap-reverse</code></li>
        <li><code class="">.flex-md-nowrap</code></li>
        <li><code class="">.flex-md-wrap</code></li>
        <li><code class="">.flex-md-wrap-reverse</code></li>
        <li><code class="">.flex-lg-nowrap</code></li>
        <li><code class="">.flex-lg-wrap</code></li>
        <li><code class="">.flex-lg-wrap-reverse</code></li>
        <li><code class="">.flex-xl-nowrap</code></li>
        <li><code class="">.flex-xl-wrap</code></li>
        <li><code class="">.flex-xl-wrap-reverse</code></li>
    </ul>
</div>

<hr/>

<div class="container">
    <h1>对齐内容</h1>
    <p>
        使用 <code>flexbox</code> 容器上的 <code>align-content</code> 工具将 flex 物件于横轴上一起对齐。
        为了呈现这通用类别的效果,我们加入了 flex-wrap: wrap 及增加了flex项的数量。
    </p>
    <ul>
        <li>
            <code>.align-content-start</code>
        </li>
        <li>
            <code>.align-content-end</code>
        </li>
        <li>
            <code>.align-content-center</code>
        </li>
        <li>
            <code>.align-content-between</code>
        </li>
        <li>
            <code>.align-content-around</code>
        </li>
        <li>
            <code>.align-content-stretch</code>
        </li>
    </ul>
    <hr/>

    <h1>flex-direction: row</h1>
    <div class="">
        <h2>align-content-start</h2>
        <div class="d-flex align-content-start flex-wrap bg-dark mb-3" style="height: 200px; width: 600px;">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
            <div class="p-2 bg-danger">Flex item</div>
            <div class="p-2 bg-light">Flex item</div>
            <div class="p-2 bg-white">Flex item</div>
            <div class="p-2 bg-light">Flex item</div>
            <div class="p-2 bg-danger">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-primary">Flex item</div>
        </div>

        <h2>align-content-end</h2>
        <div class="d-flex align-content-end flex-wrap bg-dark mb-3" style="height: 200px; width: 600px;">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
            <div class="p-2 bg-danger">Flex item</div>
            <div class="p-2 bg-light">Flex item</div>
            <div class="p-2 bg-white">Flex item</div>
            <div class="p-2 bg-light">Flex item</div>
            <div class="p-2 bg-danger">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-primary">Flex item</div>
        </div>

        <h2>align-content-center</h2>
        <div class="d-flex align-content-center flex-wrap bg-dark mb-3" style="height: 200px; width: 600px;">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
            <div class="p-2 bg-danger">Flex item</div>
            <div class="p-2 bg-light">Flex item</div>
            <div class="p-2 bg-white">Flex item</div>
            <div class="p-2 bg-light">Flex item</div>
            <div class="p-2 bg-danger">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-primary">Flex item</div>
        </div>

        <h2>align-content-between</h2>
        <div class="d-flex align-content-between flex-wrap bg-dark mb-3" style="height: 200px; width: 600px;">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
            <div class="p-2 bg-danger">Flex item</div>
            <div class="p-2 bg-light">Flex item</div>
            <div class="p-2 bg-white">Flex item</div>
            <div class="p-2 bg-light">Flex item</div>
            <div class="p-2 bg-danger">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-primary">Flex item</div>
        </div>

        <h2>align-content-around</h2>
        <div class="d-flex align-content-around flex-wrap bg-dark mb-3" style="height: 200px; width: 600px;">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
            <div class="p-2 bg-danger">Flex item</div>
            <div class="p-2 bg-light">Flex item</div>
            <div class="p-2 bg-white">Flex item</div>
            <div class="p-2 bg-light">Flex item</div>
            <div class="p-2 bg-danger">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-primary">Flex item</div>
        </div>

        <h2>align-content-stretch</h2>
        <div class="d-flex align-content-stretch flex-wrap bg-dark mb-3" style="height: 200px; width: 600px;">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
            <div class="p-2 bg-danger">Flex item</div>
            <div class="p-2 bg-light">Flex item</div>
            <div class="p-2 bg-white">Flex item</div>
            <div class="p-2 bg-light">Flex item</div>
            <div class="p-2 bg-danger">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-primary">Flex item</div>
        </div>
    </div>

    <hr/>

    <h1>flex-direction: column</h1>
    <div class="">
        <h2>align-content-start</h2>
        <div class="d-flex align-content-start flex-column flex-wrap bg-dark mb-3" style="height: 200px; width: 600px;">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
            <div class="p-2 bg-danger">Flex item</div>
            <div class="p-2 bg-light">Flex item</div>
            <div class="p-2 bg-white">Flex item</div>
            <div class="p-2 bg-light">Flex item</div>
            <div class="p-2 bg-danger">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-primary">Flex item</div>
        </div>

        <h2>align-content-end</h2>
        <div class="d-flex align-content-end flex-column flex-wrap bg-dark mb-3" style="height: 200px; width: 600px;">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
            <div class="p-2 bg-danger">Flex item</div>
            <div class="p-2 bg-light">Flex item</div>
            <div class="p-2 bg-white">Flex item</div>
            <div class="p-2 bg-light">Flex item</div>
            <div class="p-2 bg-danger">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-primary">Flex item</div>
        </div>

        <h2>align-content-center</h2>
        <div class="d-flex align-content-center flex-column flex-wrap bg-dark mb-3"
             style="height: 200px; width: 600px;">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
            <div class="p-2 bg-danger">Flex item</div>
            <div class="p-2 bg-light">Flex item</div>
            <div class="p-2 bg-white">Flex item</div>
            <div class="p-2 bg-light">Flex item</div>
            <div class="p-2 bg-danger">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-primary">Flex item</div>
        </div>

        <h2>align-content-between</h2>
        <div class="d-flex align-content-between flex-column flex-wrap bg-dark mb-3"
             style="height: 200px; width: 600px;">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
            <div class="p-2 bg-danger">Flex item</div>
            <div class="p-2 bg-light">Flex item</div>
            <div class="p-2 bg-white">Flex item</div>
            <div class="p-2 bg-light">Flex item</div>
            <div class="p-2 bg-danger">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-primary">Flex item</div>
        </div>

        <h2>align-content-around</h2>
        <div class="d-flex align-content-around flex-column flex-wrap bg-dark mb-3"
             style="height: 200px; width: 600px;">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
            <div class="p-2 bg-danger">Flex item</div>
            <div class="p-2 bg-light">Flex item</div>
            <div class="p-2 bg-white">Flex item</div>
            <div class="p-2 bg-light">Flex item</div>
            <div class="p-2 bg-danger">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-primary">Flex item</div>
        </div>

        <h2>align-content-stretch</h2>
        <div class="d-flex align-content-stretch flex-column flex-wrap bg-dark mb-3"
             style="height: 200px; width: 600px;">
            <div class="p-2 bg-primary">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
            <div class="p-2 bg-danger">Flex item</div>
            <div class="p-2 bg-light">Flex item</div>
            <div class="p-2 bg-white">Flex item</div>
            <div class="p-2 bg-light">Flex item</div>
            <div class="p-2 bg-danger">Flex item</div>
            <div class="p-2 bg-warning">Flex item</div>
            <div class="p-2 bg-info">Flex item</div>
            <div class="p-2 bg-success">Flex item</div>
            <div class="p-2 bg-secondary">Flex item</div>
            <div class="p-2 bg-primary">Flex item</div>
        </div>

        <hr/>

        <h1>
            <code>align-content</code> 也包含响应式设计
        </h1>
        <p>
            <code>.align-content-{breakpoint}-{start | end | center | between | around | stretch}</code>
        </p>
        <ul>
            <li><code class="">.align-content-start</code></li>
            <li><code class="">.align-content-end</code></li>
            <li><code class="">.align-content-center</code></li>
            <li><code class="">.align-content-around</code></li>
            <li><code class="">.align-content-stretch</code></li>
            <li><code class="">.align-content-sm-start</code></li>
            <li><code class="">.align-content-sm-end</code></li>
            <li><code class="">.align-content-sm-center</code></li>
            <li><code class="">.align-content-sm-around</code></li>
            <li><code class="">.align-content-sm-stretch</code></li>
            <li><code class="">.align-content-md-start</code></li>
            <li><code class="">.align-content-md-end</code></li>
            <li><code class="">.align-content-md-center</code></li>
            <li><code class="">.align-content-md-around</code></li>
            <li><code class="">.align-content-md-stretch</code></li>
            <li><code class="">.align-content-lg-start</code></li>
            <li><code class="">.align-content-lg-end</code></li>
            <li><code class="">.align-content-lg-center</code></li>
            <li><code class="">.align-content-lg-around</code></li>
            <li><code class="">.align-content-lg-stretch</code></li>
            <li><code class="">.align-content-xl-start</code></li>
            <li><code class="">.align-content-xl-end</code></li>
            <li><code class="">.align-content-xl-center</code></li>
            <li><code class="">.align-content-xl-around</code></li>
            <li><code class="">.align-content-xl-stretch</code></li>
        </ul>
    </div>
</div>

<hr/>

<div class="container">
    <h1>填满</h1>
    <p>
        <code>.flex-fill</code> 占用剩下所有可用的水平空间。
    </p>
    <p>
        在相邻元素上使用 <code>.flex-fill</code> 来强制它们在相同的宽度上分配所有可用的水平空间。对于等宽导览特别有用。
    </p>
    <div class="d-flex bg-dark">
        <div class="p-2 flex-fill bg-primary">Flex item</div>
        <div class="p-2 flex-fill bg-success">Flex item</div>
        <div class="p-2 flex-fill bg-info">Flex item</div>
    </div>

    <hr/>

    <h2>
        <code>flex-fill</code>
        同样包含响应式的组合
    </h2>
    <ul>
        <li><code class="">.flex-fill</code></li>
        <li><code class="">.flex-sm-fill</code></li>
        <li><code class="">.flex-md-fill</code></li>
        <li><code class="">.flex-lg-fill</code></li>
        <li><code class="">.flex-xl-fill</code></li>
    </ul>
</div>

<hr/>

<div class="container">
    <h1 class="display-3">
        不清楚flex-grow和flex-shrink属性,参考
        <a href="https://blog.csdn.net/m0_37058714/article/details/80765562" class="text-decoration-none">
            https://blog.csdn.net/m0_37058714/article/details/80765562
        </a>
    </h1>
    <h1>伸缩值</h1>
    <p>
        使用 <code> .flex-grow-* </code>通用类别来切换项目弹性增长以填充可用空间。
    </p>

    <p>
        在下面的范例中, <code>.flex-grow-1</code> 元素使用它可以使用的所有可用空间,同时允许剩余的两个 flex 物件保留必要的空间。
    </p>
    <div class="d-flex bg-dark p-2">
        <div class="p-2 flex-grow-1 bg-primary">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-success">Third flex item</div>
    </div>

    <hr/>
    <p>
        使用 <code>.flex-shrink-*</code> 工具来切换调整项目的尺寸
    </p>

    <p>
        在下面的示例中,第二个带有 .flex-shrink-1 的弹性项目被强制将其内容包装到一个新行,“收缩”以允许更多空间用于上一个具有 .w-100 的弹性项目。
    </p>
    <div class="d-flex bg-dark p-2">
        <div class="p-2 w-100 bg-primary">Flex item</div>
        <div class="p-2 flex-shrink-1 bg-success">Flex item</div>
    </div>

    <hr/>
    <h1>
        <code>flex-grow</code><code>flex-shrink</code> 也具备响应式设计。
    </h1>
    <ul>
        <li><code class="highlighter-rouge">.flex-{grow|shrink}-0</code></li>
        <li><code class="highlighter-rouge">.flex-{grow|shrink}-1</code></li>
        <li><code class="highlighter-rouge">.flex-sm-{grow|shrink}-0</code></li>
        <li><code class="highlighter-rouge">.flex-sm-{grow|shrink}-1</code></li>
        <li><code class="highlighter-rouge">.flex-md-{grow|shrink}-0</code></li>
        <li><code class="highlighter-rouge">.flex-md-{grow|shrink}-1</code></li>
        <li><code class="highlighter-rouge">.flex-lg-{grow|shrink}-0</code></li>
        <li><code class="highlighter-rouge">.flex-lg-{grow|shrink}-1</code></li>
        <li><code class="highlighter-rouge">.flex-xl-{grow|shrink}-0</code></li>
        <li><code class="highlighter-rouge">.flex-xl-{grow|shrink}-1</code></li>
    </ul>
</div>

<hr/>

<div class="container">
    <h1>自动的边距</h1>
    <p>
        当你将 flex 对齐与 auto margin 混在一起的时候,flexbox 也能正常的运行。
        下面的范例是透过自动 margin 来控制 flex 物件的五个案例:
        预设(无 margin),
        向右推两个项目(.mr-auto),
        向左推两个项目(.ml-auto)
        向下推两个项目(.mb-auto)
        向上推两个项目(.mt-auto)
        水平居中(.mx-auto)
        垂直居中(.my-auto)
        水平垂直居中(.m-auto)
    </p>
    <div class="d-flex bg-dark mb-3">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
    </div>

    <div class="d-flex bg-dark mb-3">
        <div class="mr-auto p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
    </div>

    <div class="d-flex bg-dark mb-3">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-secondary">Flex item</div>
        <div class="ml-auto p-2 bg-success">Flex item</div>
    </div>

    <div class="d-flex bg-dark mb-3">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 mx-auto bg-secondary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
    </div>

    <div class="d-flex align-items-start flex-column bg-dark mb-3" style="height: 200px;">
        <div class="mb-auto p-2 bg-secondary">Flex item</div>
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
    </div>

    <div class="d-flex align-items-end flex-column bg-dark mb-3" style="height: 200px;">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
        <div class="mt-auto p-2 bg-secondary">Flex item</div>
    </div>

    <div class="d-flex bg-dark mb-3" style="height: 400px;">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 my-auto bg-secondary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
    </div>

    <div class="d-flex bg-dark mb-3" style="height: 400px;">
        <div class="p-2 bg-primary">Flex item</div>
        <div class="p-2 m-auto bg-secondary">Flex item</div>
        <div class="p-2 bg-success">Flex item</div>
    </div>
</div>

<hr/>

<div class="container">
    <h1>排序</h1>
    <div class="d-flex flex-nowrap bg-dark">
        <div class="order-last p-2 bg-primary">Order-Last flex item: 13</div>
        <div class="order-2 p-2 bg-success">Second flex item</div>
        <div class="order-1 p-2 bg-secondary">Third flex item</div>
        <div class="order-first p-2 bg-secondary">Order-First flex item: -1</div>
        <div class="order-0 p-2 bg-secondary">Third flex item</div>
        <div class="order-md-first p-2 bg-secondary">order-md-first Third flex item</div>
    </div>

    <h1>
        <code>order也有响应式设计</code>
    </h1>
    <ul>
        <li><code>.order-first ==> 内部为:order: -1</code></li>
        <li><code>.order-last ==> 内部为:order: 13</code></li>
        <li><code class="highlighter-rouge">.order-0</code></li>
        <li><code class="highlighter-rouge">.order-1</code></li>
        <li><code class="highlighter-rouge">.order-2</code></li>
        <li><code class="highlighter-rouge">.order-3</code></li>
        <li><code class="highlighter-rouge">.order-4</code></li>
        <li><code class="highlighter-rouge">.order-5</code></li>
        <li><code class="highlighter-rouge">.order-6</code></li>
        <li><code class="highlighter-rouge">.order-7</code></li>
        <li><code class="highlighter-rouge">.order-8</code></li>
        <li><code class="highlighter-rouge">.order-9</code></li>
        <li><code class="highlighter-rouge">.order-10</code></li>
        <li><code class="highlighter-rouge">.order-11</code></li>
        <li><code class="highlighter-rouge">.order-12</code></li>
        <li><code class="highlighter-rouge">.order-sm-first</code></li>
        <li><code class="highlighter-rouge">.order-sm-1ast</code></li>
        <li><code class="highlighter-rouge">.order-sm-0</code></li>
        <li><code class="highlighter-rouge">.order-sm-1</code></li>
        <li><code class="highlighter-rouge">.order-sm-2</code></li>
        <li><code class="highlighter-rouge">.order-sm-3</code></li>
        <li><code class="highlighter-rouge">.order-sm-4</code></li>
        <li><code class="highlighter-rouge">.order-sm-5</code></li>
        <li><code class="highlighter-rouge">.order-sm-6</code></li>
        <li><code class="highlighter-rouge">.order-sm-7</code></li>
        <li><code class="highlighter-rouge">.order-sm-8</code></li>
        <li><code class="highlighter-rouge">.order-sm-9</code></li>
        <li><code class="highlighter-rouge">.order-sm-10</code></li>
        <li><code class="highlighter-rouge">.order-sm-11</code></li>
        <li><code class="highlighter-rouge">.order-sm-12</code></li>
        <li><code class="highlighter-rouge">.order-md-first</code></li>
        <li><code class="highlighter-rouge">.order-md-1ast</code></li>
        <li><code class="highlighter-rouge">.order-md-0</code></li>
        <li><code class="highlighter-rouge">.order-md-1</code></li>
        <li><code class="highlighter-rouge">.order-md-2</code></li>
        <li><code class="highlighter-rouge">.order-md-3</code></li>
        <li><code class="highlighter-rouge">.order-md-4</code></li>
        <li><code class="highlighter-rouge">.order-md-5</code></li>
        <li><code class="highlighter-rouge">.order-md-6</code></li>
        <li><code class="highlighter-rouge">.order-md-7</code></li>
        <li><code class="highlighter-rouge">.order-md-8</code></li>
        <li><code class="highlighter-rouge">.order-md-9</code></li>
        <li><code class="highlighter-rouge">.order-md-10</code></li>
        <li><code class="highlighter-rouge">.order-md-11</code></li>
        <li><code class="highlighter-rouge">.order-md-12</code></li>
        <li><code class="highlighter-rouge">.order-lg-first</code></li>
        <li><code class="highlighter-rouge">.order-lg-1ast</code></li>
        <li><code class="highlighter-rouge">.order-lg-0</code></li>
        <li><code class="highlighter-rouge">.order-lg-1</code></li>
        <li><code class="highlighter-rouge">.order-lg-2</code></li>
        <li><code class="highlighter-rouge">.order-lg-3</code></li>
        <li><code class="highlighter-rouge">.order-lg-4</code></li>
        <li><code class="highlighter-rouge">.order-lg-5</code></li>
        <li><code class="highlighter-rouge">.order-lg-6</code></li>
        <li><code class="highlighter-rouge">.order-lg-7</code></li>
        <li><code class="highlighter-rouge">.order-lg-8</code></li>
        <li><code class="highlighter-rouge">.order-lg-9</code></li>
        <li><code class="highlighter-rouge">.order-lg-10</code></li>
        <li><code class="highlighter-rouge">.order-lg-11</code></li>
        <li><code class="highlighter-rouge">.order-lg-12</code></li>
        <li><code class="highlighter-rouge">.order-xl-first</code></li>
        <li><code class="highlighter-rouge">.order-xl-1ast</code></li>
        <li><code class="highlighter-rouge">.order-xl-0</code></li>
        <li><code class="highlighter-rouge">.order-xl-1</code></li>
        <li><code class="highlighter-rouge">.order-xl-2</code></li>
        <li><code class="highlighter-rouge">.order-xl-3</code></li>
        <li><code class="highlighter-rouge">.order-xl-4</code></li>
        <li><code class="highlighter-rouge">.order-xl-5</code></li>
        <li><code class="highlighter-rouge">.order-xl-6</code></li>
        <li><code class="highlighter-rouge">.order-xl-7</code></li>
        <li><code class="highlighter-rouge">.order-xl-8</code></li>
        <li><code class="highlighter-rouge">.order-xl-9</code></li>
        <li><code class="highlighter-rouge">.order-xl-10</code></li>
        <li><code class="highlighter-rouge">.order-xl-11</code></li>
        <li><code class="highlighter-rouge">.order-xl-12</code></li>
    </ul>
</div>
<!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
<script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script>

<!-- bootstrap.bundle.min.js 用于弹窗、提示、下拉菜单,包含了 popper.min.js -->
<script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script>

<!-- 最新的 Bootstrap4 核心 JavaScript 文件 -->
<script src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script>
</body>
</html>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值