HTML 5.2の新しいオリジナル要素を見てみましょう
原文住所:Meet the New Dialog Element作者:Keith
1ヶ月も前には
これは
ここで、
ページの上に表示され、コンテンツの上に表示されます.デフォルトでは、ページの上に表示されます.
きほんそうさ
もう1つの方法は
ブラウザのサポートとPolyfill
現在、
上の図はcaniuseです.com
幸いなことに、dialog-polyfillを使用してこのような気まずい状況を緩和することができます.それは
ただし、使用する場合、各
また、ブラウザの元の動作に取って代わるものではありません.
スタイル
モードボックスのオンとオフは基本ですが、これは十分ではありません.
いブラウザとの のため、
に、
に、いくつかの
ステップアップオペレーション
に、
もちろん、 できる のイベントもあります. も なイベントは、
また、
もちろん、これは ではありませんが、それは かに で、もしあなたがもっと い があれば、コメントの で することを します.
まとめ
こんなにたくさん ったのに、 で に したほうがいいです. もdemoを ってくれました. にしてください.
1ヶ月も前には
HTML 5.2
正式にはW3C
の推奨基準(REC
)では、新しいオリジナルモードダイアログボックス要素が提案されています.
,一見すると、新しい要素のように感じられるかもしれませんが、作者が最近遊んでいるとき、それは確かに期待と面白い要素であることに気づきました.ここで共有します.これは
の最も基本的な例です.
ここで、
open
属性は、dialog
が表示されていることを示します.open
がない場合、dialog
は非表示になります.JavaScipt
を使用して表示できます.この場合、dialog
は次のようにレンダリングされます.ページの上に表示され、コンテンツの上に表示されます.デフォルトでは、ページの上に表示されます.
きほんそうさ
にはいくつかの
と
があります.JavaScipt
要素を簡単に処理できます.最も多く使用される可能性は
と
です.const modal = document.querySelector('dialog');
// makes modal appear (adds `open` attribute)
modal.showModal();
// hides modal (removes `open` attribute)
modal.close();
dialog
を使用してshowModal()
を開くと、close()
の周囲にシャドウが追加され、showModal()
要素とのユーザーの相互作用が阻止されます.デフォルトでは、シャドウはdialog
で、dialog
を使用して変更できます. diglog
を押すと
を閉じることができ、CSS
をトリガーするボタンを提供することもできます.もう1つの方法は
Esc
であり、dialog
を表示することもできるが、close()
とは異なり、ユーザーは非show()
要素と対話することができる.ブラウザのサポートとPolyfill
現在、
dialog
サポートshowModal()
のみ、dialog
はchrome
で
を許可しなければ正常に使用できません.Firefox
は近い将来サポートされると思います.上の図はcaniuseです.com
about:config
特性主流ブラウザの互換性について幸いなことに、dialog-polyfillを使用してこのような気まずい状況を緩和することができます.それは
dom.dialog_element.enabled
の動作を提供するだけでなく、デフォルトのスタイルも含まれています.私たちはFirefox
を使用してインストールすることもできます.また、dialog
ラベルを使用して参照することもできます.現在、JavaScript
およびそれ以上のバージョンを含む各主流ブラウザがサポートされています.ただし、使用する場合、各
npm
は次の文で初期化する必要があります.dialogPolyfill.registerDialog(dialog);
また、ブラウザの元の動作に取って代わるものではありません.
スタイル
モードボックスのオンとオフは基本ですが、これは十分ではありません.
はスタイルがあまりきれいではありません.そのため、スタイルをカスタマイズする があります.また、 IE 9
を することで、dialog
の ろ のスタイルを することができます.dialog {
padding: 0;
width: 478px;
text-align: center;
vertical-align: middle;
border-radius: 5px;
border: 0;
}
dialog::backdrop {
background-color: rgba(0, 0, 0, 0.1);
}
いブラウザとの のため、
を する 、::backdrop
は しませんが、
はpolyfill
の ろに::backdrop
を します.dialog + .backdrop {
background-color: rgba(0, 0, 0, 0.4);
}
に、
polyfill
にもっと くの を する です. にはdialog
,.backdrop
とbialog
が まれています.
に、いくつかの
header
を すると、あなたが むものを に れることができます.ステップアップオペレーション
に、
body
から のユーザの を することが ましい.footer
を じると、CSS
にdialog
を し、dialog
のclose()
で できます.modal.close('Accepted');
console.log(modal.returnValue); // logs `Accepted`
もちろん、 できる のイベントもあります. も なイベントは、
string
( じるdialog
のときにトリガーされる)、またreturnValue
(ユーザーがclose
を じるdialog
のときにトリガーされる)です.また、
cancel
の のシャドウをクリックして じることも できるかもしれません.もちろん、これも があります.クリックシャドウはEsc
のクリックイベントをトリガーし、dialog
のサブ がdialog
を めている は、dialog
のクリックを することで、dialog
がdialog
である に じることができます.modal.addEventListener('click', (event) => {
if (event.target === modal) {
modal.close('cancelled');
}
});
もちろん、これは ではありませんが、それは かに で、もしあなたがもっと い があれば、コメントの で することを します.
まとめ
こんなにたくさん ったのに、 で に したほうがいいです. もdemoを ってくれました. にしてください.