'배경만 흐리게 또는 배경에 색상필터를 줄 수 있는 방법이 없을까?'
'배경만 살짝 어둡게 해서 글씨가 더 잘보이게 하고 싶은데 어떻게 하면 좋을까?'
고민하면 발견한 방법에 대해 적어봅니다.
문제점! : OPACITY를 주면 글씨도 같이 적용됨
HTML
1
2
3
|
<div class="box01">
<h1>배경만 투명하게</h1>
</div>
|
cs |
CSS
1
2
3
4
5
|
.box01{width: 500px;height: 300px;
background: url(https://cdn.pixabay.com/photo/2020/06/28/00/04/chicago-5347435_960_720.jpg);
background-size: cover;
opacity: 0.5; }
.box01 h1{color: rgb(121, 68, 219);text-align: center;line-height: 300px;}
|
cs |
결과
이렇게 박스에 OPACITY에 주면 전체가 다 흐리게 변합니다!
해결법1 : 배경이미지를 가상요소에 넣기
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
.box01{
width: 500px;
height: 300px;
position: relative;}
.box01::before{
content: "";
background: url(https://cdn.pixabay.com/photo/2020/06/28/00/04/chicago-5347435_960_720.jpg);
background-size: cover;
opacity: 0.5;
position: absolute;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
}
.box01 h1{
color: rgb(121, 68, 219);
text-align: center;
line-height: 300px;
position: relative;}
|
cs |
박스에 가상요소(before)를 만들어주고 가상요소에 배경이미지를 넣어주면 글씨에 영향주지 않고 배경이미지만 OPACITY를 조정할 수 있습니다. 그리고 가상요소의 POSITION 값을 abolute를 주고 각 위치(top/ left / right / bottom)를 0로 맞춰주면, box01의 사이즈와 동일하게 가상요소의 사이즈(배경이미지)를 맞출 수 있습니다.
정리하면
1. 가상요소를 만들어주고 가상요소에 배경이미지 넣어주기
2. box01의 position 값은 relative, 가상요소의 position 값은 abolute를 설정
3. 가상요소의 위치(top/ left / right / bottom)를 모두 0를 맞추기
4. 글씨(h1)는 position: relative를 주어 배경이미지보다 위로 올라오게 하기
결과물
해결방법2 : 가상요소를 이용해 필터만들기
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
.box01{
width: 500px;
height: 300px;
position: relative;
background: url(https://cdn.pixabay.com/photo/2020/06/28/00/04/chicago-5347435_960_720.jpg);
background-size: cover;
}
.box01::before{
content: "";
opacity: 0.5;
position: absolute;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
background-color: #000;
}
.box01 h1{
color: #fff;
text-align: center;
line-height: 300px;
position: relative;}
|
cs |
결과
결과물은 이전과 다르지만 활용할 수 있는 해결책 중에 하나가 될 수 있을 것 같다.
첫번째 해결책은 배경이미지 자체를 흐리게 했다면, 이 방법은 배경이미지 위에 가상요소에 투명도가 있는 검정색 박스(필터)를 놓은 것이다. 글씨만 강조하고 싶을때 이 방법이 더 유용할 것 같다. 검정색이 아니라 다른색상을 넣는다면 색상필터처럼 활용가능하다.
방법을 정리하자면
1. 윗 해결책과 동일하게 세팅하되, 배경이미지를 box01에 넣어준다.
2. 가상요소(::before)에는 배경색상을 설정해주고, opacity를 적당히 준다.
'퍼블리싱 > HTML&CSS' 카테고리의 다른 글
[CSS]background-image 안나올때 (0) | 2020.07.29 |
---|---|
[CSS] 배경이미지로 아이콘 한번에 넣기 (0) | 2020.07.23 |
[CSS]박스사이징(box-sizing) 활용하기 (0) | 2020.06.18 |
[CSS] 콘텐츠 화면 정가운데 정렬하기 (0) | 2020.05.15 |
[CSS]텍스트 조정하기(자간/어간/줄간격/다단) (0) | 2020.05.11 |