관리 메뉴

프론트엔드 정복하기

bootstrap | 모달 backgdrop (검은배경) 관리 본문

CSS/CSS 프레임워크

bootstrap | 모달 backgdrop (검은배경) 관리

GROWNFRESH 2020. 12. 29. 09:55

bootstrap 모달을 열 때 모달창 뒤에 검은 화면이 생성된다.

이 검은 화면 요소는 어디에 위치해 있을까?

 

다음과 같이 body태그 맨 끝에 'modal-backdrop'이라는 클래스를 가지고 생성된다.

<body>
	<h1></h1>
    ...
    ...
    <script></script>
    ...
    <div class="modal-backdrop"></div>
</body>

 

 

만약 모달창이 연달아서 여러 개 생성될 경우, 나중에 생성된 모달창의 backdrop이 기존의 backdrop에 이어서 body 태그 맨 끝에 생성된다.

<body>
	<h1></h1>
    ...
    ...
    <script></script>
    ...
    <div class="modal-backdrop"></div>     //먼저 생성된 모달의 back
    <div class="modal-backdrop"></div>	   //나중에 생성된 모달의 back
</body>

 

 

 

모달창을 연달아 여러 개 띄울 경우, 문제가 하나 생긴다.

 

흰색 모달 박스를 띄운 후 => 버튼을 클릭하면 => 하늘색 alert모달창이 흰색 박스 위에 뜨도록 하고 싶었다.

즉, 하늘색 alert모달창의 backdrop에 흰색 모달박스가 가려지도록 하고 싶었다.

 

하지만 backdrop은 모달 컨텐츠들의 뒷켠에 연달아 생기기 때문에, 컨텐츠들은 전부 backdrop들의 위로 떠오르게 된다.

 

 

 

 

 

이를 해결하기 위해서는 .modal-backdrop의 z-index값을 조정하면 된다.

하지만 backdrop은 'modal-backdrop'라는 클래스만을 가지고 태어나기 때문에 특정 모달의 backdrop을 조정하고 싶다면

eq(), last(), first() 등의 jquery 선택자를 사용해야 한다.

 

 

예를들어,

가장 나중에 생성된 모달창을 제어하고 싶다면?

$('.modal-backdrop').last().css("z-index", "9999");

 

last() 대신 fist() 혹은 eq(n)으로 제어할 수도 있다.

 

'CSS > CSS 프레임워크' 카테고리의 다른 글

Bulma - React에 적용하는 방법  (0) 2021.01.25
Grid System  (0) 2020.06.16
min파일 활용 Tip  (0) 2020.06.16
AntDesign  (0) 2020.06.03
React_CSS FRAMEWORK for React.js 종류  (0) 2020.05.21