副队长BootStrap5探究(6)--画像 Figure (图文组合组件)

点此查看 所有教程、项目、源码导航

文章目录

  • [1. 开篇介绍与环境引入](#1. 开篇介绍与环境引入)
    • [1.1 本章节学习背景](#1.1 本章节学习背景)
    • [1.2 引入 Bootstrap 5](#1.2 引入 Bootstrap 5)
  • [2. 画像 Figure 使用方法](#2. 画像 Figure 使用方法)
    • [2.1 基础 Figure](#2.1 基础 Figure)
    • [2.2 图注右对齐](#2.2 图注右对齐)
    • [2.3 和缩略图组合](#2.3 和缩略图组合)
  • [3. 底层实现关键点解析](#3. 底层实现关键点解析)
    • [3.1 figure 容器](#3.1 figure 容器)
    • [3.2 figure-img](#3.2 figure-img)
    • [3.3 figure-caption](#3.3 figure-caption)
    • [3.4 text-end](#3.4 text-end)
  • [4. 小结](#4. 小结)

1. 开篇介绍与环境引入

1.1 本章节学习背景

上一节我们学习了图片组件,掌握了响应式图片、圆角、缩略图等工具类。这一节我们学习画像 Figure。

在文章、图库当中,经常出现"一张图片搭配一段说明文字"的组合。原生开发时,我们需要自己布局,控制图文对齐、调整文字样式。HTML 本身提供了 figure、figcaption 语义标签,Bootstrap 在这一组标签之上封装了配套样式,快速实现带图注的图文模块,同时保留良好的语义。

按照本系列固定的学习思路,我们不会仅仅记住类名、复制代码。先学会 Figure 的使用方式,之后通过精简的 CSS 复刻,看懂它背后依靠哪些 CSS 特性实现,反过来巩固我们的 CSS 基础,完善前端技术体系。

画像属于纯 CSS 组件,不需要 JavaScript。

1.2 引入 Bootstrap 5

这里着重强调:引入 Bootstrap,本质就是引用别人提前写好的 CSS 类库以及配套的 JS 函数库,不需要把完整源码复制到我们自己的页面当中,通过外链引用的方式加载。想要使用 figure 组件,只需要引入 Bootstrap 的 CSS 文件即可。推荐使用 CDN 的方式,不需要下载本地文件。

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <title></title>
    <!-- Bootstrap 5 CSS -->
    <link rel="stylesheet" href="[https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.3.8/css/bootstrap.min.css](https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.3.8/css/bootstrap.min.css)">
</head>

<body>
    <!-- Bootstrap JS + Popper,用于部分交互 -->
    <script src="[https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.3.8/js/bootstrap.bundle.min.js](https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.3.8/js/bootstrap.bundle.min.js)"></script>
</body>

</html>

2. 画像 Figure 使用方法

2.1 基础 Figure

figure 作为外层容器,内部放置图片,使用 figcaption 承载图注文字,给 figure 添加 figure 类。

html 复制代码
<figure class="figure">
  <img src="https://picsum.photos/id/1015/600/400" class="figure-img img-fluid rounded" alt="风景">
  <figcaption class="figure-caption">这是一张风景配图,图片下方的说明文字。</figcaption>
</figure>

figure-img 专门用于内部图片,figure-caption 是图注专用类。效果:

2.2 图注右对齐

如果希望说明文字靠右,给 figure-caption 添加 text-end。

html 复制代码
<figure class="figure">
  <img src="https://picsum.photos/id/1025/600/400" class="figure-img img-fluid rounded" alt="人像">
  <figcaption class="figure-caption text-end">图注文字放在右侧。</figcaption>
</figure>

效果:

2.3 和缩略图组合

可以把前面学到的 img-thumbnail 和 figure 一起使用,制作画廊里带说明的缩略卡片。

html 复制代码
<figure class="figure">
  <img src="https://picsum.photos/id/1035/300/300" class="figure-img img-thumbnail" alt="缩略图">
  <figcaption class="figure-caption text-center">画廊缩略项</figcaption>
</figure>

效果:

3. 底层实现关键点解析

下面是精简复刻版本,去掉大量浏览器兼容代码,只保留核心逻辑。

替代CSS代码如下,使用上述的HTML代码片,效果是一样的。

3.1 figure 容器

css 复制代码
.figure {
  /* 使用 inline-block,实现盒子收缩包裹内容,宽度跟随图片 */
  display: inline-block;
  /* 设置外边距,和其他元素隔开距离 */
  margin-bottom: 1rem;
}

3.2 figure-img

css 复制代码
.figure-img {
  /* 设置为块,决定这一组图文的内容宽度 */
  display: block;
  /* 去掉图片下方默认的微小空隙 */
  margin-bottom: 0.5rem;
  /* 继承响应式特性 */
  line-height: 1;
}

3.3 figure-caption

css 复制代码
.figure-caption {
  /* 使用浅灰色,弱化图注,突出图片主体 */
  color: #6c757d;
  /* 设置字号比正文略小 */
  font-size: 0.875em;
}

3.4 text-end

css 复制代码
.text-end {
  /* 在自身内容盒子内部,文字向右对齐 */
  text-align: right;
}

4. 小结

Figure 组件的核心价值不在于复杂样式,而在于把语义标签和常用样式封装在一起。

  • figure、figcaption 是原生语义标签,搜索引擎、读屏软件可以识别这是图片与对应的说明;
  • figure-img 主要用来消除图片底部默认间隙;
  • figure-caption 默认使用灰色小字,区分正文内容;
  • 可以自由搭配之前学过的圆角、响应式、对齐工具类,灵活组合;
  • 如果不需要语义,单纯图片加文字,直接使用普通容器也可以,figure 更适合文章配图场景。
相关推荐
Flynn Liang2 天前
AiServices 源码级拆解:一个接口如何变成 RAG Agent
java·langchain·源码分析·rag·langchain4j·aiservices
程序员大阳2 天前
副队长BootStrap5教程(1)--序言
教程·背景·bootstrap5·序言
JWASX4 天前
【Go】map 源码解析 - group
后端·golang·map·源码分析
利威尔xu9 天前
万字详解|Go 进阶(五):sync 包底层:Mutex 自旋 4 次转饥饿,WaitGroup 漏 1 个 Done 挂起 3000 goroutine
后端·golang·并发编程·源码分析·sync
程序员大阳1 个月前
副队长CSS教程(29)–CSS Grid 实战:实现通用图文混排布局
前端·css·grid·图文混排
叶子Talk2 个月前
Figure机器人零样本做家务,Claude已主导Anthropic四分之一研发
机器人·figure·anthropic
letisgo52 个月前
JAVA 高级进阶05篇《Spring容器机制:Bean生命周期与三级缓存全解》
java·spring·面试·ioc·源码分析
JMchen1232 个月前
【Android 性能优化实战 60 讲】06 GPU 呈现模式与卡顿视觉验证:拆解柱状图分层,秒辨渲染慢与等待慢
android·性能优化·实战·源码分析·渲染优化·gpu呈现模式·卡顿优化
JMchen1232 个月前
【Android 性能优化实战 60 讲】04 Memory Profiler 高阶玩法:深剖堆内存原理,实战定位 Kotlin 闭包隐式泄漏
android·性能优化·kotlin·实战·源码分析·内存泄漏·memory profiler