【问题标题】:Mask only part of an element using CSS mask使用 CSS 掩码仅屏蔽元素的一部分
【发布时间】:2020-08-19 09:58:50
【问题描述】:

我有一个元素,我只想在元素的末尾进行屏蔽。我设法编写了一些代码来屏蔽元素的结尾,但元素的其余部分现在也被屏蔽了。我想更改遮罩,以便遮罩左侧的所有元素仍然可见。

.masked {
  width: 300px;
  height: 30px;
  background-color: hotpink;
  mask-image: linear-gradient(to right, black, transparent);
  mask-size: 30px;
  mask-repeat: no-repeat;
  mask-position: right;
}
<div class="masked"></div>

【问题讨论】:

    标签: css css-mask


    【解决方案1】:

    你需要多个掩码

    .masked {
      width: 300px;
      height: 30px;
      background-color: hotpink;
      -webkit-mask: 
        linear-gradient(black 0 0)                    left,
        linear-gradient(to right, black, transparent) right;
      -webkit-mask-size:
        calc(100% - 30px) 100%,
        30px              100%;
      -webkit-mask-repeat: no-repeat;
    }
    <div class="masked"></div>

    或者你像下面这样调整一个蒙版:

    .masked {
      width: 300px;
      height: 30px;
      background-color: hotpink;
      -webkit-mask: linear-gradient(to right, black calc(100% - 30px), transparent);
    }
    <div class="masked"></div>

    另一种语法:

    .masked {
      width: 300px;
      height: 30px;
      background-color: hotpink;
      -webkit-mask: 
        linear-gradient(to left , black, transparent) right/30px 100% no-repeat,
        linear-gradient(black 0 0);
      -webkit-mask-composite:destination-out;
      mask-composite:exclude;
    }
    <div class="masked"></div>

    【讨论】:

    • 很好,我喜欢在渐变中使用calc() 的解决方案,我不知道这是一个选项。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-14
    • 2015-07-19
    • 2015-09-29
    • 2017-09-17
    • 2022-01-06
    • 1970-01-01
    • 2012-07-24
    相关资源
    最近更新 更多