【Bootstrap5】Bootstrap5学习笔记

目的

学完Blazor以后,我自己用这个写了一个小工具,但是我发现自己对前端粗浅的认知确实很难把UI层的组件弄出我想要的样子,所以我思来想去决定再把前端知识补一补.记录基于菜鸟教程的Bootstrap5教程,然后有些不清楚的我还补充一些AI说的知识。

容器

Bootstrap需要一个容器来放网站的内容

  • .container 类是默认的容器,提供一个固定宽度的布局,如果改变浏览器的窗体尺寸大小,它会跟着变
  • .container-fluid 类用于 100% 宽度,占据全部视口(viewport)的容器

容器在默认情况下是会填充左右边距的,但是顶部和底部没有,Bootstrap给定义了一些固定的填充尺寸。

<div class="container pt-5"></div>

.pt-5 是一个顶部内边距(padding-top)工具类
这里的pt-5的含义是
p 表示 padding(内边距)。
t 表示 top(顶部)。
5 是 尺寸级别,对应 Bootstrap 预设的 3rem(约 48px)的间距值
加了这句话之后,容器就存在顶部内边距了,否则内容会贴紧容器顶部

Bootstrap 的间距工具类规则
Bootstrap 提供了一套统一的间距工具类,规则如下:
方向:t(top)、b(bottom)、x(水平方向)、y(垂直方向)。
尺寸:0(0px)、1(0.25rem)、2(0.5rem)、3(1rem)、4(1.5rem)、5(3rem)

这里再引出常见单位的换算
pt (point,磅):是一个物理长度单位,指的是72分之一英寸。
px (pixel,像素):是一个虚拟长度单位,是计算机系统的数字化图像长度单位,如果px要换算成物理长度,需要指定精度DPI(Dots Per Inch,每英寸像素数),在扫描打印时一般都有DPI可选。Windows系统默认是96dpi,Apple系统默认是72dpi。
em(相对长度单位,相对于当前对象内文本的字体尺寸):是一个相对长度单位,最初是指字母M的宽度,故名em。现指的是字符宽度的倍数,用法类似百分比,如:0.8em, 1.2em,2em等。通常1em=16px。
rem是CSS3新增的一个相对单位(root em,根em),它是相对大小,但相对的只是HTML根元素

容器的边框和颜色也是可以被修改的

<div class="container p-5 my-5 border"></div>
 
<div class="container p-5 my-5 bg-dark text-white"></div>
 
<div class="container p-5 my-5 bg-primary text-white"></div>

这里的my-5:
一个间距工具类,用于控制元素的垂直方向外边距(margin)。具体含义如下:
m:表示外边距(margin)。
y:表示垂直方向(Y 轴),即同时作用于元素的顶部(margin-top)和底部(margin-bottom)。
5:表示间距的大小级别,Bootstrap 预设了 0-5 六个等级,数值越大间距越大。
因此,my-5 的实际效果是:为元素的上下两侧添加较大的外边距。

具体数值
在 Bootstrap 中,5 对应 3rem 的间距(1rem = 16px,即 3rem ≈ 48px)。不同数值对应的尺寸如下:

等级012345
尺寸00.25rem0.5rem1rem1.5rem3rem

类似的工具类有
水平方向外边距:mx-(作用于左右两侧)。
单侧外边距:mt-
(顶部)、mb-(底部)、ms-(左)、me-*(右)。
内边距:将 m 替换为 p(如 py-5 表示上下内边距)

响应式容器
Bootstrap 的 .container-sm|md|lg|xl 是响应式容器类,其核心差异在于不同屏幕尺寸下的 最大宽度(max-width) 和 断点生效范围。以下是具体差异说明:

.container-sm:移动端优先的页面,在小屏设备上限制内容宽度。
.container-md:混合布局,允许平板设备保持全宽,桌面端固定宽度。
.container-xl:专为超宽屏幕优化,避免内容过度拉伸。
.
container-sm:从 sm 断点(≥576px)开始应用固定宽度,适用于需要在小屏设备上限制宽度的场景。
.container-md:从 md 断点(≥768px)开始生效,适用于中等屏幕(如平板)。
.container-lg:从 lg 断点(≥992px)生效,适合大屏桌面设备。
.container-xl:仅从 xl 断点(≥1200px)应用固定宽度,针对超大屏幕设计。
未达到断点时
所有容器类在未达到对应断点前,默认保持 100% 宽度(即与 .container-fluid 行为一致)。

在这里插入图片描述

网格系统

