15

我看到了一些应用程序,即使包含黑色图标,也有一些应用程序如何使用 CSS 将图标转换为不同的颜色。我似乎无法重复这个过程

这是我的 back.css 文件:

.dashboard-buttons a {
    width: 80px; 
    height: 80px; 
    border: 1px solid #ccc; 
    margin: 0px 5px; 
    display:inline-block;
    border-radius: 10px;
    background:white; 
    text-decoration:none;
   -moz-box-shadow: inset 0 0 15px rgba(0,0,0, 0.25);
   -webkit-box-shadow: inset 0 0 15px rgba(0,0,0, 0.25);
}
.dashboard-buttons a:hover {
    text-decoration:underline;
}
.dashboard-buttons span, 
.dashboard-buttons img {
    display:inline; 
    font-size: 12px; 
    font-weight:bold;
}

.dashboard-buttons .sessions img { 
    background-color:#C60; 
}
.dashboard-buttons .sessions img {
    -webkit-mask-image:url(mobile/images/calendar2.png)
}

html代码如下所示:

<!DOCTYPE html>
<html lang="en">
    <head>
        <link rel="stylesheet" type="text/css" href="back.css" />
         <title>West</title>
    </head>
    <body>
        <div class="dashboard-buttons">
            <a href="sessions.php" class="sessions">
                <img src="mobile/images/calendar2.png">
                <span>Sessions</span>
            </a>
        </div>
    </body>
</html>

但它在我的 chrome 浏览器中不起作用。我错过了什么吗?

附加说明 我只需要支持现代 webkit 浏览器。无需担心 IE 或其他任何事情。

我在这里发布了我的代码http://jsfiddle.net/ZnbF3/。第一次使用 jsfiddle,希望它能正常工作吗?如果没有,只需复制我上面已经发布的 html 文件和 css 文件。我在这个问题上附加了 calendar2.png。

在此处输入图像描述

4

2 回答 2

22

您的代码不起作用,因为该src属性被用于在橙色版本之上显示黑色版本。您将能够通过这种方式仅使用 CSS 获得所需的结果:

.dashboard-buttons .sessions .img { width: 60px; height: 60px; background-color: #C60; }
.dashboard-buttons .sessions .img { -webkit-mask-image: url('http://i.stack.imgur.com/gZvK4.png'); }

这是更改后的 HTML 片段:

<div class="dashboard-buttons">
   <a href="sessions.php" class="sessions">
       <div class="img"></div>
       <span>Sessions</span>
   </a>
</div>​

这是它的一个工作示例

于 2012-05-29T17:13:15.843 回答
2

Try use background image for your image, then use another div inside the first one to apply the alpha

    <style type="text/css">
        #image{background-image:url(/img/2012-05-24_1834.png);width:400px;height:400px;}
        #image #image_mask{background-color:red;width:400px;height:400px;opacity:0.4;filter:alpha(opacity=40); /* For IE8 and earlier */}
    </style>

</head>


<body>

        <div id="image">
                <div id="image_mask"></div>
       </div>
</body>

sry for not using your code, i started to work in your awnser before you posted it

于 2012-05-29T16:58:56.657 回答