#css #css-mask
#css — файл #css-маска #css
Вопрос:
У меня есть элемент, который я хочу замаскировать только в конце элемента. Мне удалось написать некоторый код, чтобы замаскировать конец элемента, но остальная часть элемента теперь также замаскирована. Я хочу изменить маску так, чтобы все элементы слева от маски по-прежнему были видны.
.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>
Ответ №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>
Комментарии:
1. Приятно, мне нравится решение использовать
calc()
внутри градиента, я не знал, что есть варианты. Спасибо!