Bootstrap的弹性盒子布局学习笔记

Bootstrap的弹性盒子布局学习笔记

目录

  • 01-综述
  • 02-利用类d-flex与类d-inline-flex将容器定义为弹性盒子
  • 03-对弹性容器的的元素在水平方向上进行排列顺序设置
  • 03-对弹性容器的的元素在垂直方向上进行排列顺序设置
  • 04-弹性盒子内所有元素在主轴方向上的对齐方式
  • 05-1-弹性盒子内各行在交叉轴方向上的对齐方式
  • 05-2-弹性盒子内多行内容在交叉轴方向上的对齐方式
  • 06-单独设置弹性容器内某个元素在交叉轴上的对齐方式
  • 07-均分容器剩下的空间布局(填满容器布局)
  • 08-设置某个元素尽可能多的占用剩余空间
  • 09-水平方向上的浮动布局(左对齐,右对齐)
  • 10-垂直方向上的浮动布局(顶部对齐和底部对齐)
  • 11-自动换行
  • 12-设置弹性盒子内各元素的顺序

01-综述

Bootstrap的弹性盒子(Flexbox)是一种用于创建灵活的、响应式布局的布局模型。它在Bootstrap中的实现使得构建复杂的网页布局变得更加容易和可控。以下是Bootstrap弹性盒子的主要特性:

  1. 灵活的布局: 弹性盒子模型使得容器内的子元素可以自由伸缩和排列,以适应不同的屏幕尺寸和设备。

  2. 水平和垂直居中: Bootstrap的Flexbox支持轻松实现元素在水平和垂直方向上的居中对齐,无需使用复杂的CSS。

  3. 顺序控制: 您可以通过调整子元素的顺序,轻松地改变它们在容器中的排列顺序,而无需改变HTML结构。

  4. 自适应列宽: 弹性盒子允许容器内的列自适应其宽度,以填充可用的空间,而不需要指定固定的列宽。

  5. 自动换行: 当子元素在容器中无法一行容纳时,它们会自动换行到下一行,而不会溢出或重叠。

  6. 空间分配: 您可以通过调整弹性盒子子元素之间的权重来分配可用空间,从而实现不同元素之间的不同宽度比例。

  7. 对齐和间距控制: 弹性盒子允许您精确控制子元素在容器内的对齐方式和间距。

  8. 嵌套支持: 您可以嵌套多个弹性盒子容器,以创建更复杂的布局。

总之,Bootstrap的弹性盒子模型提供了一种强大的工具,可以简化网页布局的开发,使其更加灵活和响应式。它是构建现代Web界面的重要工具之一,特别适用于需要适应不同屏幕大小和设备的项目。在Bootstrap 4和Bootstrap 5中,Flexbox已经成为默认的布局模型,因此您可以轻松地利用其功能来创建各种各样的布局。

02-利用类d-flex与类d-inline-flex将容器定义为弹性盒子

在Bootstrap的弹性盒子特性中,主要是使用类d-flex与类d-inline-flex装饰容器定义为弹性盒子。

问:Bootstrap的类d-flex与类d-inline-flex有什么区别?
答:

  1. d-flex 类: 这个类用于将元素设置为"flex"显示方式,使元素成为一个弹性容器,内部的子元素可以利用Flexbox布局来排列。这意味着元素将占据整个可用宽度,通常会在容器中占据一行,充满剩余的水平空间。子元素默认会堆叠在一行上,根据弹性容器的规则进行排列。

  2. d-inline-flex 类: 这个类也将元素设置为"flex"显示方式,但与d-flex 不同的是,它会使元素成为内联弹性容器,即元素不会占据整个可用宽度,而是在行内显示。这意味着多个d-inline-flex 元素可以在同一行内并排显示,并且根据内联弹性容器的规则进行子元素的排列。

区别总结:

  • d-flex 会使元素占据整个可用宽度,通常在容器中占据一行,充满剩余的水平空间。
  • d-inline-flex 使元素成为内联弹性容器,元素在同一行内并排显示,不会占据整个可用宽度,根据内联弹性容器的规则进行排列。

您可以根据需要选择这两个类之一,以控制元素的显示方式,并根据布局要求将元素设置为块级或内联元素。

示例代码如下:

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>创建弹性盒子</title><meta name="viewport" content="width=device-width,initial-scale=1, shrink-to-fit=no"><link rel="stylesheet" href="bootstrap-4.5.3-dist/css/bootstrap.css"><script src="jquery-3.5.1.slim.js"></script><script src="bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
</head>
<body class="container">
<h3 align="center">定义弹性盒子</h3>
<h4>使用d-flex类创建弹性盒子</h4>
<!--使用d-flex类创建弹性盒子-->
<div class="d-flex p-3 bg-warning text-white"><div class="p-2 bg-primary">首页</div><div class="p-2 bg-success">在线课程</div><div class="p-2 bg-danger">加入会员</div>
</div><br/>
<h4>使用d-inline-flex类创建弹性盒子</h4>
<!--使用d-inline-flex类创建弹性盒子-->
<div class="d-inline-flex p-3 bg-warning text-white"><div class="p-2 bg-primary">首页</div><div class="p-2 bg-success">在线课程</div><div class="p-2 bg-danger">加入会员</div>
</div>
</body>
</html>

代码中的“p-3”的意思请访问博文:https://blog.csdn.net/wenhao_ir/article/details/132666590 查看。
运行效果如下图所示:
在这里插入图片描述

