[CSS] 이미지를 어둡게 하는 방법

jjee·2025년 8월 5일
0

CSS

목록 보기
21/24

썸네일

이미지를 어둡게 하는 방법

이미지를 어둡게 만드는 방법에 대해 알아보자.

방법

  1. filter: brightness()
  2. opacity, background-color
  3. linear-gradient()
  4. ::before, rgba()

filter: brightness()

filter 속성에 brightness() 값을 이용하여 이미지 밝기를 조절할 수 있다.

<!-- index.html -->
<img src="./images/img1.jpg" />
/* style.css */
img {
	filter: brightness(0.7);
}

brightness 적용 비교
왼쪽은 brightness(0.7)을 적용한 이미지고 오른쪽은 원본이다.
이와 같이 밝기를 줄여서 이미지를 어둡게 만들어줄 수 있다.

opacity, background-color

opacity는 투명도를 조절하는 속성이다.
배경색을 바꾸는 background-color와 함께 사용하여 이미지를 어둡게 만들 수 있다.

<!-- index.html -->
<div class="div-wrap">
  <img src="./images/img1.jpg" />
</div>
/* style.css */
.div-wrap {
	background-color: #000;
}
img:first-child {
	opacity: 0.7;
}

opacity와 background-color 적용 비교
왼쪽은 opacity 0.7을 주고, 이미지를 감싸는 div에게 background-color를 검정색으로 적용한 이미지다.
이미지를 투명하게 만든 후 뒷배경에 어두운 색을 깔아서 이미지가 어두워지는 효과를 얻을 수 있다.

linear-gradient()

linear-gradient는 둘 이상의 색을 이용하여 색상 변화를 선형으로 부드럽게 표현할 수 있다.

<!-- index.html -->
<div class="div-wrap"></div>
/* style.css */
.div-wrap {
	width: 648px;
	height: 972px;
	background: linear-gradient(rgba(0, 0, 0, 0.5)),
	url(./images/img1.jpg) no-repeat center / cover;
}

linear-gradient 적용 비교
linear-gradient 값으로 반투명한 어두운 색상값을 넣어주고 콤마(,)를 이용하여 이미지 url 값을 이어주면 어두운 이미지를 만들 수 있다.

만약 이 안에 텍스트가 들어가더라도 텍스트와는 상관 없이 이미지만 어둡게 만들 수 있는 방법이다.

::before, rgba()

<!-- index.html -->
<div class="div-wrap"></div>
/* style.css */
.div-wrap {
	width: 648px;
	height: 972px;
	background: url(./images/img1.jpg) no-repeat 	center / cover;
	position: relative;
}
.div-wrap::before {
	content: "";
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	background-color: rgba(0, 0, 0, 0.5);
}

::before와 rgba() 적용 화면
background를 이용하여 이미지를 가진 요소에 가상요소인 ::before를 이용하여 반투명한 어두운 색상을 덮을 수 있다.

다양한 조합

투명도를 조절하고자 하는 경우에는 opacity를 이용할 수도 있지만 rgba()를 이용할 수도 있다.
위의 예시에서도 이 두가지는 호환이 가능하니 다양한 조합으로 작업해보는 것도 좋을 거 같다.

내가 사용한 방법

나는 어두운 이미지 위에 글씨를 올리려고 했던 상황이라 투명도를 조절하거나 위를 덮어씌우는 코드는 알맞지 않았다.
다행히 linear-gradient()를 사용해서 원하는 모습으로 만들 수 있었다.

참고 사이트

profile
내가 나에게 알려주는 개발 공부

0개의 댓글