문제

검색 페이지의 배경 이미지로 사용하고 있는 JPEG 파일이 있고, 작업 중이기 때문에 CSS를 사용하여 설정하고 있습니다. Backbone.js 컨텍스트:

background-image: url("whatever.jpg");

CSS 3 흐림 필터를 적용하고 싶습니다. 오직 배경에 있지만 해당 요소 하나만 스타일을 지정하는 방법을 잘 모르겠습니다.내가 시도하면 :

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

바로 아래 background-image 내 CSS에서는 배경만이 아닌 전체 페이지의 스타일을 지정합니다.이미지만 선택하고 필터를 적용하는 방법이 있나요?아니면 페이지의 다른 모든 요소에 대해 흐림 효과를 끄는 방법이 있나요?

도움이 되었습니까?

해결책

.

두 개의 다른 컨테이너를 사용해야하며, 하나는 배경 이미지와 콘텐츠에 대해 하나씩 사용해야합니다.

예제에서는 두 개의 컨테이너, .background-image.content를 만들었습니다.

모두 position: fixedleft: 0; right: 0;로 배치됩니다. 표시하는 차이점은 요소에 대해 다르게 설정된 z-index 값에서 비롯됩니다.

.background-image {
  position: fixed;
  left: 0;
  right: 0;
  z-index: 1;
  display: block;
  background-image: url('http://666a658c624a3c03a6b2-25cda059d975d2f318c03e90bcf17c40.r92.cf1.rackcdn.com/unsplash_527bf56961712_1.JPG');
  width: 1200px;
  height: 800px;
  -webkit-filter: blur(5px);
  -moz-filter: blur(5px);
  -o-filter: blur(5px);
  -ms-filter: blur(5px);
  filter: blur(5px);
}

.content {
  position: fixed;
  left: 0;
  right: 0;
  z-index: 9999;
  margin-left: 20px;
  margin-right: 20px;
}
.
<div class="background-image"></div>
<div class="content">
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis aliquam erat in ante malesuada, facilisis semper nulla semper. Phasellus sapien neque, faucibus in malesuada quis, lacinia et libero. Sed sed turpis tellus. Etiam ac aliquam tortor, eleifend
    rhoncus metus. Ut turpis massa, sollicitudin sit amet molestie a, posuere sit amet nisl. Mauris tincidunt cursus posuere. Nam commodo libero quis lacus sodales, nec feugiat ante posuere. Donec pulvinar auctor commodo. Donec egestas diam ut mi adipiscing,
    quis lacinia mauris condimentum. Quisque quis odio venenatis, venenatis nisi a, vehicula ipsum. Etiam at nisl eu felis vulputate porta.</p>
  <p>Fusce ut placerat eros. Aliquam consequat in augue sed convallis. Donec orci urna, tincidunt vel dui at, elementum semper dolor. Donec tincidunt risus sed magna dictum, quis luctus metus volutpat. Donec accumsan et nunc vulputate accumsan. Vestibulum
    tempor, erat in mattis fringilla, elit urna ornare nunc, vel pretium elit sem quis orci. Vivamus condimentum dictum tempor. Nam at est ante. Sed lobortis et lorem in sagittis. In suscipit in est et vehicula.</p>
</div>
.

lorem ipsum 텍스트에 대한 사과 사과드립니다.

업데이트

Matthew Wilcoxson http://codepen.io/akademy/pen/flkzb

다른 팁

여분의 요소에 대한 필요성을 폐지하는 것과 함께 다른 솔루션과 같이 고정 / 절대치가 아니라 문서 흐름 내에 컨텐츠를 끼워 넣는 것입니다.

를 사용하여 달성 된

.content {
  overflow: auto;
  position: relative;
}
.

오버플로 자동이 필요합니다. 그렇지 않으면 백그라운드가 상단에 몇 픽셀로 오프셋됩니다.

이후에 당신은 단순히

