Modal 생성 후 배경 Blur 처리 하기

2024. 8. 4. 15:11·Programming/React

개인 프로젝트 진행 중에.. Button 클릭 후에 Modal이 위 화면에 생성되면서 Modal UI 제외 부분은 Blur 처리를 하려고 했다. 

 

코드를 아래와 같이 작성하고나서 저장하니,

띠링?

ReportContainer = position:relative

어떻게 이렇게 되지? 신기해서 다른 스타일 코드를 마구 보며, 원인을 찾기 시작했다.

레이아웃과 요소 배치 방식과 관련된 속성인 position, display에 원인이 있지 않을까? 생각하고 관련 속성 코드들은 // 주석처리를 하며 확인해보았다.

 

그 결과, position: relative 부분에 원인이 있었다. CSS의 속성들을 별도로 공부하고 React를 했던게 아니었기에 요소의 정확한 개념과 활용 방식을 숙지해야함을 다짐하고 이유를 찾아보았다.

ReportContainer = //position:relative

블러 처리된 배경 위에서 position: relative로 설정한 부분들이 블러 처리가 되지 않는 이유는 CSS의 backdrop-filter 속성과 position 속성의 동작 방식과 관련이 있다.

1. backdrop-filter의 동작 원리

  • backdrop-filter 속성은 해당 요소의 배경이 아니라, 그 요소 뒤에 있는 콘텐츠에 필터 효과를 적용한다.
  • 예를 들어, 모달을 블러 처리할 때, 모달의 배경은 블러 처리되지만, 모달 안에 있는 콘텐츠(예: 버튼, 텍스트)는 블러 처리되지 않는다. 블러 처리의 범위는 모달 뒤에 있는 배경에 한정된다.

2. position: relative와 backdrop-filter

  • position: relative 속성은 요소의 위치를 문서의 흐름에 대해 상대적으로 조정한다. 이 속성 자체는 그 요소의 배경을 조정하는 데 직접적으로 영향을 미치지 않는다.
  • position: relative로 설정된 요소는 backdrop-filter의 영향을 받지 않는다. 이는 backdrop-filter가 해당 요소의 뒤에 있는 콘텐츠에만 적용되기 때문이다. position: relative로 설정된 요소는 화면에서의 상대적인 위치 조정만 담당하므로, 블러 처리된 배경과는 독립적으로 동작한다.

3. 블러 처리의 범위와 효과

  • 블러 처리는 배경에 적용된 효과이므로, 블러 처리된 요소의 배경 뒤에 있는 콘텐츠가 블러 처리된다. 이 배경 뒤에 있는 다른 요소들은 블러 처리가 적용되지 않고, 블러 처리된 요소 위에 위치한 요소들도 블러 처리의 영향을 받지 않는다.
  • position: relative로 설정된 요소가 블러 처리된 배경 위에 위치하면, 블러 처리의 효과는 position: relative 속성에 영향을 받지 않고 배경 전체에만 적용된다. position: relative 속성으로 조정된 요소는 블러 처리된 배경 위에 존재하는 요소로서 블러 처리의 영향을 받지 않는다.
 
position, display 속성 활용을 제대로 하는 그날까지~

'Programming > React' 카테고리의 다른 글

AWS S3로 프론트엔드 배포하기  (0) 2024.09.07
다크모드 GlobalStyle 적용하기 : [Cannot read properties of undefined (reading 'body'), The above error occurred in the <l2> component]  (1) 2024.08.29
chart.js React에 적용하기  (0) 2024.08.21
단일 Modal 컴포넌트 props 사용해서 수입/지출 내역 관리하기 [Warning: React does not recognize the modalColor prop on a DOM element.]  (0) 2024.08.17
무한 루프 직면할 경우 : Too many re-renders. React limits the number of renders to prevent an infinite loop.  (0) 2024.04.07
'Programming/React' 카테고리의 다른 글
  • 다크모드 GlobalStyle 적용하기 : [Cannot read properties of undefined (reading 'body'), The above error occurred in the <l2> component]
  • chart.js React에 적용하기
  • 단일 Modal 컴포넌트 props 사용해서 수입/지출 내역 관리하기 [Warning: React does not recognize the modalColor prop on a DOM element.]
  • 무한 루프 직면할 경우 : Too many re-renders. React limits the number of renders to prevent an infinite loop.
gitit
gitit
짬내서 쓰는 프론트엔드와 기술 메모 공간
  • gitit
    깃잇-gitit
    gitit
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Coding Test
        • Programmers
        • BackJoon
      • Development Tools
        • Firebase
        • Git
        • Monorepo
      • Programming
        • JavaScript
        • React
        • React-Native
      • etc.
        • GeekNews
        • Blockchain
      • Technical Interview
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    BFS
    modal
    프로그래머스
    프론트엔드
    코테
    자바스크립트
    개발
    기술 질문
    긱뉴스
    기본문법
    javascript
    Firebase
    styled-components
    매일메일
    코딩
    geeknews
    AWS
    node.js
    S3
    백준
    frontend
    js
    독학
    알고리즘
    파이썬
    kakao
    코딩테스트
    리액트
    파이어베이스
    React
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
gitit
Modal 생성 후 배경 Blur 처리 하기
상단으로

티스토리툴바