03-对弹性容器的的元素在水平方向上进行排列顺序设置

可以使用类flex-row设置弹性容器的元素从左到右进行排列,当然,默认也是从左到右排列。
可以使用类flex-row-reverse设置弹性容器的元素从右到左进行排列。
示例代码如下:

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>水平方向排列</title><meta name="viewport" content="width=device-width,initial-scale=1, shrink-to-fit=no"><link rel="stylesheet" href="bootstrap-4.5.3-dist/css/bootstrap.css"><script src="jquery-3.5.1.slim.js"></script><script src="bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
</head>
<body class="container">
<h3 align="center">水平方向排列</h3>
<h4>使用flex-row(从左侧开始)</h4>
<div class="d-flex flex-row p-3 bg-warning text-white"><div class="p-2 bg-primary">家用电器</div><div class="p-2 bg-success">办公电脑</div><div class="p-2 bg-danger">男装女装</div>
</div><br/>
<h4>使用flex-row-reverse(从右侧开始)</h4>
<div class="d-flex flex-row-reverse bg-warning p-3 text-white"><div class="p-2 bg-primary">家用电器</div><div class="p-2 bg-success">办公电脑</div><div class="p-2 bg-danger">男装女装</div>
</div>
</body>
</html>

运行效果如下:
在这里插入图片描述

03-对弹性容器的的元素在垂直方向上进行排列顺序设置

可以使用类flex-column设置弹性容器的元素从上到下进行排列,当然,默认也是从上到下排列。
可以使用类flex-row-reverse设置弹性容器的元素从下到上进行排列。
示例代码如下:

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>垂直方向排列</title><meta name="viewport" content="width=device-width,initial-scale=1, shrink-to-fit=no"><link rel="stylesheet" href="bootstrap-4.5.3-dist/css/bootstrap.css"><script src="jquery-3.5.1.slim.js"></script><script src="bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
</head>
<body class="container">
<h3  align="center">垂直方向排列</h3>
<h4>1. flex-column(从上往下)</h4>
<div class="d-flex flex-column p-3 bg-warning text-white"><div class="p-2 bg-primary">家用电器</div><div class="p-2 bg-success">办公电脑</div><div class="p-2 bg-danger">男装女装</div>
</div><br/>
<h4>2. flex-column-reverse(从下往上)</h4>
<div class="d-flex flex-column-reverse bg-warning p-3 text-white"><div class="p-2 bg-primary">家用电器</div><div class="p-2 bg-success">办公电脑</div><div class="p-2 bg-danger">男装女装</div>
</div>
</body>
</html>

运行效果如下:
在这里插入图片描述

04-弹性盒子内所有元素在主轴方向上的对齐方式

可以利用下面的五个类实现“弹性盒子内所有元素在主轴方向上的对齐方式”:
justify-content-start
justify-content-center
justify-content-end
justify-content-between
justify-content-around
示例代码如下:

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>弹性盒子内所有元素在主轴方向上的对齐方式</title><meta name="viewport" content="width=device-width,initial-scale=1, shrink-to-fit=no"><link rel="stylesheet" href="bootstrap-4.5.3-dist/css/bootstrap.css"><script src="jquery-3.5.1.slim.js"></script><script src="bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
</head>
<body class="container">
<h3 align="center">弹性盒子内所有元素在主轴方向上的对齐方式</h3><h4>justify-content-start:各元素位于弹性容器主轴方向的开头</h4>
<div class="d-flex justify-content-start mb-3 bg-warning text-white"><div class="p-2 bg-primary">家用电器</div><div class="p-2 bg-success">办公电脑</div><div class="p-2 bg-danger">男装女装</div>
</div><h4>justify-content-center:各元素位于弹性容器主轴方向的中间</h4>
<div class="d-flex justify-content-center mb-3 bg-warning text-white"><div class="p-2 bg-primary">家用电器</div><div class="p-2 bg-success">办公电脑</div><div class="p-2 bg-danger">男装女装</div>
</div><h4>justify-content-end:各元素位于弹性容器主轴方向的尾部</h4>
<div class="d-flex justify-content-end mb-3 bg-warning text-white"><div class="p-2 bg-primary">家用电器</div><div class="p-2 bg-success">办公电脑</div><div class="p-2 bg-danger">男装女装</div>
</div><h4>justify-content-between:在弹性容器的主轴方向上各元素之间留有空白</h4>
<div class="d-flex justify-content-between mb-3 bg-warning text-white"><div class="p-2 bg-primary">家用电器</div><div class="p-2 bg-success">办公电脑</div><div class="p-2 bg-danger">男装女装</div>
</div><h4>justify-content-around:在弹性容器的主轴方向上各元素的前后留有空白</h4>
<div class="d-flex justify-content-around bg-warning text-white"><div class="p-2 bg-primary">家用电器</div><div class="p-2 bg-success">办公电脑</div><div class="p-2 bg-danger">男装女装</div>
</div>
</body>
</html>

这个示例代码中的类 mb-3 的详细介绍请参见博文:https://blog.csdn.net/wenhao_ir/article/details/132666590

关于什么叫主轴?
请大家参见博文:https://blog.csdn.net/wenhao_ir/article/details/133357422
运行效果如下图所示:
在这里插入图片描述

05-1-弹性盒子内各行在交叉轴方向上的对齐方式