가 필요합니다.
.content:before {
  content: "";
  position: fixed;
  left: 0;
  right: 0;
  z-index: -1;

  display: block;
  background-image: url('img-here');
  background-size:cover;
  width: 100%;
  height: 100%;

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

편집 가장자리에서 흰색 테두리를 제거하는 데 관심이 있으시면 110%의 너비와 높이와 왼쪽 및 왼쪽 상단을 사용하십시오.이것은 당신의 배경을 tad를 확대 할 것입니다 - 그러나 가장자리에서 단색의 색 출혈이 없어야합니다.

업데이트 된 펜 여기에서 : https://codepen.io/anon/pen/qgyewb -Chad Fawcett에게 제안을 위해 감사합니다.

다른 대답에 명시된대로 이것은 다음과 같이 달성 할 수 있습니다 :

  • 배경으로 흐리게 이미지의 사본.
  • 필터링 할 수있는 의사 요소는 콘텐츠 뒤에 배치됩니다.

또한 backdrop-filter backdrop-filter라는 지원되는 속성이 있으며 현재 Chrome 76에서 지원, Edge , Safari 및 iOS Safari ( relinchapdrop-filter"> Caniuse.com/A>)

Mozilla DevDocs :

BACKDROP-FILTER 속성은 요소의 투명도 / 불투명도를 조정하여 요소의 투명도 / 불투명도를 조정하여 요소를 통해 볼 수있는 요소 뒤의 영역을 흐리게 또는 색상을 이동하는 것과 같은 효과를 제공합니다.

사용 중지 통계를 위해 counciuse.com/A>

다음과 같이 사용할 것입니다 :

update (12/06/2019) : Chromium은 backdrop-filter를 사용하도록 설정합니다. rel="noreferrer">는 30/07/2019 가 며졌습니다.

update (01/06/2019) : Mozzilla Firefox 팀 는 곧이 구현을 시작할 때 시작할

update (21/05/2019) : 크롬 backdrop-filter는 "실험 웹 플랫폼 기능을 활성화하지 않고 Chrome 카나리아에서 사용할 수 있습니다. 이는 backdrop-filter가 모든 크롬 플랫폼에서 구현되는 것과 매우 가깝습니다.

이 작업을 수행하려면 html 를 다시 구조해야합니다.당신은 배경을 흐리게하기 위해 전체 요소를 흐리게해야합니다.그래서 배경 만 흐리려면 자체 요소 여야합니다.

아래 코드를 확인하십시오 : -

.backgroundImageCVR{
	position:relative;
	padding:15px;
}
.background-image{
	position:absolute;
	left:0;
	right:0;
	top:0;
	bottom:0;
	background:url('http://www.planwallpaper.com/static/images/colorful-triangles-background_yB0qTG6.jpg');
	background-size:cover;
	z-index:1;
	-webkit-filter: blur(10px);
  -moz-filter: blur(10px);
  -o-filter: blur(10px);
  -ms-filter: blur(10px);
  filter: blur(10px);	
}
.content{
	position:relative;
	z-index:2;
	color:#fff;
}
.
<div class="backgroundImageCVR">
    <div class="background-image"></div>
    <div class="content">
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis aliquam erat in ante malesuada, facilisis semper nulla semper. Phasellus sapien neque, faucibus in malesuada quis, lacinia et libero. Sed sed turpis tellus. Etiam ac aliquam tortor, eleifend rhoncus metus. Ut turpis massa, sollicitudin sit amet molestie a, posuere sit amet nisl. Mauris tincidunt cursus posuere. Nam commodo libero quis lacus sodales, nec feugiat ante posuere. Donec pulvinar auctor commodo. Donec egestas diam ut mi adipiscing, quis lacinia mauris condimentum. Quisque quis odio venenatis, venenatis nisi a, vehicula ipsum. Etiam at nisl eu felis vulputate porta.</p>
      <p>Fusce ut placerat eros. Aliquam consequat in augue sed convallis. Donec orci urna, tincidunt vel dui at, elementum semper dolor. Donec tincidunt risus sed magna dictum, quis luctus metus volutpat. Donec accumsan et nunc vulputate accumsan. Vestibulum tempor, erat in mattis fringilla, elit urna ornare nunc, vel pretium elit sem quis orci. Vivamus condimentum dictum tempor. Nam at est ante. Sed lobortis et lorem in sagittis. In suscipit in est et vehicula.</p>
    </div>
</div>
.

다음은 Matthew Wilcoxson의 솔루션과 같이 'Pseudo 요소가있는'의사 요소가있는 순수한 CSS의 현대 브라우저의 간단한 솔루션입니다.

JavaScript에서 이미지와 다른 속성을 변경하기위한 의사 요소에 액세스 할 필요가 없으므로 inherit를 값으로 사용하고 상위 요소 (여기서 body)를 통해 액세스하기 만하면됩니다.

body::before {
    content: ""; /* Important */
    z-index: -1; /* Important */
    position: inherit;
    left: inherit;
    top: inherit;
    width: inherit;
    height: inherit;
    background-image: inherit;
    background-size: cover;
    filter: blur(8px);
}

body {
  background-image: url("xyz.jpg");
  background-size: 0 0;  /* Image should not be drawn here */
  width: 100%;
  height: 100%;
  position: fixed; /* Or absolute for scrollable backgrounds */
}
.

CSS의 .content 탭에서 position:absolute로 변경합니다.그렇지 않으면 렌더링 된 페이지가 스크롤 할 수 없습니다.

언급 된 모든 솔루션은 매우 영리한 이슈가 있지만, 모두 시도 할 때 페이지의 다른 요소와 사소한 문제 또는 잠재적 인 효과를 노크하는 것처럼 보였습니다.

결국 시간을 절약하기 위해 단순히 내 오래된 솔루션으로 돌아갔습니다. 나는 페인트 넷 반경 5 ~ 10 픽셀의 가우시안 흐림 효과, 가우시안 블러를 갔고, 그냥 페이지 이미지로 저장했습니다.: -)

html :

<body class="mainbody">
</body
.

CSS :

body.mainbody
{
    background: url('../images/myphoto.blurred.png');
    -moz-background-size: cover;
    -webkit-background-size: cover;
    background-size: cover;
    background-position: top center !important;
    background-repeat: no-repeat !important;
    background-attachment: fixed;
}
.

편집 :

나는 마침내 그것을 일하고 있지만 해결책은 아무런 의미가 없어야합니다!여기를 참조하십시오 :

실제로 필요한 것은 "필터"입니다.

blur(«WhatEverYouWantInPixels»);"
.

body {
    color: #fff;
    font-family: Helvetica, Arial, sans-serif;
}

#background {
    background-image: url('https://cdn2.geckoandfly.com/wp-content/uploads/2018/03/ios-11-3840x2160-4k-5k-beach-ocean-13655.jpg');
    background-repeat: no-repeat;
    background-size: cover;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;

    /* START */
    /* START */
    /* START */
    /* START */

    /* You can adjust the blur-radius as you'd like */
    filter: blur(3px);
}
.
<div id="background"></div>

