【问题标题】:Reduce size (mask-image). Can you help me?减小尺寸(掩码图像)。你能帮助我吗?
【发布时间】:2025-12-03 09:25:02
【问题描述】:

颜色是固定的White color icon.png to blue color icon.png (html/css),但是最小(或最大)怎么办?

div {
 width: 50px;
 height: 50px;
 margin: 50px;
 padding: 50px;
 top: 50px;
 bottom: 50px;
 left: 50px;
 right: 50px;
 background-size: 50px;
 mask-size: 50px; /* not supported by Chrome */
 -webkit-mask-image: 50px; /* also not supported by Chrome */

 background-color: blue; /* select your want color */
 -webkit-mask-image: 
 url(https://image.flaticon.com/icons/png/512/54/54591.png);
 mask-image: url(https://image.flaticon.com/icons/png/512/54/54591.png);
 mask-repeat:no-repeat;
 -webkit-mask-repeat:no-repeat;
}

<div></div>

如何缩小尺寸?

margin: 50px; padding: 50px;

没有

left: 50px; right: 50px; top: 50px; bottom: 50px;

没有

background-size: 50px;

没有

mask-size: 50px; 

不,Chrome 不支持

webkit-mask-size: 50px; 

不,Chrome 也不支持

width: 50px; height: 50px;

没有

怎么办?

【问题讨论】:

  • 你想减小遮罩的大小还是整个图标的大小?

标签: html css png jpeg gif


【解决方案1】:

你可以依赖mix-blend-mode而不是蒙版,然后你可以轻松地将图像调整为简单的背景:

div.box {
  width: 50px;
  height: 50px;
  padding: 50px;
  background: url(https://image.flaticon.com/icons/png/512/54/54591.png) center/cover;
  position: relative;
  background-color: #fff;
}

div.box:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: blue;
  mix-blend-mode: lighten;
}
&lt;div class="box"&gt;&lt;/div&gt;

你也可以通过调整伪元素只改变图片一部分的颜色:

div.box {
  width: 150px;
  height: 150px;
  background: url(https://image.flaticon.com/icons/png/512/54/54591.png) center/cover;
  position: relative;
  background-color: #fff;
}

div.box:before {
  content: "";
  position: absolute;
  top: 20%;
  left: 20%;
  right: 20%;
  bottom: 20%;
  background: blue;
  mix-blend-mode: lighten;
}
&lt;div class="box"&gt;&lt;/div&gt;

【讨论】: