css - 图像边界上的渐变不透明度

标签 css gradient opacity

我只想在图像的边界上将渐变不透明度从 100% 设置为 0%。

例如,我可以像这里一样在图像的一个方向上制作渐变不透明度(底部有渐变)

  .opacitygradient{
  -webkit-mask-image: -webkit-gradient(linear, left top, 
    left bottom, from(rgba(0,0,0,1)), to(rgba(0,0,0,0)));
    }
<img src="http://placehold.it/300x300" class="opacitygradient">

但我希望每一侧(所有边框)都有 10px 的渐变,而不是像上面代码片段中那样只有一个方向。
有什么想法吗?

最佳答案

要屏蔽图像,您可以这样做。 诀窍是为图像容器的背景使用两种线性渐变,一种是水平的,一种是垂直的,中间是透明的,边缘是全白的。
(请注意,如果页面背景不是白色,则必须为 rgbas 使用 255,255,255 以外的其他值。)

.container {
  display: inline-block;
  background:
    linear-gradient(0deg, rgba(255,255,255,1), rgba(255,255,255,0) 5%,
      rgba(255,255,255,0) 95%, rgba(255,255,255,1)),
    linear-gradient(90deg, rgba(255,255,255,1), rgba(255,255,255,0) 5%,
      rgba(255,255,255,0) 95%, rgba(255,255,255,1));
}

.opacitygradient {
  vertical-align: top;
  position: relative;
  z-index: -1;
}
<div class="container">
  <img src="http://placehold.it/300x300" class="opacitygradient">
</div>

作为奖励,它适用于所有浏览器,而不仅仅是那些理解 mask-image 的浏览器。

关于css - 图像边界上的渐变不透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43126465/

相关文章:

javascript - 如何在 android 中使用 HTML/CSS 赋予文本渐变颜色

html - 带有 HTML5 Canvas 元素的矩形渐变

jquery - 悬停时动画不透明度 (jQuery)

jquery - 边框半径动画

html - JqG​​rid 固定高度不按预期工作

java - GWT 2.4 应用程序找不到我的 CSS 文件,其类正在通过 UIObject.addStyleName 在代码中使用

Android:ListView为每一行添加渐变

c++ - Opengl ES 2.0-glDrawElements(GL_TRIANGLES)出现颜色不透明的问题

javascript - 为页面添加不透明度

css - 我的媒体查询不工作,我不知道为什么。这是我第一次使用媒体查询