<p id="randomContent">Lorem Ipsum</p>
.

물론 이것은 CSS-Solution이 아니지만 CDN proton을 filter로 사용할 수 있습니다.

body {
    background: url('https://i0.wp.com/IMAGEURL?w=600&filter=blurgaussian&smooth=1');
}
.

https://developer.wordpress.com/docs/photon/ API / # 필터

나는 이것을 쓰지 않았지만, CSS SASS 컴파일러를 사용하여 부분적으로 지원되는 backdrop-filter의 폴리필이 있으므로 편집 파이프 라인이있는 경우 멋지게 달성 될 수 있습니다 (Typescript) : https://codepen.io/mixal_bl4/pen/ewpmwo

div {
    background: inherit;
    width: 250px;
    height: 350px;
    position: absolute;
    overflow: hidden;  /* Adding overflow hidden */
}

div:before {
    content: ‘’;
    width: 300px;
    height: 400px;
    background: inherit;
    position: absolute;
    left: -25px;  /* Giving minus -25px left position */
    right: 0;
    top: -25px;   /* Giving minus -25px top position */
    bottom: 0;
    box-shadow: inset 0 0 0 200px rgba(255, 255, 255, 0.3);
    filter: blur(10px);
}
.

이 답변은 머티리얼 디자인 동적 높이와 이미지를 갖춘 수평 카드 레이아웃입니다.

카드의 동적 높이로 인한 이미지 왜곡을 방지하려면 흐림 효과가 있는 배경 자리 표시자 이미지를 사용하여 높이 변화를 조정할 수 있습니다.

 

