如何使用 Tailwind 修改 svg 图标颜色

2024-01-12

我正在使用 TailwindCSS 并且想要更改 svg 的颜色。没有 Tailwind 这个问题之前已经被问过here https://stackoverflow.com/questions/22252472/how-to-change-the-color-of-an-svg-element,2020 年this https://stackoverflow.com/a/53336754/7764329应该是一个很好的答案,但 Tailwind 不支持这些过滤器。文档中有一个指南如何使用 svg 图标 https://tailwindcss.com/course/working-with-svg-icons但本教程不需要文件,只需纯文本路径。

我下载了 svg 文件并将 svg 的路径分配给图像的src标签。下面的示例显示了我的问题,我希望图标的背景为红色,图标的颜色为蓝色。不幸的是,我无法更改图标颜色。

<link href="https://unpkg.com/[email protected] /cdn-cgi/l/email-protection/dist/tailwind.min.css" rel="stylesheet" />

<!-- taken from here https://www.iconfinder.com/icons/765208/media_twitter_social_icon -->
<img class="fill-current bg-red-500 text-blue-500" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjxzdmcgaGVpZ2h0PSI2MHB4IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCA2MCA2MCIgd2lkdGg9IjYwcHgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj48dGl0bGUvPjxkZXNjLz48ZGVmcy8+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBpZD0iYmxhY2siIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIj48ZyBpZD0ic2xpY2UiLz48ZyBmaWxsPSIjMDAwMDAwIiBpZD0idHdpdHRlciIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTMuMDAwMDAwLCAxNi4wMDAwMDApIj48cGF0aCBkPSJNMjguMDUyMTM4NSwyLjQzNjY5NDI3IEMyNi44NDMxODQ2LDEuMDYyMjAxNSAyNS4xMjA1Mzg1LDAuMTg2NDY0MTA1IDIzLjIxNDA2MTUsMC4xNTQ3MzEwMjggQzE5LjU1MzYsMC4wOTM4MDMwOTA1IDE2LjU4NTY1MzgsMy4xODY5MjMzOSAxNi41ODU2NTM4LDcuMDYzMTE2MDQgQzE2LjU4NTY1MzgsNy42MTMyNDExOCAxNi42NDQyOTIzLDguMTQ5NjkzMzcgMTYuNzU3MzY5Miw4LjY2NDY3MzE2IEMxMS4yNDg1ODQ2LDguMzA3MzUyNTcgNi4zNjQ0NjkyMyw1LjQzODc3MDU5IDMuMDk1NDE1MzgsMS4xMTQ3MjE4IEMyLjUyNDg2MTU0LDIuMTUwODYxNyAyLjE5NzkwNzY5LDMuMzYxODgyNzEgMi4xOTc5MDc2OSw0LjY1OTE1MDM3IEMyLjE5NzkwNzY5LDcuMTE0OTg4NDQgMy4zNjgwOTIzMSw5LjI5NDUyNzI0IDUuMTQ2NjMwNzcsMTAuNTgxNDE3NCBDNC4wNjAxMjMwOCwxMC41MzM0NDk5IDMuMDM4MDY5MjMsMTAuMjA0NTM3OCAyLjE0NDQzODQ2LDkuNjY0OTUyMDMgQzIuMTQzNzkyMzEsOS42OTQ0NDQ5NyAyLjE0Mzc5MjMxLDkuNzIzOTQ0OTQgMi4xNDM3OTIzMSw5Ljc1Mzk2MjQ1IEMyLjE0Mzc5MjMxLDEzLjE4MzU0OTcgNC40Mjg1OTIzMSwxNi4wNjA3MDc2IDcuNDYwODMwNzcsMTYuNzMwOTM4MyBDNi45MDQ2NTM4NSwxNi44ODg1MzggNi4zMTkwNzY5MiwxNi45NzEwMTYzIDUuNzE0NiwxNi45NjcwMDggQzUuMjg3NDkyMzEsMTYuOTY0MTc1OCA0Ljg3MjE3NjkyLDE2LjkxNjgxMTggNC40Njc1MjMwOCwxNi44MzE3NjggQzUuMzEwOTE1MzgsMTkuNjQ0Mzc3NyA3Ljc1ODcwNzY5LDIxLjY5Njc2NjMgMTAuNjU5MjkyMywyMS43NjQ2MjggQzguMzkwODA3NjksMjMuNjQ3Njk2MyA1LjUzMjg2OTIzLDI0Ljc2OTE5MzMgMi40MjcyOTIzMSwyNC43NjI3ODcgQzEuODkyMjc2OTIsMjQuNzYxNjgzMyAxLjM2NDY5MjMxLDI0LjcyNzExMiAwLjg0NjE1Mzg0NiwyNC42NjA1OTk2IEMzLjc3OTUzMDc3LDI2LjY3MzMxMzkgNy4yNjM1OTIzMSwyNy44NDUxNzExIDExLjAwNjc2MTUsMjcuODQ2MTUzMSBDMjMuMTk4NTUzOCwyNy44NDkzNTE4IDI5Ljg2NTczMDgsMTcuMjM5NTEwOSAyOS44NjU3MzA4LDguMDM2NzY4NjggQzI5Ljg2NTczMDgsNy43MzQ4MzYzMiAyOS44NTkxMDc3LDcuNDM0NTE5MTIgMjkuODQ2NTA3Nyw3LjEzNTY1MTk1IEMzMS4xNDE1NjE1LDYuMTcwNjY2NDUgMzIuMjY1MjIzMSw0Ljk2MDc4OTE1IDMzLjE1Mzg0NjIsMy41NzkyMTkwMSBDMzEuOTY1MjQ2Miw0LjExNTAxNjE1IDMwLjY4NzYzODUsNC40NzA4Njg2MyAyOS4zNDcwMzA4LDQuNjIwMTM3ODkgQzMwLjcxNTQyMzEsMy43Nzc5NjUxOCAzMS43NjY1NTM4LDIuNDMwMDk2MDcgMzIuMjYxMzQ2MiwwLjgxMzc1ODQwNCBDMzAuOTgwNTA3NywxLjU5MDQ5MjI5IDI5LjU2MjAzODUsMi4xNDc1MTI4NiAyOC4wNTIxMzg1LDIuNDM2Njk0MjcgWiIvPjwvZz48L2c+PC9zdmc+">

下载 svg 图标并通过链接资源路径直接使用它们时,正确的工作流程是什么?我想要实现的就是这样

<a href="https://twitter.com" target="_blank">
  <img src="pathToSvgInAssetsFolder" />
</a>

并将图标颜色设置为自定义 Tailwind 颜色,例如red-500。因此,每当我想更改图标颜色时,我只需修改颜色类别即可。

有人知道该怎么做吗?


将 SVG 添加到 Tailwind 项目的工作流程应使用内联SVG https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web#How_to_include_SVG_code_inside_your_HTML.

Tailwind CSS 的创建者 Adam Watham 做了一个video https://tailwindcss.com/course/working-with-svg-icons关于在 Tailwind 中使用内联 SVG。在视频中,他展示了一个工作流程,您可以使用该工作流程为 Tailwind 项目准备未优化的 SVG。以下是他没有提到的一个额外步骤的步骤:

  1. 将 SVG 文件拖放到优化器中或将 SVG 标记粘贴到优化器中SVGOMG https://jakearchibald.github.io/svgomg/.
  2. 复制 SVGOMG 提供的标记并粘贴到您的项目中。
  3. 删除所有填充或描边属性,以便 Tailwind 可以修改具有类的属性(视频中未显示)。
  4. 删除任何 XMLNS 属性或 XML 标签,这些是不需要 https://stackoverflow.com/a/18468348/7657915对于内联 SVG。
  5. 添加 Tailwind 类。

如果您使用基于组件的框架,建议您还extract https://tailwindcss.com/docs/extracting-components将图标转换为可在整个应用程序中重复使用的组件。

这种方法的好处:

  • 完全控制 SVG 图标的大小和颜色
  • 由于图标是 HTML 的一部分,因此加载速度更快

这是一个基于您在评论中分享的 Fiddle 的示例。我通过 SVGOMG 运行 SVG 并删除了填充属性,以便 Tailwind 可以控制它。

<link href="https://unpkg.com/[email protected] /cdn-cgi/l/email-protection/dist/tailwind.min.css" rel="stylesheet" />

<svg class="text-teal-500 fill-current h-16 w-16" viewBox="0 0 60 60">
    <path d="M41.05 18.44a6.6 6.6 0 00-4.84-2.29c-3.66-.06-6.62 3.04-6.62 6.91 0 .55.05 1.09.17 1.6a18.68 18.68 0 01-13.66-7.55 7.33 7.33 0 00-.9 3.55 7.3 7.3 0 002.95 5.92 6.34 6.34 0 01-3-.92v.1c0 3.42 2.28 6.3 5.31 6.97a6.24 6.24 0 01-3 .1 6.74 6.74 0 006.2 4.93 12.8 12.8 0 01-9.81 2.9A17.89 17.89 0 0024 43.85c12.19 0 18.86-10.61 18.86-19.81l-.02-.9c1.3-.97 2.42-2.18 3.3-3.56-1.18.54-2.46.9-3.8 1.04a6.8 6.8 0 002.91-3.8c-1.28.77-2.7 1.33-4.2 1.62z"/>
</svg>

<svg class="bg-red-500 text-red-800 fill-current h-16 w-16 rounded-lg" viewBox="0 0 60 60">
    <path d="M25.46 47.31V30h-3.52v-5.74h3.52v-3.47c0-4.68 1.4-8.06 6.53-8.06h6.1v5.73h-4.3c-2.15 0-2.64 1.43-2.64 2.92v2.88h6.62l-.9 5.74h-5.72V47.3h-5.69z"/>
</svg>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Tailwind 修改 svg 图标颜色 的相关文章

  • 我可以在元标记中使用 HTML 字符实体吗?

    我有一个有两种语言的网站 英语和中文 在使用 UTF 8 字符集的英文主页中 我有 例如 这出现在搜索结果中 我想将其更改为 在哪里 20013 25991 是 中文 的 ISO 实体 搜索结果中会显示为 中文 吗 我无法将 中文 直接粘贴
  • 更改元素的顺序

    我正在创建一个浮动宽度的网站 用户在智能手机上使用从全高清分辨率到约 600 像素的屏幕 这似乎是一个不错的主意 这就带来了一个非常有趣的问题 当用户使用比最佳分辨率更小的分辨率时 页面的高度会增加很多 这意味着更改某些元素 例如某些图像
  • 指南针字体输出错误的字体文件路径

    font face font family HelveticaNeueLTStd Lt src url css fonts HelveticaNeueLTStd Lt otf format opentype 这是我的指南针代码的输出 inc
  • 使用 highcharts 时,为什么 Bootstrap 选项卡显示宽度不正确的选项卡窗格 div?

    因此 我正在使用 Twitter 的 Bootstrap 创建一个包含选项卡式内容的页面 但我的起始活动 div 的内容始终与其他选项卡的内容不同 例如 我在不同的选项卡中使用 highcharts js 放入图表 但活动选项卡始终显示正确
  • 为什么我的列表项项目符号与浮动元素重叠

    我有一个 XHTML Strict 页面 我在其中将图像浮动在常规文本段落旁边 一切都很顺利 除非使用列表而不是段落 列表的项目符号与浮动图像重叠 更改列表或列表项的边距没有帮助 边距是从页面左侧开始计算的 但浮动会将列表项推到右侧insi
  • Safari 中的 css3 边框半径动画过渡不起作用

    尝试在 Safari 中对图像的边框半径进行 css3 轻松过渡 它只是有点闪烁进入悬停状态 而不是平滑过渡 任何帮助深表感谢 我的代码如下 CSS all a hover img webkit border radius 50 moz b
  • 如何在有序列表中组合数字和字母?

    如何在 CSS 中用数字和字母递增有序列表 ol nested margin bottom 0 counter reset item ol nested li display block position relative ol neste
  • 如何消除 HTML 内容周围的边距?

    以下 HTML 显示正常 div style width 100px height 100px background red div Hello div div
  • 在表格上使用上下文样式将点边框应用于特定单元格

    我以前有过问了一个问题 https stackoverflow com questions 6326266 issue with applying dotted border to cells in table design在这个问题上 你
  • 使用 css 简单地将对象居中,无需修改

    我想使用 CSS 将对象居中 而不需要任何技巧 这可能吗 如何实现 我已经尝试过了 但是我的 p 标签消失了 centered position fixed top 50 left 50 有多种方法可以使元素居中 但这取决于您的元素是什么以
  • 如何在codeigniter中将上传图片比例限制为16:9?

    这是我用来上传图像的代码 this gt load gt library upload ext pathinfo file name PATHINFO EXTENSION img name now ext imgConfig upload
  • 删除子元素上的 CSS 过滤器

    我的 CSS 代码有问题 正如您所看到的 我在 li 元素上有过滤器 但它覆盖了其他元素 我需要使其他两个元素没有过滤器 有没有可能这样做 main width 300px height 300px background color blu
  • 为 Angular2 中的组件加载多个样式表

    我正在构建一个 angular2 应用程序 当我尝试为同一组件加载多个样式表时 我面临多个问题 这是我正在做的代码 import Component from angular core Component selector my tag t
  • 使用 CSS 使一行 div 高度相同

    我有一排必须具有相同高度的 div 但我无法提前知道该高度可能是多少 内容来自外部源 我最初尝试将 div 放置在封闭的 div 中并将它们向左浮动 然后我将它们的高度设置为 100 但这没有明显的效果 通过将封闭 div 的高度设置为固定
  • 检查 jQuery 1.7 中是否存在基于文本的选择选项

    所以我有以下 HTML 片段
  • 可以设置标题样式吗? (并且使用CSS或js?)[重复]

    这个问题在这里已经有答案了 我想知道是否可以设计一个title a href title This is a title Hello a 样式问题有两个方面 文本格式 编码 我猜这是可能的 所以在问题中这样做 工具提示样式 你能把它弄大一点
  • 在移动设备上滚动

    这个问题更多的是一个建议研究 我确实希望它对其他人有帮助 并且它不会关闭 因为我不太确定在哪里寻求有关此事的建议 在过去的 6 个月里 我一直在进行移动开发 我有机会处理各种设备上的各种情况和错误 最麻烦的是滚动问题 当涉及到在网站的多个区
  • 如何创建适合屏幕宽度的等宽/高框? [复制]

    这个问题在这里已经有答案了 我正在尝试建立一个网站 其中有很多宽度和高度相等的框 例如 我有一个页面 其中并排有两个相同大小的框 简单的解决方案是将宽度和高度设置为 50vw 这在出现滚动条之前效果很好 我已经用谷歌搜索了几个小时 但无法理
  • 在 HTML 下拉列表中有一个滚动条

    我正在寻找一种在 HTML 的下拉列表中添加滚动条的方法 这样如果下拉列表包含的内容超过例如 5 项 将出现滚动条以查看其余项 这是因为我将被迫列出一些大清单 过去几个小时我一直在谷歌上搜索它 但没有运气 它需要适用于 IE8 FF 和 C
  • 使用css bootstrap时如何仅向一列添加右边框?

    我正在尝试使用CSS引导框架 http getbootstrap com css tables在我的项目中 我正在使用带有以下类的表table table bordered table striped 我想删除除第一列之外的所有列的边框 这

随机推荐

  • Apache Beam:为什么全局窗口中聚合值的时间戳是 9223371950454775?

    我们从 Google Dataflow 1 9 迁移到 Apache Beam 0 6 我们注意到应用全局窗口后时间戳的行为发生了变化 在 Google Dataflow 1 9 中 我们将在窗口 组合函数之后在 DoFn 中获得正确的时间
  • XCode:在故事板编辑器中移动 UI 元素

    是否可以锁定或冻结故事板编辑器中的元素 以便在单击和拖动时忽略它们 我的问题是 我在覆盖整个窗口的两个大 UIView 下有几个元素 因此 为了例如移动它们下面的按钮 我首先必须将大视图移开 移动按钮 然后将它们移回来 有没有更好的办法 当
  • 如何在 Mifare Ultralight C(使用 Android)上使用安全性?

    我正在尝试开发一个使用 MF0ICU2 标签 Mifare Ultralight C 功能 特别是读取保护 的 Android 应用程序 该标签与 Mifare DESFire EV1 兼容 在 Android 类中 MifareUltra
  • 在 CSS 中选择相邻的和之前的兄弟姐妹

    比如说我有以下 HTML ul li a href a A a li li a href b B a li li class myclass a href c C a li li a href d D a li li a href e E
  • Java String.split() 有时会给出空白字符串

    我正在制作一个基于文本的骰子滚筒 它接受像 2d10 5 这样的字符串 并返回一个字符串作为掷骰的结果 我的问题出现在分词器中 它将字符串分割成有用的部分 以便我解析成信息 String tokens message split dk 这产
  • SQLAlchemy 验证 SSL 连接

    我想验证 SQLAlchemy 在使用时设置的 SSL 连接create engine连接到 PostgreSQL 数据库 例如 如果我有以下 Python 3 代码 from sqlalchemy import create engine
  • 无法解析方法startActivity()

    我是 Android 开发新手 在更改活动时遇到了一些问题 我正在尝试从方法内更改活动 但收到错误cannot resolve method startActivity并在参数结束时出现错误Cannot resolve constructo
  • VueJS webpack PWA 资产图标 manifest.json

    我配置了我的 PWAmanifest json in vue config js 如下所示 如何配置 PWA 图标以引用内部的图像assets folder module exports pwa manifestOptions name p
  • 从 Pandas 数据框中删除“主导”行(所有值都低于任何其他行的值的行)

    编辑 为了清楚起见更改了示例 df 我有一个数据框 类似于下面给出的数据框 除了真实的数据框有几千行和列 并且值是浮点数 df pd DataFrame 6 5 4 3 8 6 5 4 3 6 1 1 3 9 5 0 1 2 7 4 2 0
  • WSL2 Docker Linux 卷权限问题

    我正在使用 Docker 构建 Jekyll 网站 我正在使用 Windows 10 和 WSL2 以及 Debian 如果我在 Windows 环境中从 Powershell 运行以下命令 docker run rm label jeky
  • 如何使用 SIGSEGV 信号处理程序调试程序

    我正在为应用程序编写一个插件 有时会抛出 SIGSEGV 然而 应用程序捕获信号 SIGSEGV 换句话说 该插件是一个动态库 该错误发生在我的插件和动态库中 但应用程序处理 sSIGSEGV 并正常退出 因此 对我来说调试并获取所有堆栈帧
  • SQL Server 中的 IGNORE_DUP_KEY 选项

    我在 MSDN 和 Google 上做了很多搜索 但看起来像描述IGNORE DUP KEY选择非常有限 我的困惑 Is IGNORE DUP KEY选项 一个列的选项 为了一张桌子 对于几列 对于索引 使索引唯一 If set IGNOR
  • Android - 如何在录音时添加增益控制

    我为录音机应用程序工作 想添加增益控制 但我不知道该怎么做 我可以访问音频缓冲区 但我不知道如何使声音更大或更慢 我看到另一个应用程序有一个搜索栏 用于从特定范围内选择分贝 aRecorder read buffer 0 buffer le
  • 如何获取套接字的主机名?

    当我从连接的套接字接收到某个事件时 我必须发送一个带有我的主机名和端口作为参数的请求 我希望能够从套接字对象检索此信息 不幸的是 关于这方面的文档很少 我似乎无法找出这是否以及如何可能 那么 是否可以在 Socket io 中执行类似的操作
  • 如何在 中显示文件路径?

    I tried
  • Get-InstalledModule 和 Get-Module -ListAvailable 之间有什么区别?

    据我所知 他们做了同样的事情 那么使用其中一种而不是另一种的原因是什么 抱歉 所以问题规则引擎 不知道还能说什么 Get InstalledModule是其一部分PowerShellGet并将使用列出已安装的模块Install Module
  • Excel IFERROR 的 R 等效项是什么?

    我正在尝试将 IFERROR 条件放入 R 中 就像 Excel IFERROR 函数一样 我正在构建一个随机森林模型 为了进行微调 我使用tuneRF函数 它有助于给出最佳的 mtry 参数 Selecting Optimal MTRY
  • 将 Python 脚本作为 Windows 后台进程运行 [重复]

    这个问题在这里已经有答案了 我一直在尝试编写一个从串行端口读取数据的Python脚本 它在命令行中运行良好 但我需要它作为后台进程运行 而无需任何命令行界面 该脚本有一个 while 循环 它从串行端口读取下一个数据字节并相应地模拟按键 为
  • 使用 ANSI 转义序列获取终端大小?

    在研究这个问题时 在评论中我发现有人提到 ANSI 转义码来获取终端大小 由于我将使用 ANSI 转义序列 我认为这将是一种比获取终端大小更优雅的方法ioctl or getenv 这是一篇关于ioctl https stackoverfl
  • 如何使用 Tailwind 修改 svg 图标颜色

    我正在使用 TailwindCSS 并且想要更改 svg 的颜色 没有 Tailwind 这个问题之前已经被问过here https stackoverflow com questions 22252472 how to change th