モーダルとダイアログ

Linda Hamilton
リリース: 2024-11-26 06:48:10
オリジナル
267 人が閲覧しました

Modal vs Dialog

モーダルとダイアログの違いを知っていますか?

いいえ?!調べてみましょう

モーダルとダイアログの違い

ユーザー インターフェイス (UI) デザインでは、「モーダル」と「ダイアログ」という用語はよく同じ意味で使用されますが、意味は異なります。

モーダル:

  • 定義: モーダルは、アプリケーション内に一時的な中断状態を作成するユーザー インターフェイス要素であり、基礎となるコンテンツまたはアプリケーションに戻る前に、ユーザーがモーダルと対話する必要があります。
  • 主な機能: 閉じられるか操作されるまで、インターフェースの残りの部分との操作をブロックします。ユーザーにモーダルのコンテンツに集中してアクションを実行するように強制します (決定の確認やフォームへの記入など)。
  • 一般的な使用例:
    • 確認リクエスト (例: 「これを削除してもよろしいですか?」)
    • アラートまたはエラー メッセージ
    • 認証画面 (ログイン画面など)
    • 続行する前に重要なオプションを選択します (例: 「変更を保存しますか?」)
  • : 「変更を保存しますか?」多くのアプリケーションでは、他のタスクを続行する前に「はい」、「いいえ」、または「キャンセル」をクリックする必要があります。

ダイアログ:

  • 定義: 「ダイアログ」とは、ユーザーとの対話を可能にするユーザー インターフェイス要素を指す広義の用語で、通常は情報交換や意思決定が含まれます。モーダルである場合とそうでない場合があります。
  • 主な機能: インターフェイスの残りの部分との対話を必ずしもブロックするわけではありません。ダイアログはモーダルにすることもできますが、非モーダルにすることもできます。つまり、ダイアログが開いている間、ユーザーはアプリケーションの他の部分と対話し続けることができます。
  • 一般的な使用例:
    • ユーザー入力のリクエスト (検索ダイアログや設定など)
    • 情報の表示 (例: エラーメッセージ、アラート)
    • 複雑なフォームまたは複数ステップのプロセス
  • : ワード プロセッサのダイアログ ボックスは、特定のパラメータ (フォント サイズや書式設定など) を要求しますが、非モーダル ダイアログの場合はアプリケーションの他の要素と対話できます。

主な違い:

  • インタラクションのブロック:

    • モーダルは、閉じられるまでメインインターフェイスとの対話をブロックします。
    • 対話は対話をブロックする場合とブロックしない場合があります。それはモーダル ダイアログであるか非モーダル ダイアログであるかによって異なります。
  • ユースケース:

    • モーダルは、続行する前にユーザーがモーダルのコンテンツに集中する必要がある重要な決定、アラート、またはアクションに使用されます。
    • ダイアログは、メイン インターフェースをブロックするかどうかに関係なく、情報の表示、フォームの送信、オプションの選択など、さまざまな操作に使用できます。

HTML の Dialog 要素の概要

of HTML は、モーダルとダイアログ ボックスを作成するためのシンプルかつ効率的な方法を提供します。この要素は非常に柔軟であり、すぐにアクセシビリティの利点を提供するだけでなく、コンテンツとスタイルの両方をカスタマイズできます。これがどのように機能するのか、またそれを使用して Web ページに効果的なモーダルを作成する方法を見てみましょう。

基本構造

これは非常に単純です。これは、オプションの属性といくつかの関連する 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
ログイン後にコピー
ログイン後にコピー

自動アクセシビリティ機能

の大きな利点は、アクセシビリティ機能が自動的に処理されるということです。正しい aria 属性を適用し、フォーカスを管理することで、アクセシブルなアプリの作成が容易になります。

ダイアログ要素のスタイル設定

はブラウザーによって適用されるいくつかのデフォルトのスタイルがすでに付属しており、カスタマイズは簡単です。以下は、いくつかの基本的な CSS プロパティを使用してスタイル設定されたダイアログの例です:

dialog {
  z-index: 10;
  margin-top: 10px;
  background: green;
  border: none;
  border-radius: 1rem;
}
ログイン後にコピー

また、::backdrop 疑似要素を使用してモーダル背景のスタイルを設定することもできます。背景 (モーダルの背後の領域) を変更するには、次の CSS を適用できます:

<dialog>
  <!-- Conteúdo do Dialog -->
</dialog>
ログイン後にコピー
ログイン後にコピー

これにより、Web サイトのデザインに合わせたカスタム モーダルを簡単に作成できます。

ダイアログ要素の高度な機能

  • ダイアログ内のフォーム ダイアログ内でフォームを使用できます。フォームに 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
ログイン後にコピー
ログイン後にコピー

このソリューションにより、モーダル領域の外側をクリックしたときにダイアログを閉じることができます。これは多くのモーダルで一般的な動作です。


結論

of HTML は、アクセシビリティに重点を置き、モーダルとダイアログ ボックスを実装するためのシンプルかつ強力な方法を提供します。外部ライブラリや複雑な構成を必要とせずに、カスタム モーダルを簡単に作成できます。 show()、showModal()、close() などのメソッドを使用すると、ダイアログの動作を簡単に制御できます。

さらに、CSS を使用してダイアログとその背景をスタイル設定できるため、さらにカスタマイズしやすくなります。クリックするとモーダルを閉じる、フォームを統合するなど、いくつかの追加機能を追加するだけで、<ダイアログ>は、Web サイト上にインタラクティブな要素を作成するための非常に柔軟で便利なツールになります。


詳細と例: https://blog.webdevsimplified.com/2023-04/html-dialog/
https://dev.to/iam_timsmith/dialogs-vs-modals-is-there-a-difference-210k

以上がモーダルとダイアログの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート