☰
Bootstrap Icons 柱状图图标(bar-chart)完全指南:五种变体、字体码点与实战用法
2026/9/28 20:58:16 网站建设 项目流程
  • 前端

【免费下载链接】icons

Official open source SVG icon library for Bootstrap.

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

本篇指南以 Bootstrap Icons 开源仓库中 bar-chart 图标文档 为核心,深入讲解柱状图(Bar chart)系列图标的完整使用方案:从五种 SVG 变体的源码结构、图标字体中的 Unicode 码点,到 CSS 图标字体、内嵌 SVG、SVG Sprite 等多种引入方式,帮助你准确掌握「数据可视化」类图标的选型与落地实现。

一、图标概览:一个柱状图,五种形态

bar-chart图标在 Bootstrap Icons 中被归类于Data(数据)分类,标签为chart / graph / analytics,是仪表盘、数据报表和统计页面中最常用的图形元素之一。

围绕「柱状图」这一语义,仓库提供了五个密切相关的 SVG 变体,分别对应不同视觉强度与场景:

SVG 文件图标名称码点(十进制)视觉特征
icons/bar-chart.svgbar-chart61822经典空心柱状图,线条勾勒轮廓
icons/bar-chart-fill.svgbar-chart-fill61818实心填充版,视觉重量更重
icons/bar-chart-line.svgbar-chart-line61820折线风格柱图,带趋势感
icons/bar-chart-line-fill.svgbar-chart-line-fill61819折线风格的实心填充版
icons/bar-chart-steps.svgbar-chart-steps61821阶梯式柱图,适合阶段/进度语义

从源码结构看,命名遵循 Bootstrap Icons 的统一约定:-fill后缀表示实心变体,-line表示线条/折线变体,二者可叠加组合(如bar-chart-line-fill),这一规律也适用于仓库中其他图标系列。

二、SVG 源码分析:16×16 网格与 currentColor

Bootstrap Icons 的所有图标均基于16×16 网格设计。以 icons/bar-chart.svg 为例,完整源码如下:

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-bar-chart" viewBox="0 0 16 16"> <path d="M4 11H2v3h2zm5-4H7v7h2zm5-5v12h-2V2zm-2-1a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1zM6 7a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1zm-5 4a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1z"/> </svg>

值得注意的工程细节:

  • fill="currentColor":这是整套图标库的关键设计。SVG 不写死颜色,而是继承使用处元素的color值,从而可以用 CSS 一行代码切换图标颜色。
  • class="bi bi-bar-chart":类名与文件名严格对应,既是图标字体的选择器前缀(.bi-bar-chart),也便于 CSS 精确覆写。
  • viewBox="0 0 16 16":统一的坐标系让所有图标在相同字号下视觉尺寸一致,可直接嵌入文本流。
  • 每个path的d数据都已用 SVGO 做过优化(见 package.json 中的svgo依赖与 svgo.config.mjs 配置),fill为填充、无描边,符合仓库 README.md 中「flattened SVGs with fill (no stroke)」的规范。

对比实心版 icons/bar-chart-fill.svg,其path将三根柱子全部闭合填充,而空心版保留了内部镂空轮廓;icons/bar-chart-line.svg 则在柱状基础上加入底部水平基线,视觉上更接近「柱状图 + 趋势线」的混合语义。

三、安装与引入:npm、Composer 与文档站本地开发

根据 README.md,Bootstrap Icons 以 npm 包形式发布,也可以走 Composer/Packagist 渠道:

# npm(推荐,包内已含处理好的 SVG 与字体文件) npm i bootstrap-icons # Composer / Packagist composer require twbs/bootstrap-icons