示例代码如下 :

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>弹性盒子内各行在交叉轴方向上的对齐方式</title><meta name="viewport" content="width=device-width,initial-scale=1, shrink-to-fit=no"><link rel="stylesheet" href="bootstrap-4.5.3-dist/css/bootstrap.css"><script src="jquery-3.5.1.slim.js"></script><script src="bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
</head>
<style>.box{width: 100%;   /*设置宽度*/height: 70px;   /*设置高度*/}
</style>
<body class="container">
<h3 align="center">弹性盒子内各行在交叉轴方向上的对齐方式 </h3><h4>align-items-start:各行在交叉轴方向上对齐到父容器的顶部</h4>
<div class="d-flex align-items-start bg-warning text-white mb-3 box"><div class="p-2 bg-primary">家用电器</div><div class="p-2 bg-success">办公电脑</div><div class="p-2 bg-danger">男装女装</div><div class="p-2 bg-success">生鲜酒品</div><div class="p-2 bg-danger">箱包钟表</div><div class="p-2 bg-primary">玩具乐器</div><div class="p-2 bg-success">汽车用品</div><div class="p-2 bg-danger">特产食品</div><div class="p-2 bg-primary">图书文具</div><div class="p-2 bg-success">童装内衣</div><div class="p-2 bg-danger">鲜花礼品</div>
</div><h4>align-items-end:各行在交叉轴方向上对齐到父容器的底部</h4>
<div class="d-flex align-items-end bg-warning text-white mb-3 box"><div class="p-2 bg-primary">家用电器</div><div class="p-2 bg-success">办公电脑</div><div class="p-2 bg-danger">男装女装</div><div class="p-2 bg-success">生鲜酒品</div><div class="p-2 bg-danger">箱包钟表</div><div class="p-2 bg-primary">玩具乐器</div><div class="p-2 bg-success">汽车用品</div><div class="p-2 bg-danger">特产食品</div><div class="p-2 bg-primary">图书文具</div><div class="p-2 bg-success">童装内衣</div><div class="p-2 bg-danger">鲜花礼品</div>
</div><h4>align-items-center:各行在交叉轴方向上居中对齐</h4>
<div class="d-flex align-items-center bg-warning text-white mb-3 box"><div class="p-2 bg-primary">家用电器</div><div class="p-2 bg-success">办公电脑</div><div class="p-2 bg-danger">男装女装</div><div class="p-2 bg-success">生鲜酒品</div><div class="p-2 bg-danger">箱包钟表</div><div class="p-2 bg-primary">玩具乐器</div><div class="p-2 bg-success">汽车用品</div><div class="p-2 bg-danger">特产食品</div><div class="p-2 bg-primary">图书文具</div><div class="p-2 bg-success">童装内衣</div><div class="p-2 bg-danger">鲜花礼品</div>
</div><h4>align-items-baseline:各行在交叉轴方向上基线对齐</h4>
<div class="d-flex align-items-baseline bg-warning text-white mb-3 box"><div class="p-2 bg-primary">家用电器</div><div class="p-2 bg-success" style="font-size: x-large;">办公电脑</div><div class="p-2 bg-danger">男装女装</div><div class="p-2 bg-success">生鲜酒品</div><div class="p-2 bg-danger">箱包钟表</div><div class="p-2 bg-primary">玩具乐器</div><div class="p-2 bg-success" style="font-size: x-large;">汽车用品</div><div class="p-2 bg-danger">特产食品</div><div class="p-2 bg-primary">图书文具</div><div class="p-2 bg-success">童装内衣</div><div class="p-2 bg-danger">鲜花礼品</div>
</div><h4>align-items-stretch:各行在在交叉轴方向上进行拉伸处理</h4>
<div class="d-flex align-items-stretch bg-warning text-white mb-3 box"><div class="p-2 bg-primary">家用电器</div><div class="p-2 bg-success">办公电脑</div><div class="p-2 bg-danger">男装女装</div><div class="p-2 bg-success">生鲜酒品</div><div class="p-2 bg-danger">箱包钟表</div><div class="p-2 bg-primary">玩具乐器</div><div class="p-2 bg-success">汽车用品</div><div class="p-2 bg-danger">特产食品</div><div class="p-2 bg-primary">图书文具</div><div class="p-2 bg-success">童装内衣</div><div class="p-2 bg-danger">鲜花礼品</div>
</div></body>
</html>

关于什么叫交叉轴?
请大家参见博文:https://blog.csdn.net/wenhao_ir/article/details/133357422

关于基线的概念及子元素在其父容器内基线对齐,请大家参考博文:
https://blog.csdn.net/wenhao_ir/article/details/133343442
运行效果如下:
在这里插入图片描述

05-2-弹性盒子内多行内容在交叉轴方向上的对齐方式

