Bootstrap 5 保姆级教程(一):容器 & 网格系统

简介: Bootstrap 5 保姆级教程(一):容器 & 网格系统

一、容器

1.1 固定宽度(.container)

.container 类用于固定宽度并支持响应式布局的容器。

以下实例中,我们可以尝试调整浏览器窗口的大小来查看容器宽度在不同屏幕中等变化:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Bootstrap demo</title>
    <link rel="stylesheet" href="./bootstrap-5.3.3-dist/css/bootstrap.min.css">
    <script src="./bootstrap-5.3.3-dist/js/bootstrap.bundle.min.js"></script>
  </head>
  <body>
    <div class="container">
        <h1>我的第一个 Bootstrap 页面</h1>
        <p>这是一些文本。</p> 
    </div>
  </body>
</html>

1.2 100% 宽度(.container-fluid)

.container-fluid 类用于 100% 宽度,占据全部视口(viewport)的容器。

<div class="container-fluid">
    <h1>我的第一个 Bootstrap 页面</h1>
    <p>使用了 .container-fluid,100% 宽度,占据全部视口(viewport)的容器。</p> 
</div>

1.3 容器内边距(container pt-数字)

默认情况下,容器都有填充左右内边距,顶部和底部没有填充内边距。 Bootstrap 提供了一些间距类用于填充边距。 比如 .pt-5 就是用于填充顶部内边距:

<div class="container pt-5">
  <h1>我的第一个 Bootstrap 页面</h1>
  <p>这是一些文本。</p> 
</div>

<div class="container pt-2">
  <h1>我的第一个 Bootstrap 页面</h1>
  <p>这是一些文本。</p> 
</div>

内边距(Padding)类

  • .p-*:设置元素所有方向的内边距大小级别,其中 * 表示大小级别(0 到 5)。
  • .pt-*.pb-*.pl-*.pr-*:分别设置元素顶部、底部、左侧和右侧的内边距大小级别。

外边距(Margin)类

  • .m-*:设置元素所有方向的外边距大小级别,其中 * 表示大小级别(0 到 5)。
  • .mt-*.mb-*.ml-*.mr-*:分别设置元素顶部、底部、左侧和右侧的外边距大小级别。

额外的间距类

Bootstrap 5 还提供了一些额外的间距类,用于更精细地控制间距:

  • .px-*.py-*:分别设置元素水平方向(左右)和垂直方向(上下)的内边距或外边距大小级别。
  • .mx-*.my-*:分别设置元素水平方向(左右)和垂直方向(上下)的外边距大小级别。

自定义间距大小

除了预设的间距大小级别外,Bootstrap 5 还允许你使用 Sass 变量(如 spacermarginpaddingspacer)来自定义间距大小。例如,你可以将 margin 或 padding 的大小设定为 spacer 的某个倍数,如 .mt-3 表示将上方 margin 大小设定为 $spacer 的 3 倍。

1.4 容器的边框和颜色(border、bg-color、bg-primary)

Bootstrap 也提供了一些边框(border)和颜色(bg-dark、bg-primary等)类用于设置容器的样式:

<div class="container p-5 my-5 border">
  <h1>我的第一个 Bootstrap 页面</h1>
  <p>这个容器有一个边框和一些边距。</p>
</div>
    
<div class="container p-5 my-5 bg-dark text-white">
  <h1>我的第一个 Bootstrap 页面</h1>
  <p>这个容器具有深色背景色和白色文本,以及一些额外的边距。</p>
</div>
    
<div class="container p-5 my-5 bg-primary text-white">
  <h1>我的第一个 Bootstrap 页面</h1>
  <p>这个容器具有蓝色背景色和白色文本,以及一些额外的边距。</p>
</div>

1.5 响应式容器(.container-sm|md|lg|xl)

你可以使用 .container-sm|md|lg|xl 类来创建响应式容器。

容器的 max-width 属性值会根据屏幕的大小来改变。