系统会自动分为最多 12 列,会根据屏幕大小自动重新排列。请确保每一行中列的总和等于或小于 12。
遵守的规则如下:

  1. 网格每一行需要放在设置了 .container (固定宽度) 或 .container-fluid (全屏宽度) 类的容器中,这样就可以自动设置一些外边距与内边距。
  2. 使用行来创建水平的列组。
  3. 内容需要放置在列中,并且只有列可以是行的直接子节点。
  4. 预定义的类如 .row 和 .col-sm-4 可用于快速制作网格布局。
  5. 列通过填充创建列内容之间的间隙。 这个间隙是通过 .rows 类上的负边距设置第一行和最后一列的偏移。
  6. 网格列是通过跨越指定的 12 个列来创建。 例如,设置三个相等的列,需要使用三个 .col-sm-4 来设置。
  7. Bootstrap 5 和 Bootstrap 4 使用 flexbox(弹性盒子) 而不是浮动。 Flexbox 的一大优势是,没有指定宽度的网格列将自动设置为等宽与等高列

在这里插入图片描述

<div class="row border">
  <div class="col-*-* border">11</div>
</div>
<div class="row border">
  <div class="col-*-* border">22</div>
  <div class="col-*-* border">33</div>
  <div class="col-*-* border">44</div>
</div>
 
<!-- 第二个例子:或让 Bootstrap 者自动处理布局 -->
<div class="row border">
  <div class="col border">55</div>
  <div class="col border">66</div>
  <div class="col border">77</div>
</div>

第一个div,这里(-)的意思是,单列布局:无论屏幕大小,独占一行
第二个div,这里会让系统根据屏幕大小自动推断渲染行为
第三个div,系统会按照3列等宽的方式渲染

网格系统可以支持同时把几种屏幕的适配都写进去

<div class="row">
    <div class="col-sm-3 col-md-6 col-lg-4 col-xl-2 p-3 bg-primary text-white">.col</div>
    <div class="col-sm-9 col-md-6 col-lg-8 col-xl-10 p-3 bg-dark text-white">.col</div>
</div>

网格系统也可以实现拆分单元格的效果

<div class="row">
  <div class="col-8">
    .col-8
    <div class="row">
      <div class="col-6">.col-6</div>
      <div class="col-6">.col-6</div>
    </div>
  </div>
  <div class="col-4">.col-4</div>
</div>

在这里插入图片描述
网格系统也可以支持偏移

偏移列通过 offset-- 类来设置。第一个星号( * )可以是 sm、md、lg、xl,表示屏幕设备类型,第二个星号( * )可以是 1 到 11 的数字。
为了在大屏幕显示器上使用偏移,请使用 .offset-md-* 类。这些类会把一个列的左外边距(margin)增加 * 列,其中 * 范围是从 1 到 11。
例如:.offset-md-4 是把.col-md-4 往右移了四列格。

<div class="row">
  <div class="col-md-4">.col-md-4</div>
  <div class="col-md-4 offset-md-4">.col-md-4 .offset-md-4</div>
</div>
<div class="row">
  <div class="col-md-3 offset-md-3">.col-md-3 .offset-md-3</div>
  <div class="col-md-3 offset-md-3">.col-md-3 .offset-md-3</div>
</div>
<div class="row">
  <div class="col-md-6 offset-md-3">.col-md-6 .offset-md-3</div>
</div>

但是需要注意在嵌套的时候,会将父容器的宽度重新划分为 新的 12 列,例如,父容器 col-md-8 占据外层的 8/12 列后,其内部嵌套的 row 会重新分配这 8 列的宽度为新的 12 列。
偏移计算需基于新划分的 12 列:子列 col-md-4 的宽度为 4/12(即占父容器宽度的 1/3),而 col-md-offset-2 表示向右偏移 2/12(即父容器宽度的 1/6)。总占用逻辑列数为 4 + 2 = 6,未超过 12,因此逻辑空间足够

<div class="col-md-8">   
<div class="row">    
 <div class="col-md-4 col-md-offset-2">嵌套偏移列</div>   
 </div> 
 </div>

父容器的实际宽度需能容纳“偏移后的子列”:即使逻辑列数未超限,仍需考虑父容器的实际渲染宽度是否足够;若父容器宽度较小(如手机端),子列偏移可能导致内容溢出48。间隙(Gutter)占用额外空间:Bootstrap 默认列之间有 30px 间隙(左右各 15px),偏移会增加边距,可能压缩内容区域;偏移类仅在特定断点生效。例如 col-md-offset-2 仅在中等屏幕(≥992px)生效,若父容器在更小屏幕下(如平板)宽度不足,偏移可能失效,导致布局堆叠

文字排版

这一讲还是比较容易理解的
就简单过一下
h1和h6是标题,可以直接写,也可以通过class=""的方式给

修改排版
display-1~6这个是控制标题类[h1-h6]的样式的
small标签是创建字体更小,颜色更浅的文本,控制标题类[h1-h6]的样式
mark标签是让

