2016-08-14 6 views
0

Я использую следующий CSS свойство для установки blur эффекта:Как сделать эффект размытия без белого света?

-webkit-filter: blur(5px); 
    -moz-filter: blur(5px); 
    -o-filter: blur(5px); 
    -ms-filter: blur(5px); 
    filter: blur(5px); 

Это делает Div элемент blur, но я вижу белый свет в углах блока, как я могу сделать blur effect без них?

ответ

4

Единственный способ, чтобы удалить размытые края в чистом CSS способом является масштабирование элемента немного затем отсечение края с overflow: hidden добавлен в контейнере:

.container { 
 
    overflow: hidden; 
 
    border: 1px solid red; 
 
    display: inline-block; 
 
} 
 

 
.blur { 
 
    -webkit-filter: blur(5px); 
 
    -moz-filter: blur(5px); 
 
    -o-filter: blur(5px); 
 
    -ms-filter: blur(5px); 
 
    filter: blur(5px); 
 
    transform-origin: 50%; 
 
    transform: scale(1.3); 
 
}
<div class="container"> 
 
    <div class="blur"> 
 
    <img src="http://lorempixel.com/700/300" alt=""> 
 
    </div> 
 
</div>

jsFiddle : https://jsfiddle.net/azizn/7v0mtfyn/

+1

Будьте осторожны при использовании в качестве размытого фона. transform: scale(); на полноэкранном фоне, который прокручивается невероятно лагги, как на Macbook, так и на iPhone. Решение в этом случае состояло в том, чтобы сделать фон немного большим (110%, скажем) и расположите его на несколько пикселей от края с переполнением: hidden; – Honza

+0

Ницца это отличный ответ, но вы можете взглянуть на мой код, почему он не работает здесь, когда я использую тот же код css [jsfiddle link] (https://jsfiddle.net/mostofa/Ly7Lht3a/1/) –

+0

Спасибо @Honza за ваша информация –

Смежные вопросы