05-1中各个类处理的对象是各行,而05-2中的类处理的对象是连续的多行。
示例代码如下:

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>弹性盒子内多行内容在交叉轴方向上的对齐方式</title><meta name="viewport" content="width=device-width,initial-scale=1, shrink-to-fit=no"><link rel="stylesheet" href="bootstrap-4.5.3-dist/css/bootstrap.css"><script src="jquery-3.5.1.slim.js"></script><script src="bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
</head>
<body class="container"><h3 align="center">弹性盒子内多行内容在交叉轴方向上的对齐方式</h3>
<h4  align="center">align-content-start</h4>
<div class="d-flex align-content-start bg-warning text-white flex-wrap mb-4" style="height: 150px;"><div class="p-2 bg-primary">首页</div><div class="p-2 bg-success">家用电器</div><div class="p-2 bg-danger">办公电脑</div><div class="p-2 bg-primary">男装女装</div><div class="p-2 bg-success">生鲜酒品</div><div class="p-2 bg-danger">箱包钟表</div><div class="p-2 bg-primary">玩具乐器</div><div class="p-2 bg-success">汽车用品</div><div class="p-2 bg-danger">特产食品</div><div class="p-2 bg-primary">图书文具</div><div class="p-2 bg-success">童装内衣</div><div class="p-2 bg-danger">鲜花礼品</div>
</div>
<h4  align="center">align-content-center</h4>
<div class="d-flex align-content-center bg-warning text-white flex-wrap mb-4" style="height: 150px;"><div class="p-2 bg-primary">首页</div><div class="p-2 bg-success">家用电器</div><div class="p-2 bg-danger">办公电脑</div><div class="p-2 bg-primary">男装女装</div><div class="p-2 bg-success">生鲜酒品</div><div class="p-2 bg-danger">箱包钟表</div><div class="p-2 bg-primary">玩具乐器</div><div class="p-2 bg-success">汽车用品</div><div class="p-2 bg-danger">特产食品</div><div class="p-2 bg-primary">图书文具</div><div class="p-2 bg-success">童装内衣</div><div class="p-2 bg-danger">鲜花礼品</div>
</div>
<h4  align="center">align-content-end</h4>
<div class="d-flex align-content-end bg-warning text-white flex-wrap" style="height: 150px;"><div class="p-2 bg-primary">首页</div><div class="p-2 bg-success">家用电器</div><div class="p-2 bg-danger">办公电脑</div><div class="p-2 bg-primary">男装女装</div><div class="p-2 bg-success">生鲜酒品</div><div class="p-2 bg-danger">箱包钟表</div><div class="p-2 bg-primary">玩具乐器</div><div class="p-2 bg-success">汽车用品</div><div class="p-2 bg-danger">特产食品</div><div class="p-2 bg-primary">图书文具</div><div class="p-2 bg-success">童装内衣</div><div class="p-2 bg-danger">鲜花礼品</div>
</div>
</body
</html>

运行效果如下图所示:
在这里插入图片描述
我们把这个示例中的类换成5-1中的各个类,即以每行为处理单位的类,代码如下:
我们把这个示例中的类换成5-1中的各个类,即以每行为处理单位的类,代码如下:
我们把这个示例中的类换成5-1中的各个类,即以每行为处理单位的类,代码如下:

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>弹性盒子内每一行内容在交叉轴方向上的对齐方式</title><meta name="viewport" content="width=device-width,initial-scale=1, shrink-to-fit=no"><link rel="stylesheet" href="bootstrap-4.5.3-dist/css/bootstrap.css"><script src="jquery-3.5.1.slim.js"></script><script src="bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
</head><body class="container"><h3 align="center">弹性盒子内每一行内容在交叉轴方向上的对齐方式</h3>
<h4  align="center">align-items-start</h4>
<div class="d-flex align-items-start bg-warning text-white flex-wrap mb-4" style="height: 150px;"><div class="p-2 bg-primary">首页</div><div class="p-2 bg-success">家用电器</div><div class="p-2 bg-danger">办公电脑</div><div class="p-2 bg-primary">男装女装</div><div class="p-2 bg-success">生鲜酒品</div><div class="p-2 bg-danger">箱包钟表</div><div class="p-2 bg-primary">玩具乐器</div><div class="p-2 bg-success">汽车用品</div><div class="p-2 bg-danger">特产食品</div><div class="p-2 bg-primary">图书文具</div><div class="p-2 bg-success">童装内衣</div><div class="p-2 bg-danger">鲜花礼品</div>
</div>
<h4  align="center">align-items-center</h4>
<div class="d-flex align-items-center bg-warning text-white flex-wrap mb-4" style="height: 150px;"><div class="p-2 bg-primary">首页</div><div class="p-2 bg-success">家用电器</div><div class="p-2 bg-danger">办公电脑</div><div class="p-2 bg-primary">男装女装</div><div class="p-2 bg-success">生鲜酒品</div><div class="p-2 bg-danger">箱包钟表</div><div class="p-2 bg-primary">玩具乐器</div><div class="p-2 bg-success">汽车用品</div><div class="p-2 bg-danger">特产食品</div><div class="p-2 bg-primary">图书文具</div><div class="p-2 bg-success">童装内衣</div><div class="p-2 bg-danger">鲜花礼品</div>
</div>
<h4  align="center">align-items-end</h4>
<div class="d-flex align-items-end bg-warning text-white flex-wrap" style="height: 150px;"><div class="p-2 bg-primary">首页</div><div class="p-2 bg-success">家用电器</div><div class="p-2 bg-danger">办公电脑</div><div class="p-2 bg-primary">男装女装</div><div class="p-2 bg-success">生鲜酒品</div><div class="p-2 bg-danger">箱包钟表</div><div class="p-2 bg-primary">玩具乐器</div><div class="p-2 bg-success">汽车用品</div><div class="p-2 bg-danger">特产食品</div><div class="p-2 bg-primary">图书文具</div><div class="p-2 bg-success">童装内衣</div><div class="p-2 bg-danger">鲜花礼品</div>
</div>
</body
</html>

运行效果如下:
在这里插入图片描述

06-单独设置弹性容器内某个元素在交叉轴上的对齐方式

