Bootstrap系列之Flex布局


Bootstrap中的Flex

弹性盒子是css3的一种布局方式,更适合于响应式的开发

  • d-flex—创建flexbox容器并将子项转换为flex项
  • d-inline-flex—创建行内flexbox容器
<div class="container d-flex p-3 bg-info">
        <div class="p-2">弹性项目111</div>
        <div class="p-2">弹性项目222</div>
        <div class="p-2">弹箱项目333</div>
</div>

d-flex与d-inline-flex也存在响应式变化

  • .d-sm-flex 屏幕宽度大于或者等于576px生效
  • .d-sm-inline-flex
  • .d-md-flex 屏幕宽度大于或等于768px生效
  • .d-md-inline-flex
  • .d-lg-flex 屏幕宽度大于或等于992px生效
  • .d-lg-inline-flex
  • .d-xl-flex 屏幕宽度大于或等于1200生效
  • .d-xl-inline-flex

flex水平布局

  • .flex-row—来设置水平方向(浏览器的默认值)
  • .flex-row-reverse—来从相反的一侧开始水平方向。
 <div class="container d-flex p-3 bg-info flex-row-reverse">
        <div class="p-2">弹性项目111</div>
        <div class="p-2">弹性项目222</div>
        <div class="p-2">弹箱项目333</div>
</div>

在这里插入图片描述

flex垂直布局

  • .flex-column—设置垂直方向,
  • .flex-column-reverse—从相反的方向开始设置垂直方向。
    在这里插入图片描述

flex水平与垂直也存在响应式变化

  • .flex-sm-row 屏幕宽度大于或者等于576px生效
  • .flex-sm-row-reverse
  • .flex-sm-column 屏幕宽度大于或者等于576px生效
  • .flex-sm-column-reverse
    (md,lg,xl)

内容排列(justify-content响应式变化也存在于这里sm,md,lg,xl)

在flex容器上使用justify-content来更改flex item在主轴上的对齐方式(x轴为起始,y轴为伸缩方向:列)。选择
start (浏览器默认), end, center, between, 或者 around

  <div class="p-2 d-flex justify-content-start bg-info">弹性项目111</div>
  <div class="p-2 d-flex justify-content-end bg-warning">弹性项目222</div>
  <div class="p-2 d-flex justify-content-center bg-danger">弹箱项目333</div>
  <div class="p-2 d-flex justify-content-between bg-success">弹性项目444</div>
  <div class="p-2 d-flex justify-content-around bg-primary">弹箱项目555</div>

在这里插入图片描述

子元素对齐方式Align items(响应式变化也存在于这里sm,md,lg,xl)

在flexbox容器上使用align-items来更改伸缩项目在侧轴的对齐方式(y轴为起始,x轴为伸缩方向:列)。选择start、end、center、baseline或stretch(浏览器默认)

    <div class=" d-flex align-items-start bg-info">弹性项目111</div>
    <div class=" d-flex align-items-end bg-warning">弹性项目222</div>
    <div class=" d-flex align-items-center bg-danger">弹箱项目333</div>
    <div class=" d-flex align-items-baseline bg-success"><p class="bg-info">弹箱项目444</p></div>
    <div class="d-flex align-items-stretch bg-primary"><p class="bg-danger">弹箱项目555</p></div>

在这里插入图片描述

指定子元素对齐

