使用 CSS mask 仅屏蔽元素的一部分

Jon*_*ops 3 css css-mask

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

.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;
}
Run Code Online (Sandbox Code Playgroud)
<div class="masked"></div>
Run Code Online (Sandbox Code Playgroud)

Tem*_*fif 5

你需要多个面膜

.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;
}
Run Code Online (Sandbox Code Playgroud)
<div class="masked"></div>
Run Code Online (Sandbox Code Playgroud)

或者您如下调整一个蒙版:

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

另一种语法:

.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;
}
Run Code Online (Sandbox Code Playgroud)
<div class="masked"></div>
Run Code Online (Sandbox Code Playgroud)