Class 超小屏幕
<576px
小屏幕
≥576px
中等屏幕
≥768px
大屏幕
≥992px
特大屏幕
≥1200px
超级大屏幕
≥1400px
.container-sm 100% 540px 720px 960px 1140px 1320px
.container-md 100% 100% 720px 960px 1140px 1320px
.container-lg 100% 100% 100% 960px 1140px 1320px
.container-xl 100% 100% 100% 100% 1140px 1320px
.container-xxl 100% 100% 100% 100% 100% 1320px
<div class="container pt-3">
  <h1>响应式容器</h1>
  <p>重置浏览器大小查看效果.</p>
</div>
    
<div class="container-sm border">.container-sm</div>
<div class="container-md mt-3 border">.container-md</div>
<div class="container-lg mt-3 border">.container-lg</div>
<div class="container-xl mt-3 border">.container-xl</div>
<div class="container-xxl mt-3 border">.container-xxl</div>

二、网格系统

Bootstrap 提供了一套响应式、移动设备优先的流式网格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多 12 列。

我们也可以根据自己的需要,定义列数:

2.1 网格类

Bootstrap 5 网格系统有以下 6 个类:

  • .col- 针对所有设备。
  • .col-sm- 平板 - 屏幕宽度等于或大于 576px。
  • .col-md- 桌面显示器 - 屏幕宽度等于或大于 768px。
  • .col-lg- 大桌面显示器 - 屏幕宽度等于或大于 992px。
  • .col-xl- 特大桌面显示器 - 屏幕宽度等于或大于 1200px。
  • .col-xxl- 超大桌面显示器 - 屏幕宽度等于或大于 1400px。

2.2 网格系统

Bootstrap5 网格系统规则:

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

2.3 创建相等宽度的列

<div class="container-fluid mt-3">
  <h1>创建相等宽度的列</h1>
  <p>创建三个相等宽度的列! 尝试在 class="row" 的 div 中添加新的 class="col" div,会显示四个等宽的列。</p>
  <div class="row">
    <div class="col p-3 bg-primary text-white">.col</div>
    <div class="col p-3 bg-dark text-white">.col</div>
    <div class="col p-3 bg-primary text-white">.col</div>
  </div>
</div>

2.4 不等宽响应式列

以下实例演示了在平板及更大屏幕上创建不等宽度的响应式列。 在移动设备上,即屏幕宽度小于 576px 时,两个列将会上下堆叠排版:

<div class="container-fluid mt-3">
  <h1>不等宽响应式列</h1>
  <p>重置浏览器大小查效果。</p>
  <p>在移动设备上,即屏幕宽度小于 576px 时,两个列将会上下堆叠排版。</p>
  <div class="row">
    <div class="col-sm-4 p-3 bg-primary text-white">.col</div>
    <div class="col-sm-8 p-3 bg-dark text-white">.col</div>
  </div>
</div>

2.5 设置某一列宽度

如果只设置一列的宽度,其他列会自动均分剩下的宽度。 以下实例将列宽度为 25%、50%、25%:

<div class="container-fluid mt-3">
  <h2>设置某一列宽度</h2>
  <p>如果只设置一列的宽度,其他列会自动均分剩下的宽度。 以下实例将列宽度为 25%、50%、25%:</p>
  <div class="row">
    <div class="col bg-success">.col</div>
    <div class="col-6 bg-warning">.col-6</div>
    <div class="col bg-success">.col</div>
  </div>
</div>

2.6 平板和桌面端

以下实例演示了在桌面设备的显示器上两个列的宽度各占 50%,如果在平板端则左边的宽度为 25%,右边的宽度为 75%, 在移动手机等小型设备上会堆叠显示。

<div class="container-fluid mt-3">
  <h1>平板与桌面的网格布局</h1>
  <p>以下实例演示了在桌面设备的显示器上两个列的宽度各占 50%,如果在平板端则左边的宽度为 25%,右边的宽度为 75%, 在移动手机等小型设备上会堆叠显示。
</p>
  <p>重置浏览器窗口大小,查看效果。</p>
  <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>

2.7 嵌套列

以下实例创建两列布局,其中一列内嵌套着另外两列:

<div class="container-fluid">
  <div class="row">
    <div class="col-8 bg-warning p-4">
      .col-8
      <div class="row">
        <div class="col-6 bg-light p-2">.col-6</div>
        <div class="col-6 bg-secondary p-2">.col-6</div>
      </div>
    </div>
    <div class="col-4 bg-success p-4">.col-4</div>
  </div>