在第05点中,设置的是整个容器内所有元素在交叉上的对齐方式。
可以利用下面的类实现设置弹性容器内某个元素在交叉上的对齐方式。
align-self-start
align-self-center
align-self-end
align-self-baseline
align-self-stretch
要想使用好上面这几个自动对齐的类,必须要理解什么是交叉轴。交叉轴的概念请参考我的另一篇博文:https://blog.csdn.net/wenhao_ir/article/details/133357422
示例代码如下:

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>单独设置弹性容器内某个元素在交叉轴上的对齐方式</title><meta name="viewport" content="width=device-width,initial-scale=1, shrink-to-fit=no"><link rel="stylesheet" href="bootstrap-4.5.3-dist/css/bootstrap.css"><script src="jquery-3.5.1.slim.js"></script><script src="bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
</head>
<style>.box{width: 100%;   /*设置宽度*/height: 70px;   /*设置高度*/}
</style>
<body class="container">
<h3 align="center">单独设置弹性容器内某个元素在交叉轴上的对齐方式</h3><h4>align-self-start:第2个子元素尽可能靠近交叉轴的起始位置</h4>
<div class="d-flex bg-warning text-white mb-3 box"><div class="px-2 bg-primary">家用电器</div><div class="px-2 bg-success align-self-start">办公电脑</div><div class="px-2 bg-danger">男装女装</div>
</div><h4>align-self-center:第2个子元素在交叉轴上居中对齐</h4>
<div class="d-flex bg-warning text-white mb-3 box"><div class="px-2 bg-primary">家用电器</div><div class="px-2 bg-success align-self-center">办公电脑</div><div class="px-2 bg-danger">男装女装</div>
</div><h4>align-self-end:第2个子元素尽可能靠近交叉轴的结束位置</h4>
<div class="d-flex bg-warning text-white mb-3 box"><div class="px-2 bg-primary">家用电器</div><div class="px-2 bg-success align-self-end">办公电脑</div><div class="px-2 bg-danger">男装女装</div>
</div><h4>align-self-baseline:第2个和第3个子元素按交叉轴的基线对齐</h4>
<div class="d-flex bg-warning text-white mb-3 box"><div class="px-2 bg-primary">家用电器</div><div class="px-2 bg-success align-self-baseline" style="font-size: x-large;">办公电脑</div><div class="px-2 bg-danger align-self-baseline">男装女装</div>
</div><h4>align-self-end:第2个子元素在交叉轴方向上进行拉伸处理</h4>
<div class="d-flex bg-warning text-white mb-3 box"><div class="px-2 bg-primary">家用电器</div><div class="px-2 bg-success align-self-stretch">办公电脑</div><div class="px-2 bg-danger">男装女装</div>
</div>
</body>
</html>

运行效果如下图所示:
在这里插入图片描述

07-均分容器剩下的空间布局(填满容器布局)

可以使用类flex-fill实现均分容器剩下的空间布局(填满容器布局)
示例代码如下:

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>均分容器剩下的空间布局(填满容器布局)</title><meta name="viewport" content="width=device-width,initial-scale=1, shrink-to-fit=no"><link rel="stylesheet" href="bootstrap-4.5.3-dist/css/bootstrap.css"><script src="jquery-3.5.1.slim.js"></script><script src="bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
</head>
<body>
<h3 align="center">均分容器剩下的空间布局(填满容器布局)</h3>
<div class="d-flex bg-warning text-white"><div class="flex-fill p-2 bg-primary ">首页</div><div class="flex-fill p-2 bg-success">经典的在线课程</div><div class="flex-fill p-2 bg-danger">会员中心</div>
</div>
</body>
</html>

运行效果如下图所示:
在这里插入图片描述

08-设置某个元素尽可能多的占用剩余空间

可以利用类flex-grow-1与类w-100实现设置某个元素尽可能多的占用剩余空间。
示例代码如下:

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>某个元素尽可能多的占用剩余空间</title><meta name="viewport" content="width=device-width,initial-scale=1, shrink-to-fit=no"><link rel="stylesheet" href="bootstrap-4.5.3-dist/css/bootstrap.css"><script src="jquery-3.5.1.slim.js"></script><script src="bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
</head>
<body class="container">
<h5 align="center">flex-grow-1:某个元素占用所有的剩余空间</h5>
<div class="d-flex bg-warning text-white mb-4"><div class="p-2 flex-grow-1 bg-primary">家用电器</div><div class="p-2 bg-success">电脑办公</div><div class="p-2 bg-danger">男装女装</div>
</div>
<h5 align="center">w-100:设置元素的宽度占用容器的整个可用宽度</h5>
<div class="d-flex bg-warning text-white"><div class="p-2 w-100 bg-primary">家用电器</div><div class="p-2 bg-success">电脑办公</div><div class="p-2 w-100 bg-danger">男装女装</div>
</div>
</body>
</html>

运行效果如下图所示:
在这里插入图片描述

09-水平方向上的浮动布局(左对齐,右对齐)

可以利用类mr-auto和类ml-auto分别实现容器内元素的左对齐和右对齐。
类mr-auto介绍如下:
在Bootstrap中,mr-auto是一个类(class),用于调整水平对齐方式。具体地说,mr-auto类被应用于一个元素(通常是一个元素的CSS类),以将该元素的右边距(margin-right)设置为自动(auto),从而使它右边的元素在其容器内水平右对齐

