Задать вопрос
@flexpc

Filter: blur() размывает края при градиентном размытие?

Копирую карточку с стороннего сайта
Оригинальная карточка
1d2197a50652bca0c04007fad79d6778.png

Моя карточка
a85724170d96b55edb8fbc098f1659d3.png

Проблема в градиентном размытие. По какой-то причине размытие снизу отсутствует, хотя должно быть как в оригинале. Я думаю это происходит из-за того что filter: blur() так же размывает края, а не только тело картинки как мне надо.
Код

.eventimage {
        position: relative;
        overflow: hidden;
        height: 230px; 
    }
    .image {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 230px; 
        object-fit: cover;
        object-position: center;
    }
    .blurr {
        filter: blur(20px);
        mask-image: linear-gradient(
            to bottom,
            transparent 0%,           
            transparent 30%,         
            black 70%,                
            black 100%                 
        );
    }
    .eventtext {
        position: absolute;
        z-index: 3; 
        display: flex;
        flex-direction: column;
        left: 14px;
        bottom: 14px;
    }
    .eventtext1 {
        font-family: San Bold;
        color: #7E818A;
        font-size: 11px;  
    }
    .eventtext2 {
        margin-top: 4px;
        font-family: San;
        color: #FAFDFE;
        font-size: 17px;  
    }
    .eventtext3 {
        margin-top: 4px;
        font-family: San;
        color: #7E818A;
        font-size: 13px;  
        letter-spacing: 0.8px;
    }

<div class="eventimage">
                <img class="image" src="event.webp">
                <img class="image blurr" src="event.webp">
                <div class="eventtext">
                    <span class="eventtext1">SPECIAL EVENT</span>
                    <span class="eventtext2">Multiverse Detective Gilt Set</span>
                    <span class="eventtext3">Gilt Set with distinct forms is here!</span>
                </div>
            </div>


Я просто накладываю одну картинку на другую и размываю верхнюю с маской. Как исправить проблему градиента снизу? Скейл не подходит.
  • Вопрос задан
  • 133 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Frontend-разработчик: тариф PRO
    10 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Решения вопроса 1
opium
@opium
Просто люблю качественно работать
у blur(20px) такая особенность — он выходит за края элемента, а overflow:hidden на родителе обрезает эти пиксели. Добавь к .blurr transform: scale(1.1); — картинка станет чуть больше контейнера и обрезание не заденет зону размытия.

p.s. -webkit-mask-image нужен для Safari, иначе маска там не работает
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы