如何使用 CSS 更改图标图像的颜色? [复制]

Posted

技术标签:

【中文标题】如何使用 CSS 更改图标图像的颜色? [复制]【英文标题】:How can I change color of icon image using CSS? [duplicate] 【发布时间】:2014-01-13 01:49:10 【问题描述】:

我试图弄清楚如何更改半透明和半纯色的图像的颜色。

我希望能够更改白色的颜色,这样我就可以添加悬停,并添加在 wordpress 中以动态方式更改颜色的功能。使用 Photoshop 填充图像不是一个选项,因为我要在我的 Wordpress 主题中构建一个换色器。

我使用了一个名为 JFlat.js 的 jQuery 脚本,因为它看起来正是我所需要的。虽然它似乎对我根本不起作用。按照我猜测的确切步骤,这是因为它使用了旧版本的 jQuery。

谁能给我一些帮助?

这是图片上的黑色版本,您看不到白色版本,因此我将发布此版本以更好地了解我在说什么。

【问题讨论】:

查看css sprites 你没有使用字体图标吗? 【参考方案1】:

使用SVG icon,这个来自Iconic。 Icon melon也不错

否则你可以使用font-icon,这个来自FontAwesome

如果必须,您可以使用CSS Filter,但它是only supported in newer browsers。最好的后备方法是使用 SVG 过滤器来做同样的事情并使用数据 URL 来应用它。 Demo

-webkit-filter: invert(100%);

您也可以使用建议的 agconti 之类的精灵

【讨论】:

【参考方案2】:

对于它的价值,这也可以用 svg 来完成

FIDDLE

查看google's online svg-editor - 我用来制作 svg。 (除了我后来添加的css类)

svg

<svg class="play"   xmlns="http://www.w3.org/2000/svg">
 <!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
 <g>
  <title>Layer 1</title>
  <circle class="outer" r="123.16656" cy="128" cx="128" 0 fill="#000000"/>
  <circle class="inner" r="97" cy="127" cx="128" fill="#ffffff"/>
  <path class="triangle" transform="rotate(89.2704 134.893 125.778)" id="svg_6" d="m93.75,161.77814l41.14282,-72l41.14288,72l-82.28571,0z" stroke-linecap="null" stroke-linejoin="null" stroke-dasharray="null"  fill="#000000"/>
 </g>
</svg>

css

.play:hover .outer, .play:hover .triangle

    fill: #fff;

.play:hover .inner

    fill: #000;

【讨论】:

【参考方案3】:

您可以尝试完全避免使用 JQuery,而只使用普通的旧 css 和 html。代码显示了这个概念,但您需要调整尺寸以使其工作。您可能会发现使用border-radius:100% 更有用。然后您可以根据需要应用 :hover 样式。

  <div class="outer-circle">
   <div class="inner-circle">
      <div class="triangle">
      </div>
  </div>
</div>

<style>
    .outer-circle 
        padding: 15px 0 0 15px;
        width: 150px;
        height: 150px;
        background: black;
        -moz-border-radius: 80px;
        -webkit-border-radius: 80px;
        border-radius: 80px;

    

    .inner-circle 

        width: 135px;
        height: 135px;
        background: white;
        -moz-border-radius: 80px;
        -webkit-border-radius: 80px;
        border-radius: 80px;
        position:relative;
    


    .triangle 
        width: 0;
        height: 0;
        border-top: 40px solid transparent;
        border-left: 80px solid black;
        border-bottom: 40px solid transparent;
        position: absolute;
        top:25px;
        left: 35px;
    
</style>

【讨论】:

看起来像很多额外的工作和标记,但它确实有效 感谢您的回复。他们似乎不适合我。我也尝试切换到边界半径 100%。这些元素似乎不想正确排列。任何想法为什么?我正在使用 Chrome。 我已经编辑了我的样式来工作。希望对您有所帮助!

以上是关于如何使用 CSS 更改图标图像的颜色? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 CSS(jQuery SVG 图像替换)更改 SVG 图像的颜色?

如何使用 CSS(jQuery SVG 图像替换)更改 SVG 图像的颜色?

CSS 过滤器作为一个图像的颜色修饰符

如何在悬停事件中更改 SVG 图像中的笔触颜色? [复制]

如何用css更改tab键选择颜色? [复制]

我可以只使用 CSS 为引导图标添加颜色吗?