☰
Bootstrap Icons 的 caret-down-square 图标:SVG 结构、字体码点与完整使用指南
2026/9/28 7:36:57 网站建设 项目流程
  • 前端

【免费下载链接】icons

Official open source SVG icon library for Bootstrap.

项目地址:https://gitcode.com/gh_mirrors/ic/icons
点击查看免费下载

caret-down-square(向下插入符方块)是 Bootstrap Icons 图标库中 Carets 分类下的一个基础方向指示图标,官方常与 -fill 实心版本搭配使用,用于折叠面板、下拉菜单、手风琴等场景的展开指示。本文以该图标的文档页 docs/content/icons/caret-down-square.md 为骨架,结合仓库内的 SVG 源码、字体映射表与 Hugo 渲染模板,完整讲解它的图形结构、安装方式、四种引用方法以及字体码点换算,让读者拿到即可在项目中落地使用。

图标概览与文档元数据

该图标在文档体系中对应两个页面:普通轮廓版 caret-down-square.md 与实心填充版 caret-down-square-fill.md。两个文档页的 frontmatter 定义了完全一致的分类与标签信息:

title: Caret down square categories: - Carets tags: - caret - arrow - triangle
  • 分类(categories):Carets,即"插入符"图标家族,与caret-down、caret-up-square、caret-left-fill等同属一组,语义上都表示方向性指示。
  • 标签(tags):caret、arrow、triangle三个关键词共同描述图标形态——本质是一个三角形箭头(triangle/arrow),以插入符(caret)风格呈现并放入方形底框中。

在 docs/layouts/icons/single.html 中可以看到,这类 Markdown 页面是图标详情页的渲染源:模板读取 frontmatter 中的title作为页面标题,并把tags、categories直接渲染为详情页的元信息列表。也就是说,这份"简短"的文档并非孤立的占位符,而是驱动整张图标详情页(大图预览、示例区、下载按钮、码点表格等)的数据入口。

SVG 源码解析:轮廓版与实心版的结构差异

轮廓版 caret-down-square.svg

文件 icons/caret-down-square.svg 的完整内容如下:

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-caret-down-square" viewBox="0 0 16 16"> <path d="M3.626 6.832A.5.5 0 0 1 4 6h8a.5.5 0 0 1 .374.832l-4 4.5a.5.5 0 0 1-.748 0z"/> <path d="M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm15 0a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1z"/> </svg>

它由两个path组成:

  1. 箭头三角(第一个 path):起点M3.626 6.832,向右上方绘制到A.5.5的圆弧约束,勾勒出"顶部宽、底部收窄"的向下插入符。注意其中l-4 4.5与-.748的配合使三角形底边对称,形成指向正下方的箭头。
  2. 外框(第二个 path):M0 2a2 2 0 0 1 2-2h12...用标准的 2px 圆角矩形路径绘制 16×16 的外框,内层再画一圈细线边框(a1 1圆弧),得到"双层描边"的描边方块视觉效果。

关键属性说明:

  • viewBox="0 0 16 16":图标基于 16×16 的设计网格绘制(与整个 Bootstrap Icons 库保持一致,见 README.md 中"designed on a 16x16px grid"的说明)。
  • fill="currentColor":填充色跟随文字颜色,这是图标能随text-*工具类变色的关键。
  • class="bi bi-caret-down-square":SVG 内嵌了字体类名,便于与图标字体方式交叉识别。

实心版 caret-down-square-fill.svg

文件 icons/caret-down-square-fill.svg 则把所有图形合并到单个 path:

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-caret-down-square-fill" viewBox="0 0 16 16"> <path d="M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm4 4a.5.5 0 0 0-.374.832l4 4.5a.5.5 0 0 0 .748 0l4-4.5A.5.5 0 0 0 12 6z"/> </svg>

对比可见:fill 版的方框为实心填充(z闭合后直接铺满),白色箭头三角通过M4 4起笔、a.5.5圆弧约束向内"挖空"形成。这种单 path 结构在字体化时更利于字形轮廓统一,也是官方推荐"实心版与轮廓版配对使用"的底层原因。

安装与引入:npm / Composer 两种方式

根据 README.md 的说明,Bootstrap Icons 发布到 npm 与 Packagist,SVG 源文件均经过处理,具体渲染由使用方决定。

npm(推荐):

npm i bootstrap-icons

Composer(PHP 项目):

composer require twbs/bootstrap-icons

安装完成后,node_modules/bootstrap-icons下即包含icons/(单个 SVG)、font/(图标字体与 CSS)、bootstrap-icons.svg(SVG sprite)等产物。

四种标准使用方式

文档体系(由 README.md 的 Usage 一节定义)支持四种引入路径,均适用于 caret-down-square:

1. 内嵌 SVG(Copy HTML)

