본문 바로가기

CSS

모달 창 디자인: 모달 창을 만들어 팝업 형태로 스타일링

반응형

모달 창은 정보를 제공하거나 사용자의 입력을 요청하는 팝업 형태의 인터페이스 요소입니다. CSS와 HTML을 활용해 모달 창을 디자인하고 스타일링하는 방법은 다음과 같습니다.

1. HTML 구조 설정

  • 모달 구조: div 태그를 사용하여 모달 창의 기본 구조를 만듭니다. 모달 컨텐츠를 포함하는 컨테이너와 닫기 버튼을 포함합니다.
  • 예시:

<div class="modal">
  <div class="modal-content">
    <span class="close-button">&times;</span>
    <!-- 모달 컨텐츠 -->
  </div>
</div>

 

2. CSS 기본 스타일링

  • 모달 스타일: 모달 창에 기본적인 스타일을 적용합니다. 배경색, 패딩, 테두리, 그림자 등을 설정합니다.
  • 예시:

.modal {
  display: none; /* 초기 상태는 숨김 */
  position: fixed; /* 화면에 고정 */
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5); /* 반투명 배경 */
}
.modal-content {
  background-color: #fefefe;
  margin: 15% auto; /* 중앙 정렬 */
  padding: 20px;
  border: 1px solid #888;
  width: 80%; /* 너비 설정 */
  box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);
}

 

 

3. 닫기 버튼 스타일링

  • 닫기 버튼: 모달 창의 닫기 버튼에 스타일을 적용합니다. 위치, 크기, 디자인 등을 설정합니다.
  • 예시:

.close-button {
  color: #aaa;
  float: right;
  font-size: 28px;
  font-weight: bold;
}
.close-button:hover,
.close-button:focus {
  color: black;
  text-decoration: none;
  cursor: pointer;
}

 

4. 모달 활성화

  • 보이기 및 숨기기: JavaScript를 사용하여 모달을 활성화하고 비활성화하는 기능을 추가합니다. display: block;과 display: none;을 적절히 활용합니다.

5. 애니메이션 및 전환

  • 애니메이션 효과: transition을 사용하여 모달 창이 나타나고 사라질 때 부드러운 애니메이션 효과를 적용합니다.
  • 예시:

.modal-content {
  transition: all 0.5s ease;
}

 

 

6. 반응형 디자인

  • 미디어 쿼리: 다양한 화면 크기에 맞게 모달의 레이아웃을 조정합니다.
  • 예시:

@media screen and (max-width: 600px) {
  .modal-content {
    width: 100%;
  }
}

 

 

7. 포커스 관리

  • 접근성: 모달이 활성화될 때 키보드 포커스를 모달 내부로 이동시키고, 모달이 닫힐 때 이전 위치로 포커스를 반환합니다.

8. 배경 스크롤 방지

  • 스크롤 제어: 모달이 활성화되었을 때 배경의 스크롤을 방지합니다. 이는 body 태그에 overflow: hidden;을 적용하여 구현할 수 있습니다.

9. 오버레이 효과

  • 배경 오버레이: 모달 배경에 반투명 오버레이를 적용하여 사용자의 주의를 모달 컨텐츠에 집중시킵니다.

10. 콘텐츠 스타일링

  • 콘텐츠 디자인: 모달 내부의 콘텐츠(텍스트, 이미지, 폼 등)에 대한 스타일을 적용합니다.

11. 모달 크기 조절

  • 크기 설정: 모달의 너비와 높이를 설정하여 콘텐츠에 맞게 조절합니다.

12. 접근성 고려

  • ARIA 속성: aria-hidden, aria-labelledby 등의 ARIA 속성을 사용하여 모달의 접근성을 높입니다.
반응형