这通常用于在Bootstrap的网格系统中,将某个元素右边的元素推送到其容器的右侧,以实现水平对齐效果。
类ml-auto的介绍:略。
示例代码如下:

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>水平方向浮动布局</title><meta name="viewport" content="width=device-width,initial-scale=1, shrink-to-fit=no"><link rel="stylesheet" href="bootstrap-4.5.3-dist/css/bootstrap.css"><script src="jquery-3.5.1.slim.js"></script><script src="bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
</head>
<body class="container">
<h3 class="mb-3" align="center">水平方向浮动布局</h3><h5 align="center">未设置某个元素的左右边距为自动</h5>
<div class="d-flex bg-warning text-white mb-3"><div class="p-2 bg-primary">家用电器</div><div class="p-2 bg-success">电脑办公</div><div class="p-2 bg-danger">男装女装</div>
</div><h5 align="center">设置第1个元素的右边距为自动,<br/>这样其右边的元素会被推到右边,<br/>从而实现其右边的元素右对齐。</h5>
<div class="d-flex bg-warning text-white mb-3"><div class="mr-auto p-2 bg-primary">家用电器</div><div class="p-2 bg-success">电脑办公</div><div class="p-2 bg-danger">男装女装</div>
</div><h5 align="center">设置第3个元素的左边距为自动,<br/>这样其左边的元素会被推到左边,<br/>从而实现其左边的元素左对齐。</h5>
<div class="d-flex bg-warning text-white mb-3"><div class="p-2 bg-primary">家用电器</div><div class="p-2 bg-success">电脑办公</div><div class="ml-auto p-2 bg-danger">男装女装</div>
</div>
</body>
</html>

运行效果如下:
在这里插入图片描述

10-垂直方向上的浮动布局(顶部对齐和底部对齐)

可以利用类mb-auto和mt-auto实现别的元素的底部对齐和顶部对齐,mb为margin-bottom的缩写,mt为margin-top的缩定。
理解了第9个中的mr-atuo,其实也就理解这两个了,这里就不再赘述。
代码如下:

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>垂直方向浮动布局</title><meta name="viewport" content="width=device-width,initial-scale=1, shrink-to-fit=no"><link rel="stylesheet" href="bootstrap-4.5.3-dist/css/bootstrap.css"><script src="jquery-3.5.1.slim.js"></script><script src="bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
</head>
<body class="container">
<h3  class="mb-4" align="center">垂直方向浮动布局</h3><h5 align="center">设置第1个元素的下边距为自动,<br/>这样其下方的元素会被推到底部,<br/>从而实现其下方元素的底对齐。</h5>
<div class="d-flex align-items-end flex-column bg-warning text-white mb-4" style="height: 200px;"><div class="mb-auto p-2 bg-primary">家用电器</div><div class="p-2 bg-success">电脑办公</div><div class="p-2 bg-success">母婴用品</div><div class="p-2 bg-danger">男装女装</div>
</div><h5 align="center">设置第4个元素的上边距为自动,<br/>这样其上方的元素会被推到顶部,<br/>从而实现其上方元素的顶对齐。</h5>
<div class="d-flex align-items-end flex-column bg-warning text-white" style="height: 200px;"><div class="p-2 bg-primary">家用电器</div><div class="p-2 bg-success">电脑办公</div><div class="p-2 bg-success">母婴用品</div><div class="mt-auto p-2 bg-danger">男装女装</div>
</div>
</body>
</html>

运行效果如下图所示:
在这里插入图片描述

11-自动换行

可以利用类flex-wrap和类flex-wrap-reverse实现自动换行。
对这两个类介绍如下:
Bootstrap的类 flex-wrap 是用于控制 Flexbox 布局中项目如何在容器中换行的类。Flexbox是一种弹性布局模型,允许容器中的项目在不同方向上自动调整它们的位置以适应可用空间。flex-wrap 类有三个可能的值:

  1. flex-nowrap(默认值):项目不会换行,它们会尽可能地挤在一行内,即使超出了容器的边界。

  2. flex-wrap:项目会根据需要换行,如果容器的宽度不足以容纳所有项目,那么一部分项目会自动换行到下一行。

  3. flex-wrap-reverse:与 flex-wrap 类似,但是项目会从容器的底部开始向上换行。