설명

  • 카드는 한 장에 들어있습니다. <div> 수업과 함께 싸개, 이는 가변상자입니다.
  • 카드는 두 가지 요소로 구성되어 있으며, 이미지도 링크 및 콘텐츠.
  • 링크 <a>, 수업 링크, 위치합니다상대적인.
  • 링크는 두 개의 하위 요소인 자리 표시자로 구성됩니다. <div> 수업 흐림 그리고 <img> 수업 사진 이는 선명한 이미지입니다.
  • 둘 다 자리잡고 있어요 순수한 그리고 가지고 width: 100%, 하지만 수업 사진 더 높은 스택 순서를 갖습니다. 즉, z-index: 2, 자리 표시자 위에 배치됩니다.
  • 흐린 자리 표시자의 배경 이미지는 다음을 통해 설정됩니다. 인라인 스타일 HTML에서.

 

암호

.wrapper {
  display: flex;
  width: 100%;
  border: 1px solid rgba(0, 0, 0, 0.16);
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.16), 0 1px 1px rgba(0, 0, 0, 0.23);
  background-color: #fff;
  margin: 1rem auto;
  height: auto;
}

.wrapper:hover {
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
}

.link {
  display: block;
  width: 200px;
  height: auto;
  overflow: hidden;
  position: relative;
  border-right: 2px solid #ddd;
}

.blur {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  width: 100%;
  height: 100%;
  filter: blur(5px);
  -webkit-filter: blur(5px);
  -moz-filter: blur(5px);
  -o-filter: blur(5px);
  -ms-filter: blur(5px);
}

.pic {
  width: calc(100% - 20px);
  max-width: 100%;
  height: auto;
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
}

.pic:hover {
  transition: all 0.2s ease-out;
  transform: scale(1.1);
  text-decoration: none;
  border: none;
}

.content {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 100%;
  padding: 20px;
  overflow-x: hidden;
}

.text {
  margin: 0;
}
<div class="wrapper">
  <a href="#" class="link">
    <div class="blur" style="background: url('http://www.planwallpaper.com/static/assets/img/header.jpg') 50% 50% / cover;"></div>
    <img src="http://www.planwallpaper.com/static/assets/img/header.jpg" alt="Title" class="pic" />
  </a>

  <div class="content">
    <p class="text">Agendum dicendo memores du gi ad. Perciperem occasionem ei ac im ac designabam. Ista rom sibi vul apud tam. Notaverim to extendere expendere concilium ab. Aliae cogor tales fas modus parum sap nullo. Voluntate ingressus infirmari ex mentemque ac manifeste
      eo. Ac gnum ei utor sive se. Nec curant contra seriem amisit res gaudet adsunt. </p>
  </div>
</div>

이제는 CSS Grid를 사용하여 더 간단하고 유연하게됩니다. Blured Background (IMGBG)를 텍스트 (H2)

겹쳐야 만합니다.
<div class="container">
 <div class="imgbg"></div>
 <h2>
  Lorem ipsum dolor sit amet consectetur, adipisicing elit. Facilis enim
  aut rerum mollitia quas voluptas delectus facere magni cum unde?:)
 </h2>
</div>
.

및 CSS :

.container {
        display: grid;
        width: 30em;
      }

.imgbg {
        background: url(bg3.jpg) no-repeat center;
        background-size: cover;
        grid-column: 1/-1;
        grid-row: 1/-1;
        filter: blur(4px);
      }


     .container h2 {
        text-transform: uppercase;
        grid-column: 1/-1;
        grid-row: 1/-1;
        z-index: 2;
      }
.

스크롤 할 수있는 내용을 원할 경우 콘텐츠의 위치를 절대로 설정하십시오.

content {
   position: absolute;
   ...
}
.

이것이 이것이 저를위한 것인지는 모르지만 그게 그렇지 않다면 그렇지 않다면 그렇지 않다면!

또한 배경이 고정되어 있기 때문에 시차 " 효과가 있음을 의미합니다!이제이 사람은이 사람이 흐릿한 배경을 만드는 법을 가르쳐 줬을뿐만 아니라 시차 배경 효과도 있습니다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top