安装包内实际包含的文件范围由 package.json 的files字段定义:icons/*.svg(全部独立 SVG)、bootstrap-icons.svg(Sprite 合图)以及font目录(字体文件与 CSS)。也就是说,安装后你至少拥有三条使用路径:

  1. 复制粘贴内嵌 SVG:将上文第二节的<svg>直接粘进 HTML,适合需要微调图形细节的场景;
  2. <img>引用:<img src="icons/bar-chart.svg" alt="Bar chart">,适合纯展示;
  3. SVG Sprite / 图标字体:批量使用多个图标时的最佳选择,详见下文第四、五节。

若要在本仓库内搭建文档站进行开发调试,README 给出了 Hugo 工作流:

npm i npm start # 等价于 npm run docs-serve,启动 Hugo 本地服务器

随后访问http://localhost:4000。其中npm run icons用于重新处理 SVG 并生成字体与 Sprite,npm run pages则为每个图标生成独立展示页。

四、图标字体:Unicode 码点、CSS 与五种变体对应关系

Bootstrap Icons 将全部图标编译进自定义字体,码点表维护在 font/bootstrap-icons.json 中。搜索bar-chart可以拿到这五个图标的精确码点:

"bar-chart-fill": 61818, "bar-chart-line-fill": 61819, "bar-chart-line": 61820, "bar-chart-steps": 61821, "bar-chart": 61822

这些十进制数值对应到各环境的写法如下(以bar-chart为例):

环境写法值
UnicodeU+U+F17E
CSScontent\f17e
JavaScript字符串转义\uf17e
HTML实体引用&#xF17E;

(其余变体依次为:bar-chart-fill→U+F17A、bar-chart-line-fill→U+F17B、bar-chart-line→U+F17C、bar-chart-steps→U+F17D。)

实际生成的 CSS 位于 font/bootstrap-icons.css,对应规则为:

.bi-bar-chart-fill::before { content: "\f17a"; } .bi-bar-chart-line-fill::before { content: "\f17b"; } .bi-bar-chart-line::before { content: "\f17c"; } .bi-bar-chart-steps::before { content: "\f17d"; } .bi-bar-chart::before { content: "\f17e"; }

压缩版 font/bootstrap-icons.min.css 与之等价,并额外声明了@font-face,同时指向 font/fonts/bootstrap-icons.woff2 与.woff两种字体源。引入 CSS 后即可直接使用:

<link rel="stylesheet" href="font/bootstrap-icons.min.css"> <i class="bi bi-bar-chart"></i> <!-- 空心柱状图 --> <i class="bi bi-bar-chart-fill"></i> <!-- 实心柱状图 --> <i class="bi bi-bar-chart-line"></i> <!-- 折线柱状图 --> <i class="bi bi-bar-chart-steps"></i> <!-- 阶梯柱状图 -->

图标字体的全局基线样式(display:inline-block、font-family:bootstrap-icons!important、vertical-align:-.125em等)同样定义在 font/bootstrap-icons.css 中。若使用 Sass 构建,可改引 font/bootstrap-icons.scss。

五、TypeScript 类型:图标名的强类型约束

对于 TypeScript 项目,font/bootstrap-icons.ts 导出了一个由全部图标名组成的联合类型,其中柱状图系列对应:

| "bar-chart-fill" | "bar-chart-line-fill" | "bar-chart-line" | "bar-chart-steps" | "bar-chart"

这意味着在使用图标名称作为组件 props 或工具函数参数时,编译器可以直接校验字符串是否为合法图标名,避免拼写错误导致的「空图标」问题。该类型文件也已在 package.json 的types字段中注册,npm安装后无需额外配置即可获得类型提示。

六、颜色与尺寸:基于 currentColor 的灵活定制

由于 SVG 源文件与字体中的字形都继承currentColor,控制柱状图图标的外观只需控制其所在元素的 CSS 属性:

<!-- 尺寸:font-size 同时缩放图标字体与内嵌 SVG --> <span style="font-size: 2rem; color: #198754;"> <i class="bi bi-bar-chart-fill"></i> 销售趋势 </span> <!-- 直接内嵌 SVG 时同理 --> <svg class="bi bi-bar-chart" width="32" height="32" fill="currentColor" viewBox="0 0 16 16" aria-hidden="true"> <use xlink:href="bootstrap-icons.svg#bar-chart"></use> </svg>

使用 Sprite 合图 bootstrap-icons.svg 时,通过<use>引用符号 ID(即图标文件名)即可,适合在一个页面复用大量图标的场景;合图本身由仓库构建脚本依据 svg-sprite.json 配置生成。

七、文档站如何渲染该图标:从 front matter 到页面

bar-chart的文档文件 docs/content/icons/bar-chart.md 采用 Hugo 的 front matter 结构,声明了标题、分类与标签:

--- title: Bar chart categories: - Data tags: - chart - graph - analytics ---

渲染逻辑由 docs/layouts/icons/single.html 承担,其核心流程是:

  1. 根据当前页面的文件名bar-chart拼接出/icons/bar-chart.svg路径并直接readFile读取 SVG 内容(第 36–38 行);
  2. 将 SVG 原样嵌入预览区(font-size: 10em的大图预览)、标题示例、行内文本、链接、按钮与输入框示例(第 40–106 行),完整演示了「图标 + Bootstrap 组件」的组合用法;
  3. 右侧面板给出Download SVG下载入口、图标字体 snippet(<i class="bi bi-bar-chart"></i>)、码点信息(读取 font/bootstrap-icons.json 换算十六进制)以及可直接复制的内嵌 SVG HTML(第 108–148 行)。

因此,每个图标 md 文件虽短,却是整个图标生态(SVG 源、字体、Sprite、文档站)的「索引节点」——修改标题、分类或标签即可改变该图标在文档站的展示归类。

八、实践建议:数据看板中如何选型

结合五种变体的语义差异,给出如下的选型建议:

  • bar-chart(空心):常规数据展示,避免抢走数字本身的分量,适合正文与表格混排;
  • bar-chart-fill(实心):导航栏、按钮、卡片标题等需要强调的地方,视觉权重更高;
  • bar-chart-line/bar-chart-line-fill:强调「趋势」的指标卡、折线对比场景;
  • bar-chart-steps(阶梯):阶段流程、漏斗、目标拆解类可视化。

所有变体在字体模式下共用同一font-size度量体系,混用时无需额外对齐;在 SVG 模式下则共享 16×16 viewBox,缩放行为一致,可放心在同一个图表组件中按需切换。


参考链接速查:图标源文件 bar-chart.svg · bar-chart-fill.svg · bar-chart-line.svg · bar-chart-line-fill.svg · bar-chart-steps.svg;字体与码点 bootstrap-icons.json · bootstrap-icons.css · bootstrap-icons.scss · bootstrap-icons.ts;渲染模板 docs/layouts/icons/single.html;安装与构建说明见 README.md 与 package.json。

  • 前端

【免费下载链接】icons

Official open source SVG icon library for Bootstrap.

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

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

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

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

立即咨询