这些类通常与 Bootstrap 的网格系统一起使用,以控制列在不同屏幕尺寸下的布局方式。例如,你可以使用 flex-nowrap 类来确保在较小的屏幕上列不会换行,而在较大的屏幕上可以使用 flex-wrap 类来允许列自动换行以适应更大的屏幕宽度。
示例代码如下:

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>自动换行的弹性布局</title><meta name="viewport" content="width=device-width,initial-scale=1, shrink-to-fit=no"><link rel="stylesheet" href="bootstrap-4.5.3-dist/css/bootstrap.css"><script src="jquery-3.5.1.slim.js"></script><script src="bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
</head>
<body class="container">
<h3 class="mb-4" align="center">自动换行的弹性布局</h3><h5 align="center">无自动换行效果</h5>
<div class="d-flex bg-warning text-white mb-4" ><div class="p-2 bg-primary">首页</div><div class="p-2 bg-success">家用电器</div><div class="p-2 bg-danger">办公电脑</div><div class="p-2 bg-primary">男装女装</div><div class="p-2 bg-success">生鲜酒品</div><div class="p-2 bg-danger">箱包钟表</div><div class="p-2 bg-danger">潮流T恤</div><div class="p-2 bg-danger">时尚女鞋</div><div class="p-2 bg-danger">男士外套</div><div class="p-2 bg-danger">新款男鞋</div><div class="p-2 bg-danger">司法拍卖</div>
</div><h5 align="center">flex-wrap:自动换行效果</h5>
<div class="d-flex bg-warning text-white mb-4 flex-wrap " ><div class="p-2 bg-primary">首页</div><div class="p-2 bg-success">家用电器</div><div class="p-2 bg-danger">办公电脑</div><div class="p-2 bg-primary">男装女装</div><div class="p-2 bg-success">生鲜酒品</div><div class="p-2 bg-danger">箱包钟表</div><div class="p-2 bg-danger">潮流T恤</div><div class="p-2 bg-danger">时尚女鞋</div><div class="p-2 bg-danger">男士外套</div><div class="p-2 bg-danger">新款男鞋</div><div class="p-2 bg-danger">司法拍卖</div>
</div><h5 align="center">flex-wrap-reverse:自动换行效果(从底部开始换行)</h5>
<div class="d-flex bg-warning text-white mb-4 flex-wrap-reverse"><div class="p-2 bg-primary">首页</div><div class="p-2 bg-success">家用电器</div><div class="p-2 bg-danger">办公电脑</div><div class="p-2 bg-primary">男装女装</div><div class="p-2 bg-success">生鲜酒品</div><div class="p-2 bg-danger">箱包钟表</div><div class="p-2 bg-danger">潮流T恤</div><div class="p-2 bg-danger">时尚女鞋</div><div class="p-2 bg-danger">男士外套</div><div class="p-2 bg-danger">新款男鞋</div><div class="p-2 bg-danger">司法拍卖</div>
</div>
</body>
</html>

运行效果如下图所示:
在这里插入图片描述

12-设置弹性盒子内各元素的顺序

可以利用类 order-x实现弹性盒子内各元素的顺序设置。
示例代码如下:

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>设置弹性盒子内各元素的顺序</title><meta name="viewport" content="width=device-width,initial-scale=1, shrink-to-fit=no"><link rel="stylesheet" href="bootstrap-4.5.3-dist/css/bootstrap.css"><script src="jquery-3.5.1.slim.js"></script><script src="bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
</head>
<body class="container">
<h3 align="center">设置弹性盒子内各元素的顺序</h3>
<div class="d-flex bg-warning text-white"><div class="order-3 p-2 bg-primary">首页</div><div class="order-2 p-2 bg-success">在线课程</div><div class="order-1 p-2 bg-danger">会员中心</div>
</div>
<div class="d-flex bg-warning text-white"><div class="order-1 p-2 bg-primary">首页</div><div class="order-2 p-2 bg-success">在线课程</div><div class="order-3 p-2 bg-danger">会员中心</div>
</div>
</body>
</html>

运行效果如下图所示:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/143964.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu22.04使用共享文件设置

从ubuntu20.04开始&#xff0c;设置共享文件就很麻烦 第一步&#xff1a; 安装samba&#xff1a; sudo apt install samba第二步; 创建一个共享文件夹 我以桌面Desktop为例子 第三步&#xff1a; 设置密码&#xff1a; sudo smbpasswd -a ygc第四步&#xff1a; sudo vim …

基于云服务器 EC2 的云上堡垒机的设计和自动化实现

背景 在很多企业的实际应用场景中&#xff0c;特别是金融类的客户&#xff0c;大部分的应用都是部署在私有子网中&#xff0c;如何能够让客户的开发人员和运维人员从本地的数据中心中安全的访问云上资源&#xff0c;堡垒机是一个很好的选择。传统堡垒机的核心实现原理是基于 S…

windows:批处理bat入门

文章目录 什么是BAT常用命令与语法help与/?titlecolormodeechopausecallremset/a/p gotostartifif errorlevel for普通用法for /l 用法for /d用法for /r用法for /f用法in (file)delims和tokensskipeolusebackq 变量扩展变量延迟 setlocalshiftdirrd&#xff08;删除文件夹&…

C#中的for和foreach的探究与学习

一:语句及表示方法 for语句: for(初始表达式;条件表达式;增量表达式) {循环体 }foreach语句: foreach(数据类型 变量 in 数组或集合) {循环体 }理解 1.从程序逻辑上理解,foreach是通过指针偏移实现的(最初在-1位置,每循环一次,指针就便宜一个单位),而for循环是通

跨类型文本文件,反序列化与类型转换的思考

文章目录 应用场景序列化 - 对象替换原内容&#xff0c;方便使用编写程序取得结果数组 序列化 - JSON 应用场景 在编写热更新的时候&#xff0c;我发现了一个古早的 ini 文件&#xff0c;记录了许多有用的数据 由于使用的语言年份较新&#xff0c;没有办法较好地对 ini 文件的…

Leetcode算法题练习(一)

目录 一、前言 二、移动零 三、复写零 四、快乐数 五、电话号码的字母组合 六、字符串相加 一、前言 大家好&#xff0c;我是dbln&#xff0c;从本篇文章开始我就会记录我在练习算法题时的思路和想法。如果有错误&#xff0c;还请大家指出&#xff0c;帮助我进步。谢谢&…

Library ‘iconv2.4.0‘ not found 问题及解决方法