</div>

2.8 偏移列

偏移列通过 offset-*-* 类来设置。第一个星号( * )可以是 sm、md、lg、xl,表示屏幕设备类型,第二个星号( * )可以是 111 的数字。

为了在大屏幕显示器上使用偏移,请使用 .offset-md-* 类。这些类会把一个列的左外边距(margin)增加 * 列,其中 * 范围是从 111

例如:.offset-md-4 是把.col-md-4 往右移了四列格。

<div class="container-fluid mt-3">
  <h1>偏移列</h1>
  <p>.offset-md-4 是把.col-md-4 往右移了四列格。</p>
  <div class="row">
    <div class="col-md-4 p-3 bg-primary text-white">.col-md-4</div>
    <div class="col-md-4 offset-md-4 bg-dark text-white">.col-md-4 .offset-md-4</div>
  </div>
  <div class="row">
    <div class="col-md-3 offset-md-3 bg-primary text-white">.col-md-3 .offset-md-3</div>
    <div class="col-md-3 offset-md-3 bg-dark text-white">.col-md-3 .offset-md-3</div>
  </div>
  <div class="row">
    <div class="col-md-6 offset-md-3 bg-primary text-white">.col-md-6 .offset-md-3</div>
  </div>
</div>


相关文章
|
2月前
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
122 3
|
3月前
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!
|
4月前
|
前端开发
Bootstrap 5 网格的基本结构
Bootstrap 5 网格系统的基本结构包括创建行(`&lt;div class=&quot;row&quot;&gt;`)和列(`&lt;div class=&quot;col-*-*&quot;&gt;`)。第一个星号表示响应的设备大小(sm, md, lg, xl),第二个星号表示列宽,同一行的列宽总和为 12。不指定数字时,Bootstrap 会自动分配等宽的列。例如,两个 `col` 列各占 50%,三个 `col` 列各占 33.33%。
|
4月前
|
前端开发
Bootstrap 5 网格的基本结构 创建相等宽度的列,Bootstrap 自动布局
Bootstrap 自动布局允许创建响应式等宽或不等宽的列。例如,使用 `.col` 类可创建等宽列;使用 `.col-sm-*` 类可在不同屏幕尺寸上自定义列宽,如 `.col-sm-3` 表示在小屏幕及以上设备上占 1/4 宽度。未指定宽度的列将自动均分剩余空间。
|
4月前
|
前端开发
Bootstrap 5 网格的基本结构
Bootstrap 5 网格系统基于 12 列布局,通过 `.row` 和 `.col-*-*` 类实现响应式设计。`.col-*-*` 中的第一个星号表示设备类型(sm, md, lg, xl),第二个星号表示列宽。不指定数字时,Bootstrap 自动均分列宽。
|
4月前
|
弹性计算 Kubernetes 网络协议
阿里云弹性网络接口技术的容器网络基础教程
阿里云弹性网络接口技术的容器网络基础教程
阿里云弹性网络接口技术的容器网络基础教程
|
4月前
|
运维 JavaScript Linux
容器内的Nodejs应用如何获取宿主机的基础信息-系统、内存、cpu、启动时间,以及一个df -h的坑
本文介绍了如何在Docker容器内的Node.js应用中获取宿主机的基础信息,包括系统信息、内存使用情况、磁盘空间和启动时间等。核心思路是将宿主机的根目录挂载到容器,但需注意权限和安全问题。文章还提到了使用`df -P`替代`df -h`以获得一致性输出,避免解析错误。
122 0
|
5月前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
284 3
|
5月前
|
Cloud Native 持续交付 Docker
云原生技术实践:Docker容器化部署教程
【9月更文挑战第4天】本文将引导你了解如何利用Docker这一云原生技术的核心工具,实现应用的容器化部署。文章不仅提供了详细的步骤和代码示例,还深入探讨了云原生技术背后的哲学,帮助你理解为何容器化在现代软件开发中变得如此重要,并指导你如何在实际操作中运用这些知识。
|
6月前
|
缓存 Kubernetes 数据中心
在Docker中,如何控制容器占用系统资源(CPU,内存)的份额?
在Docker中,如何控制容器占用系统资源(CPU,内存)的份额?