본문 바로가기
프로그래밍/HTML

HTML <dialog> 태그 (showModal(), show())

by GenieIT* 2025. 2. 27.
728x90
반응형

 

  • dialog 태그모달 또는 비모달 다이얼로그 창을 만들 때 사용
  • showModal() → 모달(배경 비활성화)
  • show() → 비모달(배경 활성화, 다른 요소와 상호작용 가능)
  • close() → 다이얼로그 닫기
  • CSS와 함께 활용하여 스타일을 커스터마이징 가능

 


 

HTML dialog 태그란?

dialog 태그모달 창 또는 다이얼로그 박스를 생성하는 HTML 요소입니다. 사용자가 특정 작업을 수행할 때 알림, 메시지, 설정 창, 폼 입력 등을 표시하는 데 유용합니다.

기본적으로 dialog 태그는 숨겨진 상태이며, JavaScript로 showModal() 또는 show() 메서드를 호출하면 표시됩니다. 또한 close() 메서드로 닫을 수 있습니다.

 


 

기본 문법

<dialog id="myDialog">
  <p>이것은 다이얼로그 창입니다!</p>
  <button onclick="document.getElementById('myDialog').close()">닫기</button>
</dialog>

<button onclick="document.getElementById('myDialog').showModal()">다이얼로그 열기</button>

버튼을 클릭하면 모달(dialog) 창이 열리고, 닫기 버튼을 클릭하면 다이얼로그가 닫힙니다.

 


 

주요 특징

  • 모달 창 또는 비모달 창을 만들 수 있음
  • 기본적으로 숨겨진 상태이며 showModal() 또는 show()로 열어야 함
  • close() 메서드로 닫을 수 있음
  • esc 키를 눌러 자동으로 닫을 수 있음
  • CSS로 스타일을 커스터마이징 가능

 


 

사용 예제

💡모달 다이얼로그 ( showModal() )

모달 다이얼로그는 사용자가 닫기 전까지 화면의 다른 요소와 상호작용할 수 없습니다.

🌈 예제 코드:

<dialog id="modalDialog">
  <p>이것은 모달 다이얼로그입니다!</p>
  <button onclick="document.getElementById('modalDialog').close()">닫기</button>
</dialog>

<button onclick="document.getElementById('modalDialog').showModal()">모달 창 열기</button>

✅ 출력 결과:

이것은 모달 다이얼로그입니다!

모달 창을 열면 배경이 비활성화됨 (사용자는 다이얼로그를 닫아야 함)

 

💡비모달 다이얼로그 ( show() )

비모달 다이얼로그는 사용자가 다른 요소와 상호작용할 수 있습니다.

🌈 예제 코드:

<dialog id="nonModalDialog">
  <p>이것은 비모달 다이얼로그입니다.</p>
  <button onclick="document.getElementById('nonModalDialog').close()">닫기</button>
</dialog>

<button onclick="document.getElementById('nonModalDialog').show()">비모달 창 열기</button>

✅ 출력 결과:

이것은 비모달 다이얼로그입니다.

비모달 창을 열어도 다른 요소를 클릭할 수 있음

 

💡다이얼로그 창에 폼 추가하기

🌈 예제 코드:

<dialog id="formDialog">
  <form method="dialog">
    <p>이름을 입력하세요:</p>
    <input type="text" name="username">
    <button type="submit">확인</button>
  </form>
</dialog>

<button onclick="document.getElementById('formDialog').showModal()">폼 다이얼로그 열기</button>

✅ 출력 결과:

이름을 입력하세요:

method="dialog"을 사용하면 폼이 자동으로 제출되면 다이얼로그가 닫힘

 

💡CSS 스타일링 적용

🌈 예제 코드:

<style>
  dialog {
    border: 2px solid #0073e6;
    border-radius: 10px;
    padding: 20px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    text-align: center;
  }
</style>

<dialog id="styledDialog">
  <p>이것은 스타일이 적용된 다이얼로그입니다!</p>
  <button onclick="document.getElementById('styledDialog').close()">닫기</button>
</dialog>

<button onclick="document.getElementById('styledDialog').showModal()">스타일 적용된 창 열기</button>

다이얼로그의 테두리, 그림자, 패딩 등을 설정 가능

 


 

dialog 태그와 details 태그의 차이점

태그 차이점
dialog 태그 다이얼로그 창을 표시하며 JavaScript로 열고 닫아야 함
details 태그 클릭하면 열리고 접히는 내용을 제공하는 인터페이스 (FAQ, 설명서 등)

🌈 예제 코드:

<details>
  <summary>자세한 정보</summary>
  <p>이곳에는 숨겨진 정보가 있습니다.</p>
</details>

✅ 출력 결과:

자세한 정보

이곳에는 숨겨진 정보가 있습니다.

details 태그

는 클릭하면 자동으로 열리고 닫히는 토글 효과,

dialog 태그

는 JavaScript를 사용하여 직접 제어해야 함.

반응형

 

 

 

 

 

728x90
반응형

'프로그래밍 > HTML' 카테고리의 다른 글

HTML <dfn> 태그 (Definition)  (205) 2025.02.25
HTML <details> 태그 (내용 펼치기, 접기)  (205) 2025.02.24
HTML <wbr> 태그  (89) 2025.02.23
HTML <del> 태그 (취소 표시선)  (121) 2025.02.21
HTML <dd> 태그 (설명 기능)  (67) 2025.02.21