具备黄色背景及有一定的内边距
abbr标签是让

的样式为显示在文本底部的一条虚线边框,具备鼠标悬停显示一段提示词的样式,提示词是通过title值赋值实现的

<div class="container">
  <h1>Abbreviations</h1>
  <p>The abbr element is used to mark up an abbreviation or acronym:</p>
  <p>The <abbr title="World Health Organization">WHO</abbr> was founded in 1948.</p>
</div>

blockquote标签是用于引用文本的样式,其中还包含footer,也就是脚注的样式。
dl,dd,dt标签是用于列表和列表项的样式,看下显示效果

<div class="container">
  <h1>Description Lists</h1>    
  <p>The dl element indicates a description list:</p>
  <dl>
    <dt>Coffee</dt>
    <dd>- black hot drink</dd>
    <dt>Milk</dt>
    <dd>- white cold drink</dd>
  </dl>     
</div>

在这里插入图片描述
code标签是代码高亮的作用,也是对

标签修饰的
kbd标签是【快捷键】标签的作用,也是对

标签修饰的
pre标签的作用是对应的文本的换行和空格会保留渲染,不会删掉

颜色

bootstrap的颜色系统就是靠定义好的标签做的,直接给class赋值,前缀是text-
在这里插入图片描述
文本颜色透明度也可以修改

<p class="text-black-50">透明度为 50% 的黑色文本,背景为白色。</p>

不仅文本可以改,链接也可以改字体颜色,前缀是text-
在这里插入图片描述
字体的背景颜色也可以改,也是通过class赋值的方式,前缀是bg-
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【JMeter】JMeter之MQTT压测

文章目录 MQTT概念Jmeter压测MQTTMQTT服务器下载Jmeter MQTT插件测试MQTT测试思路和解决方法 MQTT概念 MQTT是什么 MQTT是用于物联网&#xff08;IoT&#xff09;的OASIS标准消息传递协议。它被设计为一种非常轻量级的发布/订阅消息传输&#xff0c;非常适合使用较少的代码占用…

Android U 分屏——SystemUI侧处理

WMShell相关的dump命令 手机分屏启动应用后运行命令&#xff1a;adb shell dumpsys activity service SystemUIService WMShell 我们可以找到其中分屏的部分&#xff0c;如下图所示&#xff1a; 分屏的组成 简图 分屏是由上分屏(SideStage)、下分屏(MainStage)以及分割线组…

一键安装Nginx部署脚本之Linux在线安装Nginx,脚本化自动化执行服务器部署(附执行脚本下载)

相关链接 一键安装Nginx部署脚本之Linux在线安装Nginx一键安装Redis部署脚本之Linux在线安装Redis一键安装Mysql部署脚本之Linux在线安装Mysql一键安装JAVA部署脚本之Linux在线安装JDKXshell客户端免费版无需注册XFtp客户端免费版无需注册 前言 简化服务器部署操作&#xff0…

yum源选要配置华为云的源,阿里云用不了的情况

curl -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo

软考中级-数据库-3.2 数据结构-数组和矩阵

数组 一维数组是长度固定的线性表&#xff0c;数组中的每个数据元素类型相同。n维数组是定长线性表在维数上的扩张&#xff0c;即线性表中的元素又是一个线性表。 例如一维数组a[5][a1,a2,a3,a4,a5] 二维数组a[2][3]是一个2行2列的数组 第一行[a11,a12,a13] 第二行[a21,a22,a23…

微服务组件详解——sentinel

1.启动sentinel&#xff1a; 下载jar sentinel-dashboard-1.8.0.jar 使用以下命令直接运行 jar 包&#xff08;JDK 版本必须≥ 1.8&#xff09;&#xff1a; java -Dserver.port9999 -jar D:\sentinel-dashboard-1.8.0.jar 控制台访问地址&#xff1a;http://localhost:9999…

网络安全清单

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 自主访问控(DAC:Discretionary Access Control) 自主访问控制(DAC)是一个访问控制服务&#xff0c;其执行一个基于系统实体身份的安全政策和它们的授权来访问系统…

unity学习62,尝试做第一个小游戏项目:flappy bird

目录 学习参考 1 创建1个unity 2D项目 1.1 2D项目模板选择 1.1.1 2D(built-in-Render pipeline) 1.1.2 universe 2D 1.1.3 这次选择 2D(built-in-Render pipeline) 1.2 创建项目 1.2.1 注意点 1.2.2 如果想修改项目名 2 导入美术资源包 2.1 下载一个flappy bird的…

tauri2+typescript+vue+vite+leaflet等的简单联合使用(一)