直接把图标详情页"Copy HTML"区块给出的 SVG 源码粘贴进页面,如:

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-caret-down-square" viewBox="0 0 16 16"> <path d="M3.626 6.832A.5.5 0 0 1 4 6h8a.5.5 0 0 1 .374.832l-4 4.5a.5.5 0 0 1-.748 0z"/> <path d="M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm15 0a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1z"/> </svg>

内嵌方式可自由控制width/height,并直接受益于currentColor的继承特性。

2.<img>标签引用

<img src="icons/caret-down-square.svg" alt="Caret down square" width="32" height="32">

注意:通过<img>引入时无法用 CSS 修改填充色(SVG 以独立文档加载,不继承父元素颜色),需要换色应改用内嵌或字体方式。

3. SVG sprite(雪碧图)

引用根目录下的 bootstrap-icons.svg 中的符号:

<svg class="bi" width="32" height="32" fill="currentColor"> <use xlink:href="bootstrap-icons.svg#caret-down-square"/> </svg>

sprite 方式与内嵌 SVG 一样支持currentColor换色,且多个图标只产生一次网络请求。

4. CSS 图标字体(Icon font)

这是详情页模板主推的方式。引入 font/bootstrap-icons.css(或 SCSS 版 font/bootstrap-icons.scss)后:

<i class="bi bi-caret-down-square"></i> <i class="bi bi-caret-down-square-fill"></i>

CSS 内部通过::before伪元素注入字形:

.bi-caret-down-square-fill::before { content: "\f22a"; } .bi-caret-down-square::before { content: "\f22b"; }

字体方式便于用font-size控制尺寸、用color控制颜色,是 Bootstrap 组件生态中最常见的用法。

字体码点:从 JSON 映射到 CSS / JS / HTML

每个图标在 font/bootstrap-icons.json 中都有唯一的十进制码点:

"caret-down-square-fill": 61994, "caret-down-square": 61995

十进制 61994 与 61995 换算为十六进制分别是0xF22A与0xF22B。详情页模板 docs/layouts/icons/single.html 会读取该 JSON,把码点渲染成四种形态:

形态写法示例(轮廓版)
UnicodeU+XXXXU+F22B
CSS\XXXX\f22b
JS\uXXXX\uf22b
HTML&#xXXXX;&#xf22b;

这四种写法在自定义字体场景(如把bi-caret-down-square字形嵌入手写@font-face的私有字体)中可直接复用,与 CSS 中的content: "\f22b"完全对应。

图标详情页如何生成:Hugo 模板中的渲染链路

caret-down-square.md 本身只有 8 行 frontmatter,但它在构建时被 docs/layouts/icons/single.html 渲染为完整的图标详情页。模板中的关键逻辑:

  • 大图预览:$localSvgPath := printf "/icons/%s.svg" .File.TranslationBaseName按页面文件名拼出/icons/caret-down-square.svg,用readFile读入并直接输出 SVG,形成 10em 尺寸的预览区;
  • 示例区:同一份 SVG 被渲染到 Heading、内联文本、链接、按钮、输入组等多种 Bootstrap 组件场景,验证图标在不同字号、不同color下的表现;
  • 下载:<a href="{{ $svgPath }}" download>提供单个 SVG 的直接下载;
  • 码点表:resources.Get "font/bootstrap-icons.json"反序列化后按页面名索引出码点并转大写十六进制输出。

也就是说,本文档页在站内等价于 caret-down-square 图标的"官方使用说明书",本文已将其中的信息完整继承并落到仓库实现细节上。

与 Carets 家族其他图标的搭配

同分类下(docs/content/icons 中以caret-前缀命名的文档)还包括caret-down、caret-up、caret-left、caret-right及各自的-square、-fill变体。caret-down-square与caret-up-square常成对用于折叠面板的展开/收起指示,与caret-down-fill相比多了一层方框语义,视觉上更接近"按钮"而非纯箭头。选择时可按以下原则:

  • 纯箭头指示 →caret-down/caret-down-fill;
  • 需要方框承载的方向按钮 →caret-down-square/caret-down-square-fill;
  • 需要实心强调 → 使用-fill版本。

小结

caret-down-square 是 Bootstrap Icons 中结构清晰、用途明确的一个方向指示图标。本文从它的文档 frontmatter 出发,借助 icons/caret-down-square.svg、font/bootstrap-icons.json、font/bootstrap-icons.css 与 docs/layouts/icons/single.html 等仓库文件,完整还原了它的路径结构、码点体系与渲染链路。实际项目中,内嵌 SVG 与图标字体是最灵活、最常用的两种接入方式,而码点表则是在自定义字体或程序化引用时的底层依据。

  • 前端

【免费下载链接】icons

Official open source SVG icon library for Bootstrap.

项目地址:https://gitcode.com/gh_mirrors/ic/icons
点击查看免费下载
上一篇:PynamoDB本地开发环境搭建:免费使用DynamoDB Local
下一篇:3大核心优势:KlakSpout如何解决Unity视频流共享难题

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询