Как удалить белую рамку из размытия

Как удалить границу белого размытия из фонового изображения.

<div class="background-image"></div> 

CSS, я попытался добавить margin: -10px, но он не работает

.background-image {
  background: no-repeat center center fixed; 
   background-image: url('http://www.hdpaperz.com/wallpaper/original/windows-8-wallpapers-2560x1600-2311_1.jpg') ; 
  background-size: cover;
  display: block;
  height: 100%;
  left: -5px;
  top:-5px;
  bottom:-5px;
  position: fixed;
  right: -5px;
  z-index: 1;
  margin:0px auto;
  -webkit-filter: blur(5px);
  -moz-filter: blur(5px);
  -o-filter: blur(5px);
  -ms-filter: blur(5px);
  filter: blur(5px);
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;

 }

http://jsfiddle.net/maio/8wq132nd/1/

Ответ 1

Я добавил переполнение, отступы и даже поля, но проблема все еще не решена. Поэтому я попытался указать тег изображения между div. Задача решена.

<div class="background-image">
<img src="http://www.hdpaperz.com/wallpaper/original/windows-8-wallpapers-2560x1600-2311_1.jpg" width="100%" height="100%"/>
</div>

CSS

 .background-image {
  background: no-repeat center center fixed; 
  background-size: cover;
  display: block;
  left: -5px;
  top:-5px;
  bottom:-5px;
  position: fixed;
  right: -5px;
  z-index: 1;
  -webkit-filter: blur(5px);
  -moz-filter: blur(5px);
  -o-filter: blur(5px);
  -ms-filter: blur(5px);
  filter: blur(5px);
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  margin:-5px;

 }

JS Fiddle

http://jsfiddle.net/2pgdttLh/

Ответ 2

Самый простой способ сделать это - добавить transform: scale (1.1). Попробуйте здесь.

#overlay {
 position: fixed;
 left: 22.5em;
 top: 3em;
 height: 75%;
 width: 50%;
 background: url("https://s-media-cacheak0.pinimg.com/originals/ae/b4/c5/aeb4c53cab2b550187644af503a0f17e.png");
 background-size: cover;
 filter: blur(9px);
 transform: scale(1.1); 
}

Ответ 3

padding: 10px 10px;

добавьте это в свой CSS, чтобы удалить границу белого размытия внизу

Ответ 5

Я добавил отрицательный запас в контейнер: margin: -5px

Ответ 6

Это сработало для меня: добавили два фиксированных изображения, одно с z = -1, другое с z = 0, размытое первое.

Ответ 7

Я заметил, что белая рамка происходит от цвета фона тела. Если вы установите его на другие цвета, вы увидите, что цвет белой границы меняется на тот, который вы установили.

Просто сделай это

body {
  background-color: black; //or whatever color is nearest to your blurred background
}

Ответ 8

Здесь я остановился на функции, основанной на ответе @Prime.

Чтобы это работало, изображение должно быть расположено внутри <div/> имеющего width и height изображения (явно установлено).

    function addBlur(style, radius) {
      return {
        ...style,
        // https://caniuse.com/#feat=css-filters
        filter: 'blur(${radius}px)',
        // Works around the white edges bug.
        // https://stackoverflow.com/questions/28870932/how-to-remove-white-border-from-blur-background-image
        width: 'calc(100% + ${2 * radius}px)',
        height: 'calc(100% + ${2 * radius}px)',
        marginLeft: '-${radius}px',
        marginTop: '-${radius}px'
      }
    }

Ответ 9

Я использую контур, который соответствует радиусу размытия в 2 раза. Так:

    element: {
        filter: blur(5px)
        outline: solid 10px
    }