> 웹 프론트엔드 > JS 튜토리얼 > 모달 대 대화 상자

모달 대 대화 상자

Linda Hamilton
풀어 주다: 2024-11-26 06:48:10
원래의
267명이 탐색했습니다.

Modal vs Dialog

모달과 대화상자의 차이점을 아시나요?

아니?! 알아봅시다

모달과 대화 상자의 차이점

사용자 인터페이스(UI) 디자인에서 "모달"과 "대화 상자"라는 용어는 종종 같은 의미로 사용되지만 의미는 다릅니다.

모달:

  • 정의: 모달은 애플리케이션에 일시적인 중단 상태를 생성하는 사용자 인터페이스 요소로, 사용자가 기본 콘텐츠나 애플리케이션으로 돌아가기 전에 모달과 상호 작용해야 합니다.
  • 주요 기능: 인터페이스를 닫거나 상호작용할 때까지 나머지 인터페이스와의 상호작용을 차단합니다. 사용자가 모달의 콘텐츠에 집중하고 조치(결정 확인, 양식 작성 등)를 취하도록 강제합니다.
  • 일반적인 사용 사례:
    • 확인 요청(예: "정말 삭제하시겠습니까?")
    • 경고 또는 오류 메시지
    • 인증 화면(예: 로그인 화면)
    • 계속하기 전 필수 옵션 선택(예: "변경 사항을 저장하시겠습니까?")
  • : "변경 사항을 저장하시겠습니까?" 많은 애플리케이션에서는 다른 작업을 계속하기 전에 "예", "아니요" 또는 "취소"를 클릭해야 합니다.

대화:

  • 정의: "대화 상자"는 일반적으로 정보 교환이나 의사 결정과 관련된 사용자와의 상호 작용을 허용하는 모든 사용자 인터페이스 요소를 가리키는 더 넓은 용어입니다. 모달일 수도 있고 아닐 수도 있습니다.
  • 주요 기능: 나머지 인터페이스와의 상호 작용을 반드시 차단하지는 않습니다. 대화 상자는 모달일 수도 있고 비모달일 수도 있습니다. 즉, 대화 상자가 열려 있는 동안 사용자는 애플리케이션의 다른 부분과 계속 상호 작용할 수 있습니다.
  • 일반적인 사용 사례:
    • 사용자 입력 요청(예: 검색 대화상자 또는 설정)
    • 정보 표시(예: 오류 메시지, 경고)
    • 복잡한 형태 또는 다단계 프로세스
  • : 특정 매개변수(예: 글꼴 크기 또는 형식)를 요청하지만 비모달 대화상자인 경우 애플리케이션의 다른 요소와 상호 작용할 수 있도록 허용하는 워드 프로세서의 대화 상자.

주요 차이점:

  • 상호작용 차단:

    • 모달은 닫힐 때까지 기본 인터페이스와의 상호작용을 차단합니다.
    • 대화는 상호작용을 차단할 수도 있고 차단하지 않을 수도 있습니다. 모달 대화상자인지 비모달 대화상자인지에 따라 다릅니다.
  • 사용 사례:

    • 모달은 사용자가 계속하기 전에 모달의 내용에 집중해야 하는 중요한 결정, 경고 또는 작업에 사용됩니다.
    • 대화상자는 기본 인터페이스를 차단하거나 차단하지 않고 정보 표시, 양식 제출, 옵션 선택 등 다양한 상호 작용에 사용할 수 있습니다.

HTML의 Dialog 요소 소개

<대화상자> HTML은 모달과 대화 상자를 만드는 간단하고 효율적인 방법을 제공합니다. 이 요소는 매우 유연하여 콘텐츠와 스타일을 모두 사용자 정의할 수 있을 뿐만 아니라 즉시 접근성 이점을 제공합니다. 작동 방식과 이를 사용하여 웹 페이지에 효과적인 모달을 만드는 방법을 살펴보겠습니다.

기본 구조

<대화상자> 매우 간단합니다. 선택적 속성과 일부 관련 JavaScript 메소드가 있는 HTML 태그일 뿐입니다. 기본 사용 예를 확인하세요.

<dialog>
  <!-- Conteúdo do Dialog -->
</dialog>
로그인 후 복사
로그인 후 복사

기본적으로 대화상자는 숨겨져 있습니다. 이를 표시하려면 open 속성을 추가할 수 있지만 대화 상자 열기를 제어하려면 JavaScript show() 및 showModal() 메서드를 사용하는 것이 좋습니다.

<dialog open>
  <span>Você pode me ver agora!</span>
</dialog>
로그인 후 복사
로그인 후 복사

그러나 비모달 대화 상자가 생성되므로 open 속성을 직접 사용하는 것은 권장되지 않습니다. 대신 JavaScript 메소드를 사용해야 합니다.

const dialog = document.querySelector("dialog");
dialog.show(); // Abre um diálogo não-modal
dialog.showModal(); // Abre um diálogo modal
로그인 후 복사
로그인 후 복사

showModal() 메서드는 모달 대화 상자를 열고, show()는 비모달 대화 상자(팝업 유형)를 엽니다.

대화 상자 닫기

대화상자를 닫으려면 close() 메서드를 사용할 수 있습니다. 또한 대화 상자가 모달인 경우 Esc 키를 눌러 닫을 수 있습니다.

const dialog = document.querySelector("dialog");
dialog.close(); // Fecha o diálogo
로그인 후 복사
로그인 후 복사

자동 접근성 기능

<대화>의 큰 장점 접근성 기능을 자동으로 처리한다는 것입니다. 올바른 아리아 속성을 적용하고 포커스를 관리하므로 접근성이 뛰어난 앱을 더 쉽게 만들 수 있습니다.

대화 상자 요소 스타일 지정

<대화상자> 이미 브라우저에서 적용된 일부 기본 스타일이 제공되므로 쉽게 사용자 지정할 수 있습니다. 다음은 몇 가지 기본 CSS 속성을 사용하여 스타일이 지정된 대화 상자의 예입니다.

dialog {
  z-index: 10;
  margin-top: 10px;
  background: green;
  border: none;
  border-radius: 1rem;
}
로그인 후 복사

또한 ::backdrop 의사 요소를 사용하여 모달 배경의 스타일을 지정할 수 있습니다. 배경(모달 뒤 영역)을 수정하려면 다음 CSS를 적용하면 됩니다.

<dialog>
  <!-- Conteúdo do Dialog -->
</dialog>
로그인 후 복사
로그인 후 복사

이렇게 하면 웹사이트 디자인에 맞는 맞춤형 모달을 쉽게 만들 수 있습니다.

Dialog 요소의 고급 기능

  • 대화상자 내 양식 대화 상자 내에서 양식을 사용할 수 있습니다. 양식에 method="dialog" 속성을 설정하면 양식 데이터를 서버에 실제로 전송하지 않고 양식이 제출될 때 대화 상자가 자동으로 닫힙니다. 가장 흥미로운 점은 대화 상자를 다시 열 때 양식 데이터가 여전히 남아 있다는 것입니다.
<dialog open>
  <span>Você pode me ver agora!</span>
</dialog>
로그인 후 복사
로그인 후 복사
  • 취소 버튼 formmethod="dialog" 속성을 사용하면 양식을 제출하지 않고 대화 상자를 닫는 취소 버튼을 양식에 추가할 수 있습니다.
const dialog = document.querySelector("dialog");
dialog.show(); // Abre um diálogo não-modal
dialog.showModal(); // Abre um diálogo modal
로그인 후 복사
로그인 후 복사
  • 클릭하면 닫기 <대화상자> 기본적으로 이 동작이 없으므로 사용자가 대화 상자에서 클릭할 때 대화 상자를 닫는 클릭 이벤트 리스너를 쉽게 추가할 수 있습니다. 이를 구현하는 간단한 예는 다음과 같습니다.
const dialog = document.querySelector("dialog");
dialog.close(); // Fecha o diálogo
로그인 후 복사
로그인 후 복사

이 솔루션을 사용하면 모달 영역 외부를 클릭할 때 대화 상자를 닫을 수 있습니다. 이는 많은 모달에서 일반적인 동작입니다.


결론

<대화상자> HTML은 접근성에 중점을 두고 모달과 대화 상자를 구현하는 간단하면서도 강력한 방법을 제공합니다. 외부 라이브러리나 복잡한 구성 없이도 사용자 정의 모달을 쉽게 만들 수 있습니다. show(), showModal() 및 close()와 같은 메소드를 사용하면 대화 상자의 동작을 쉽게 제어할 수 있습니다.

또한 CSS를 사용하여 대화 상자와 배경의 스타일을 지정하는 기능을 사용하면 더욱 맞춤화할 수 있습니다. 클릭 시 모달을 닫거나 양식을 통합하는 등 몇 가지 추가 기능만 있으면 <대화상자> 웹사이트에 대화형 요소를 만드는 데 매우 유연하고 유용한 도구가 됩니다.


자세한 정보 및 예시: https://blog.webdevsimplified.com/2023-04/html-dialog/
https://dev.to/iam_timsmith/dialogs-vs-modals-is-there-a-difference-210k

위 내용은 모달 대 대화 상자의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