2024-01-02
1. 방법
아래와 같이 div 안에 텍스트가 존재한다고 가정해 보자. 목표는 내부 텍스트는 그대로 유지하고 배경 또는이미지만 blur 처리를 해보는 것이다.
html
<div class="test_div">
<h1>Hello world</h1>
</div>
css
.test_div {
position: relative;
width: 500px; /* 슬라이드를 100% 너비로 표시 */
height: 500px;
}
.test_div::before {
content: "";
background-color: red;
width: 375px;
height: 500px;
filter: blur(0px);
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: -1;
}
.test_div:hover::before {
filter: blur(5px); /* 호버 시에 blur 효과 적용 */
}
방법은 크게 어렵지 않다. 실제 배경은 ::before 키워드에 넣어두고 z-index -1로 설정하여 우선순위를 뒤로 만들어 둔다. 이로인해 텍스트가 앞에 보이게 되고, 호버 시에 뒤에 있는 test_div:hover::before 만 blur 처리를 주어 배경만 뿌옇게 만들 수 있게 된다.
아래는 실제 호버시에 어떤 형식으로 동작하는지 보여주는 것이다.