今天升级了一下Mac mini 和Xcode&#xff0c;运行项目就报Library iconv2.4.0 not found的错误 mac mini 升级&#xff1a;13.0 --> 13.6 xcode升级到&#xff1a;15.0(15A240d) 可以肯定 项目在旧版本下&#xff0c;是能通过编译 并且能运行的。 废话不多说&#xff0c…

源码编译postgresql

没什么好研究的了&#xff0c;就试试编译Postgresql源码&#xff0c;按照网站查的资料一步步测试的&#xff0c;方便后期定制数据库时候用&#xff0c;也算是开源的大优势了&#xff0c;只要你愿意折腾&#xff0c;可以自己定制或改进一个数据库来满足特殊业务。后面研究一下他…

软件测试/测试开发丨结对编程助手 GitHubCopilot

点此获取更多相关资料 简介 GitHub Copilot 是一款 AI 结对程序员&#xff0c;可帮助您更快、更少地编写代码。GitHub Copilot 由 GitHub、OpenAI 和 Microsoft 开发的生成式 AI 模型提供支持。它可作为 Visual Studio Code、Visual Studio、Neovim 和 JetBrains 集成开发环境…

科技资讯|AirPods Pro基于定位控制的自适应音频功能

在接受 TechCrunch 媒体采访时&#xff0c;苹果高管 Ron Huang 和 Eric Treski 谈到了关于 AirPods Pro 自适应音频&#xff08;Adaptive Audio&#xff09;功能的轶事&#xff0c;曾考虑基于 GPS 信号来控制自适应音频级别。 Treski 表示在探索自适应音频功能初期&#xff0…

Vue组件通信方式

1.props通信 1.1在 Vue 2 中使用 props 通信 注意:props传递的数据是只读的,子组件修改,不会影响父组件 1.1.1.定义 props 在子组件中使用 props 选项来定义要接收的属性 // 子组件 <script> export default {props: {message: String} } </script>1.1.2.传递…

智能驾驶、智能家居、智能工业中的 AI 关键基础设施,半导体厂商恩智浦的角色是什么?

我们来看一条七年前的真实新闻报道&#xff0c;2016 年《福布斯》在报道中提到“2020 年会有 1000 万台的自动驾驶汽车”。然而 2023 年的现在&#xff0c;真正实现 L4 级别自动驾驶的汽车&#xff0c;仍然远远没有达到这个预测的数量。 另一边&#xff0c;数据显示&#xff0c…

VS+Qt+opencascade三维绘图stp/step/igs/stl格式图形读取显示

程序示例精选 VSQtopencascade三维绘图stp/step/igs/stl格式图形读取显示 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《VSQtopencascade三维绘图stp/step/igs/stl格式图形读取显示》编写…

C# Task任务详解

文章目录 前言Task返回值无参返回有参返回 async和await返回值await搭配使用Main async改造 Task进阶Task线程取消测试用例超时设置 线程暂停和继续测试用例 多任务等最快多任务全等待 结论 前言 Task是对于Thread的封装&#xff0c;是极其优化的设计&#xff0c;更加方便了我…

Kotlin中使用Java数据类时引发的一个Bug

文章目录 基础复习&#xff1a;Kotlin语言中的对象比较背景问题出现解决方式方式一方式二 基础复习&#xff1a;Kotlin语言中的对象比较 比较对象的内容是否相等 ( 或者 equals )&#xff1a;Kotlin 中的操作符 和 equals效果相同 &#xff0c;都用于比较对象的内容是否相等,…

vlc将本地文件推流成ts实时流

推流 打开vlc &#xff0c;打开 媒体----打开网络串流 选择文件选项卡&#xff0c;打开本地文件 点击添加&#xff0c;选择本地的mp3文件 选择串流 点击下拉框&#xff0c;选择udp&#xff0c;点击右边的【添加】按钮 输入媒体流输出地址&#xff0c;点击【下一个】 选择正确的…

大语言模型之十三 LLama2中文推理

在《大语言模型之十二 SentencePiece扩充LLama2中文词汇》一文中已经扩充好了中文词汇表&#xff0c;接下来就是使用整理的中文语料对模型进行预训练了。这里先跳过预训练环节。先试用已经训练好的模型&#xff0c;看看如何推理。 合并模型 这一步骤会合并LoRA权重&#xff0…

PY32F003F18之RTC

一、RTC振荡器 PY32F003F18实时时钟的振荡器是内部RC振荡器&#xff0c;频率为32.768KHz。它也可以使用HSE时钟&#xff0c;不建议使用。HAL库提到LSE振荡器&#xff0c;但PY32F003F18实际上没有这个振荡器。 缺点&#xff1a;CPU掉电后&#xff0c;需要重新配置RTC&#xff…

全国排名前三的直播公司无锋科技入驻天府蜂巢成都直播产业基地

最近&#xff0c;全国排名前三的直播公司——无锋科技&#xff0c;正式宣布入驻位于成都的天府蜂巢直播产业基地&#xff0c;这一消息引起了业内人士的高度关注。成都直播产业基地一直是中国直播产业的重要地标之一&#xff0c;其强大的技术和资源优势为众多直播公司提供了广阔…

每日一题——寻找右区间(排序 + 二分查找)

寻找右区间&#xff08;排序 二分查找&#xff09; 题目链接 理解题目 题目给定一个具有n行2列的二维数组intervals&#xff0c;对于intervals的每一行元素i&#xff0c;就表示一个区间数组&#xff0c;intervals[i][0]即这个区间数组的起始位置start&#xff0c;intervals[i…