如果要设置指定子元素对齐对齐可以使用 .align-self- 类来控制,
包含的值有:
.align-self-start,.align-self-end,.align-self-center, .align-self-baseline, 和.align-self-stretch
(默认

  <div class="container mt-3">
    <p>.align-self-start:</p>
    <div class="d-flex bg-light" style="height:150px">
      <div class="p-2 border">Flex item 1</div>
      <div class="p-2 border align-self-start">Flex item 2</div>
      <div class="p-2 border">Flex item 3</div>
    </div>
    <br>
    <p>.align-self-end:</p>
    <div class="d-flex bg-light" style="height:150px">
      <div class="p-2 border">Flex item 1</div>
      <div class="p-2 border align-self-end">Flex item 2</div>
      <div class="p-2 border">Flex item 3</div>
    </div>
    <br>
    <p>.align-self-center:</p>
    <div class="d-flex bg-light" style="height:150px">
      <div class="p-2 border">Flex item 1</div>
      <div class="p-2 border align-self-center">Flex item 2</div>
      <div class="p-2 border">Flex item 3</div>
    </div>
    <br>
    <p>.align-self-baseline:</p>
    <div class="d-flex bg-light" style="height:150px">
      <div class="p-2 border">Flex item 1</div>
      <div class="p-2 border align-self-baseline">Flex item 2</div>
      <div class="p-2 border">Flex item 3</div>
    </div>
    <br>
    <p>.align-self-stretch (默认):</p>
    <div class="d-flex bg-light" style="height:150px">
      <div class="p-2 border">Flex item 1</div>
      <div class="p-2 border align-self-stretch">Flex item 2</div>
      <div class="p-2 border">Flex item 3</div>
    </div>
    </div>

在这里插入图片描述

等宽

.flex-fill 类强制设置各个弹性子元素的宽度是一样的:

 <div class="container mt-3">
      <h2>等宽</h2>
      <p>.flex-fill  用于设置子元素等宽:</p>
      <div class="d-flex">
        <div class="p-2 bg-info flex-fill">111111111111111111</div>
        <div class="p-2 bg-warning flex-fill">Flex item 2</div>
        <div class="p-2 bg-primary flex-fill">Flex item 3</div>
      </div>
    </div>

在这里插入图片描述

扩展(占用剩余空间)

.flex-grow-1 用于设置子元素使用剩下的空间。以下实例中前面两个子元素只设置了它们所需要的空间,最后一个获取剩余空间。 :

在这里插入代码片 <div class="container mt-3">
      <h2>扩展</h2>
      <p>.flex-grow-1 用于设置子元素使用剩下的空间:</p>
      <div class="d-flex mb-3">
        <div class="p-2 bg-info">Flex item 1</div>
        <div class="p-2 bg-warning">Flex item 2</div>
        <div class="p-2 flex-grow-1 bg-primary">Flex item 3</div>
      </div>
      <p>不使用 .flex-grow-1 实例:</p>
      <div class="d-flex mb-3 bg-secondary">
        <div class="p-2 bg-info">Flex item 1</div>
        <div class="p-2 bg-warning">Flex item 2</div>
        <div class="p-2 bg-primary">Flex item 3</div>
      </div>
    </div>

在这里插入图片描述

排序

.order 类可以设置弹性子元素的排序,从 .order-1 到 .order-12,数字越低权重越高( .order-1 排在 .order-2 之前) :

 <div class="container mt-3">
      <h2>排序</h2>
      <p>.order 类可以设置弹性子元素的排序,从 .order-1.order-12,数字越低权重越高:</p>
      <div class="d-flex mb-3">
        <div class="p-2 order-3 bg-info">Flex item 1</div>
        <div class="p-2 order-2 bg-warning">Flex item 2</div>
        <div class="p-2 order-1 bg-primary">Flex item 3</div>
      </div>
    </div>

在这里插入图片描述

换行

弹性容器中包裹子元素可以使用以下三个类: .flex-nowrap (默认), .flex-wrap 或 .flex-wrap-reverse。设置 flex 容器是单行或者多行。

 <div class="container mt-3">
      <h2>包裹</h2>
      <p>弹性容器中包裹弹性子元素可以使用以下三个类: .flex-nowrap (默认), .flex-wrap 或 .flex-wrap-reverse:</p>
      <p><code>.flex-wrap:</code></p>
      <div class="d-flex flex-wrap bg-light">
        <div class="p-2 border">Flex item 1</div>
        <div class="p-2 border">Flex item 2</div>
        <div class="p-2 border">Flex item 3</div>
        <div class="p-2 border">Flex item 4</div>
        <div class="p-2 border">Flex item 5</div>
        <div class="p-2 border">Flex item 6</div>
        <div class="p-2 border">Flex item 7</div>
        <div class="p-2 border">Flex item 8</div>
        <div class="p-2 border">Flex item 9</div>
        <div class="p-2 border">Flex item 10</div>
      </div>
      <br>
      <p><code>.flex-wrap-reverse:</code></p>
      <div class="d-flex flex-wrap-reverse bg-light">
        <div class="p-2 border">Flex item 1</div>
        <div class="p-2 border">Flex item 2</div>
        <div class="p-2 border">Flex item 3</div>
        <div class="p-2 border">Flex item 4</div>
        <div class="p-2 border">Flex item 5</div>
        <div class="p-2 border">Flex item 6</div>
        <div class="p-2 border">Flex item 7</div>
        <div class="p-2 border">Flex item 8</div>
        <div class="p-2 border">Flex item 9</div>
        <div class="p-2 border">Flex item 10</div>
      </div>
      <br>
      <p><code>.flex-nowrap:</code></p>
      <div class="d-flex flex-nowrap bg-light">
        <div class="p-2 border">Flex item 1</div>
        <div class="p-2 border">Flex item 2</div>
        <div class="p-2 border">Flex item 3</div>
        <div class="p-2 border">Flex item 4</div>
        <div class="p-2 border">Flex item 5</div>
        <div class="p-2 border">Flex item 6</div>
        <div class="p-2 border">Flex item 7</div>
        <div class="p-2 border">Flex item 8</div>
        <div class="p-2 border">Flex item 9</div>
        <div class="p-2 border">Flex item 10</div>
      </div>
      <br>
    </div>

在这里插入图片描述

其余方式详情查看

总结

以上就是今天要讲的内容,本文仅仅简单介绍了bootstrap中flex的使用,并记录了常用的一些排列方式,如果这篇文章不足以满足需求,可以去官方文档查看详情

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1. CSS 相邻兄弟选择器 + 相邻兄弟选择器(Adjacent sibling selector)可选择紧接在另一元素后的元素,且二者有相同父元素。 相邻兄弟选择器使用了加号(+),即相邻兄弟结合符(Adjacent sibling combinator)。 2. 手机字体图标:`content: '\e958';` 电话字体图标:`content: '\e942';` 3. bootstrap最外层伸缩容器:`class="container"` 4. bootstrap伸缩布局并居中:`d-flex justify-content-center align-items-center` 5. `jQuery.data(element,[key],[value])`:在元素上存放数据,返回jQuery对象。 例如:在index界面中 ```javascript <div class="carousel-item active" data-sm-img="images/slide_01_900x410.jpg" data-lg-img="images/slide_01_2000x410.jpg"></div> <div class="carousel-item" data-sm-img="images/slide_02_900x410.jpg" data-lg-img="images/slide_02_2000x410.jpg"></div> <div class="carousel-item" data-sm-img="images/slide_03_900x410.jpg" data-lg-img="images/slide_03_2000x410.jpg"></div> ``` 在 js中,可以通过 ```javascript $('.carousel-item').data('lg-img') ``` 获取路径值。 6. bootstrap中圆角`rounded-circle` 7. 可以使用`order-*`调整显示顺序 8. 伸缩布局两步走`container+row` ```javascript <div class="container"> <div class="row"> *** </div> </div> ``` 9. 可以利用`offset`设置偏移量调整位置 10. 将jQuery对象转换为js对象可以直接通过下标取 11. 轮播图可以通过`.carousel('prev')`和`.carousel('next')`触发前后滑动事件 12. jQuery中缩小元素查找范围 ```javascript let $ul = $("#lk_product .nav"); let $allLis = $(".nav-item", $ul); ```
### 回答1: 要让一个元素占满其所在容器的全部空间,可以使用 CSSflex 布局。具体地,将容器的 display 属性设置为 flex,然后将该元素的 flex 属性设置为 1。例如: HTML 代码: ``` <div class="container"> <div class="item">Item 1</div> <div class="item">Item 2</div> <div class="item item3">Item 3</div> </div> ``` CSS 代码: ``` .container { display: flex; height: 300px; } .item { flex: 1; border: 1px solid black; } .item3 { background-color: yellow; } ``` 在上面的代码中,容器的高度被设置为 300 像素,三个子元素都被设置为 flex: 1。其中第三个元素还额外设置了背景色为黄色。效果如下图所示: ![d-flex 占满格子](https://img-blog.csdnimg.cn/20210604095447754.png) ### 回答2: 在Bootstrap中,d-flex是用于创建一个flex容器的类名。它可以将一个元素设置为flex容器,并使用flexbox布局。当使用d-flex类时,元素的display属性会被设置为flex,使其成为一个flex容器。 要使d-flex占满格子,可以使用其他的Bootstrap类名来设置元素的宽度。例如,可以使用w-100类来设置元素的宽度为100%,使其占满父容器的格子。可以将d-flex类名与w-100类名相结合,以实现d-flex占满格子的效果。 示例代码如下: <div class="d-flex w-100"> 内容 </div> 在这个示例中,我们将一个div元素设置为flex容器,并且使用了w-100类来设置其宽度为100%。这样,这个d-flex的容器就会占满其父容器的格子。 除了w-100类,还可以使用其他的Bootstrap类名来设置元素的宽度,如w-50、w-75等。根据具体的需求,可以选择不同的类名来实现所需的布局效果。 总结起来,要使d-flex占满格子,可以使用d-flex类名将元素设置为flex容器,并使用其他的Bootstrap类名来设置元素的宽度,以实现所需的布局效果。 ### 回答3: d-flexBootstrap 框架中的一个类,用于设置元素的弹性盒子布局。当我们需要让一个元素占满其所在格子时,可以使用 d-flex 类。 首先,通过在 HTML 元素的 class 属性中添加 d-flex 类,我们可以将该元素设为弹性盒子。接着,我们可以使用其他弹性盒子属性来控制元素的尺寸和位置。 为了让该元素占满其所在格子,可以结合使用 justify-content 和 align-items 属性来实现。 当元素所在格子是父容器的子元素时,设置父容器的 class 为 d-flex,并添加 justify-content-center 和 align-items-center 类。justify-content-center 属性将元素水平居中,align-items-center 属性将元素垂直居中。 如果元素不是父容器的子元素,可以使用容器的 class 添加 d-flex,并在元素的 class 中添加 align-self-stretch 属性。align-self-stretch 属性将元素自动拉伸至与父容器的高度相同,使其占满格子。 综上所述,通过使用 d-flex 类和相应的弹性盒子属性,我们可以轻松实现让元素占满格子的效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码上流星&洒下星辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值