项目目标 主要的目的是学习tauri。 流程 1、搭建项目 2、简单的在项目使用leaflet 3、打包 准备项目 环境准备 废话不多说&#xff0c;直接开始 需要有准备能运行Rust的环境和Node&#xff0c;对于Rust可以参考下面这位大佬的文章&#xff0c;Node不必细说。 Rust 和…

【FastGPT】如何新增用户修改密码

【FastGPT】如何新增用户&修改密码 摘要查看运行中的容器进入mongo容器登录mongo数据库切换数据库查询用户集合数据新增用户查询团队表数据创建团队查询团队成员集合数据把用户加入团队FastGPT用户密码的加密规则介绍加密算法Java版参考代码&单元测试代码修改密码 摘要…

复试准备日常

实验室目前投了 aiot 这周四 感知计算面试3.5号下午2点开始&#xff08;面完了他问我有没有项目&#xff09; 532图像处理实验室&#xff08;我的项目大多也是图像处理的&#xff09;&#xff08;预计下周末&#xff09;提前到3.4号下午6点 我不在第一批里面 软专不知道要几个 …

HiRT:利用分层机器人Transformer 增强机器人控制

25年2月来自清华、伯克利分校和上海姚期智研究院的论文“HiRT: Enhancing Robotic Control with Hierarchical Robot Transformers”。 大型视觉-语言-动作 (VLA) 模型利用强大的预训练视觉-语言模型 (VLM) 后端&#xff0c;由于其深刻的泛化能力而在机器人控制方面显示出良好…

Netty笔记3:NIO编程

Netty笔记1&#xff1a;线程模型 Netty笔记2&#xff1a;零拷贝 Netty笔记3&#xff1a;NIO编程 Netty笔记4&#xff1a;Epoll Netty笔记5&#xff1a;Netty开发实例 Netty笔记6&#xff1a;Netty组件 Netty笔记7&#xff1a;ChannelPromise通知处理 Netty笔记8&#xf…

MySQL-高级查询

查询处理 排序&#xff08;默认不是按主键排序的&#xff09; order by 字段1[&#xff0c;字段2] [asc|desc] 默认是升序排序也可以指定 select 列表中列的序号进行排序如果是多个字段&#xff0c;那么在上一个字段排序完的基础上排序下一个 限制数量 limit 行数&#xff0…

解决各大浏览器中http地址无权限调用麦克风摄像头问题(包括谷歌,Edge,360,火狐)后续会陆续补充

项目场景&#xff1a; 在各大浏览器中http地址调用电脑麦克风摄像头会没有权限&#xff0c;http协议无法使用多媒体设备 原因分析&#xff1a; 为了用户的隐私安全&#xff0c;http协议无法使用多媒体设备。因为像摄像头和麦克风属于可能涉及重大隐私问题的API&#xff0c;ge…

权限系统设计方案实践(Spring Security + RBAC 模型)

前言 权限系统设计基本上是所有项目中都会涉及的一个重要部分。通过权限系统&#xff0c;我们将对用户角色、功能模块访问进行限制&#xff0c;从而保证系统安全性。本文将介绍中大型项目中常用的一套权限系统设计方案&#xff0c;通过 SpringSecurity 安全管理框架&#xff0c…

数学软件Matlab下载|支持Win+Mac网盘资源分享

如大家所了解的&#xff0c;Matlab与Maple、Mathematica并称为三大数学软件。Matlab应用广泛&#xff0c;常被用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人&#xff0c;控制系统等领域。 Matlab将数值分析、矩阵计算、科学…

植物大战僵尸杂交版v3.3最新版本(附下载链接)

B站游戏作者潜艇伟伟迷于12月21日更新了植物大战僵尸杂交版3.3版本&#xff01;&#xff01;&#xff01;&#xff0c;有b站账户的记得要给作者三连关注一下呀&#xff01; 不多废话下载链接放上&#xff1a; 夸克网盘链接&#xff1a;&#xff1a;https://pan.quark.cn/s/6f2a…

GPU、NPU与LPU:大语言模型(LLM)硬件加速器全面对比分析

引言&#xff1a;大语言模型计算基础设施的演进 随着大语言模型&#xff08;LLM&#xff09;的快速发展与广泛应用&#xff0c;高性能计算硬件已成为支撑LLM训练与推理的关键基础设施。目前市场上主要有三类处理器用于加速LLM相关任务&#xff1a;GPU&#xff08;图形处理单元…

计算机网络数据传输探秘:包裹如何在数字世界旅行?

计算机网络数据传输探秘:包裹如何在数字世界旅行? 一、从快递网络看数据传输本质 想象你网购了一件商品: 打包:商家用纸箱包装,贴上地址标签(数据封装)运输:包裹经过网点→分拣中心→运输车(网络节点与链路)签收:快递员核对信息后交付(数据校验与接收)数据的网络…