CSS를 사용하여 배경을 어둡게하는 방법은 무엇입니까?


100

텍스트가있는 요소가 있습니다. 불투명도를 낮출 때마다 전신의 불투명도를 낮 춥니 다. background-image다른 모든 것이 아니라 더 어둡게 만들 수있는 방법 이 있습니까?

background-image:url('http://fc02.deviantart.net/fs71/i/2011/274/6/f/ocean__sky__stars__and_you_by_muddymelly-d4bg1ub.png');

답변:


197

이 코드를 이미지 CSS에 추가하십시오.

 body{
 background:
        /* top, transparent black, faked with gradient */ 
        linear-gradient(
          rgba(0, 0, 0, 0.7), 
          rgba(0, 0, 0, 0.7)
        ),
        /* bottom, image */
        url(http://fc02.deviantart.net/fs71/i/2011/274/6/f/ocean__sky__stars__and_you_by_muddymelly-d4bg1ub.png);
    }

참조 : linear-gradient ()-CSS | MDN

업데이트 : 모든 브라우저가 RGBa를 지원하는 것은 아니므로 '대체 색상'이 있어야합니다. 이 색상은 대부분 단색 (완전 불투명) background:rgb(96, 96, 96)입니다. 예 : . RGBa 브라우저 지원에 대해서는 이 블로그 를 참조하십시오 .


이것에 대한 크로스 브라우저 문제가 있습니까?
Jon P

9
background-image와 this를 별도로 지정하려는 경우 속성은 무엇입니까?
Petruza

2
@Petruza 우리는이 구문을 사용할 수밖에없는 것 같습니다. 참조 읽기 : "<gradient>는 <image> 데이터 유형에 속하기 때문에 <image>를 사용할 수있는 곳에서만 사용할 수 있습니다. 이러한 이유로 linear-gradient ()는 background-color에서 작동하지 않습니다. 및 "는 <컬러> 데이터 유형을 사용하여 다른 속성
마르코 Panichi

18

: after psuedo-element 사용 :

.overlay {
    position: relative;
    transition: all 1s;
}

.overlay:after {
    content: '\A';
    position: absolute;
    width: 100%; 
    height:100%;
    top:0; 
    left:0;
    background:rgba(0,0,0,0.5);
    opacity: 1;
    transition: all 0.5s;
    -webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
}
.overlay:hover:after {
    opacity: 0;
}

내 펜 확인>

http://codepen.io/craigocurtis/pen/KzXYad


좋지만 Windows 10의 Firefox 47.0.1에서는 작동하지 않습니다. 그러나 IE에서는 작동합니다. Firefox에 대한 수정 사항이 있습니까?
John Max

2
@JohnMax Firefox는 이제 정상적으로 작동합니다. 몇 년만 기다려야합니다.
Craig O. Curtis

10

로 설정 background-blend-mode하는 darken것이 목적을 달성하는 가장 직접적이고 짧은 방법이지만 background-color블렌드 모드가 작동하려면 먼저 설정해야합니다 .
나중에 javascript에서 값을 조작해야하는 경우에도 이것이 가장 좋은 방법입니다.

background: rgba(0, 0, 0, .65) url('http://fc02.deviantart.net/fs71/i/2011/274/6/f/ocean__sky__stars__and_you_by_muddymelly-d4bg1ub.png');
background-blend-mode: darken;

배경 혼합에 사용할 수 있습니까?


1
edge 또는 IE11은 실제로 브라우저가 아닙니다
stackdave

6

이 작업을 수행 할 수 있습니다. box-shadow

그러나 실제로 이미지에 적용 할 수는 없습니다. 단색 배경에만

body {
  background: #131418;
  color: #999;
  text-align: center;
}
.mycooldiv {
  width: 400px;
  height: 300px;
  margin: 2% auto;
  border-radius: 100%;
}
.red {
  background: red
}
.blue {
  background: blue
}
.yellow {
  background: yellow
}
.green {
  background: green
}
#darken {
  box-shadow: inset 0px 0px 400px 110px rgba(0, 0, 0, .7);
  /*darkness level control - change the alpha value for the color for darken/ligheter effect */
}
Red
<div class="mycooldiv red"></div>
Darkened Red
<div class="mycooldiv red" id="darken"></div>
Blue
<div class="mycooldiv blue"></div>
Darkened Blue
<div class="mycooldiv blue" id="darken"></div>
Yellow
<div class="mycooldiv yellow"></div>
Darkened Yellow
<div class="mycooldiv yellow" id="darken"></div>
Green
<div class="mycooldiv green"></div>
Darkened Green
<div class="mycooldiv green" id="darken"></div>


2

절대 및 음수 Z- 색인으로 배치 된 배경 용 컨테이너를 사용할 수 있습니다. http://jsfiddle.net/2YW7g/

HTML

<div class="main">
    <div class="bg">         
    </div>
    Hello World!!!!
</div>

CSS

.main{
    width:400px;
    height:400px;
    position:relative;
    color:red;
    background-color:transparent;
    font-size:18px;
}
.main .bg{
    position:absolute;
      width:400px;
    height:400px;
    background-image:url("http://fc02.deviantart.net/fs71/i/2011/274/6/f/ocean__sky__stars__and_you_by_muddymelly-d4bg1ub.png");
    z-index:-1;
}

.main:hover .bg{
    opacity:0.5;
}

2

이미 여기에 추가하려면 다음을 사용하십시오.

background: -moz-linear-gradient(rgba(0,0,0,.7),rgba(0,0,0,.7));
background: -webkit-linear-gradient(rgba(0,0,0,.7),rgba(0,0,0,.7));
background: linear-gradient(rgba(0,0,0,.7),rgba(0,0,0,.7));
filter: unquote("progid:DXImageTransform.Microsoft.gradient( startColorstr='#b3000000', endColorstr='#b3000000',GradientType=0 )");

... 70 % 선형 그라데이션 오버레이의 브라우저 간 지원을 위해. 이미지를 밝게하려면 모든 것을 0,0,0's'로 변경할 수 있습니다 255,255,255. 70 %가 약간 많으면 계속해서 .7. 그리고 향후 참조를 위해 http://www.colorzilla.com/gradient-editor/를 확인 하십시오.


1

배경색을 밝거나 어둡게하려면이 CSS 코드를 사용할 수 있습니다.

.brighter-span {
  filter: brightness(150%);
}

.darker-span {
  filter: brightness(50%);
}

감사 합니다 . CSS 필터 에 대해 몰랐습니다 . 누군가에게 도움이되는 경우, 다음은 Can I Use 상태 (2020 년 3 월)입니다.
Reed Dunkle

0

나를 위해 필터 / 그라디언트 접근 방식이 작동하지 않았으므로 (아마도 기존 CSS로 인해) :before대신 의사 스타일링 트릭을 사용했습니다.

.eventBannerContainer {
    position: relative;
}
.eventBannerContainer:before {
    background-color: black;
    height: 100%;
    width: 100%;
    content: "";
    opacity: 0.5;
    position: absolute;
    display: block;
}
/* make any immediate child elements above our darkening mask */
.eventBannerContainer > * {
    position: relative;
}

기본 이후 display에가 ::before있다 inline가 수락하지 않습니다 widthheight.
connexo

@connexo에게 감사드립니다. 관련 스타일을 복사 할 때 놓친 것 같습니다.
Daniel Sokolowski
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.