亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

html5.2 dialog簡介詳解

2024-08-26 00:20:27
字體:
來源:轉載
供稿:網友

2017年12月24號, HTML5.2 標準固化,也代表著移動端進入 HTML5.3 規劃階段,雖然 HTML5.2 固化了,但內部的一些新規范,在移動端的瀏覽器中的支持性還有待提高,這里我們來看一個算是常用的新被納入標準的標簽吧,它就是 dialog 標簽。

1. 寫在前面

說起 dialog 標簽,可能很多人都比較陌生,畢竟這個標簽直到 HTML5.2 標準固定,也只是 chrome 的瀏覽器才支持的,那至于該標簽的用處,根據語義也可以很明顯的理解到,會話。

這里我們可能會想到的是, alert , confirm 等彈窗,是的,它們是同一個家族的,都是彈出框,接下來我們就簡單的看看, dialog 標簽的一些屬性與使用場景。

2. 標簽使用

<dialog open="">       <h2>Title</h2>     <p>Content</p></dialog>

既然是標簽,那么其實與我們常用的 div , p 等標簽一樣,如上面的示例代碼所示,其內部支持任意的其他元素。

這里,你可能會注意到,在上面的示例代碼中的 open 屬性,是的,這個是用來控制這個彈窗的顯示和隱藏的,當然,你也可以任性的使用 css 來控制,只是那樣在一些設備的輔助功能時(比如無障礙訪問,讀屏軟件等),就會出現異常了,所以建議還是使用標準中的顯示與隱藏功能。

3. 支持的默認方法

首先, dialog 標簽是 HTMLDialogElement 的一個示例,繼承自 HTMLElement ,所以,它與div這一的標簽是屬于同層次的標簽,唯一不同的是,它比div有更多的默認功能,這一小節,我們就來看看, dialog 有哪些默認的方法供我們使用。

var dialog = document.getElementById("dialog");// 假設頁面中,有一個id=dialog的dialog標簽// 關閉dialogdialog.close();// 以toast的形式顯示dialogdialog.show();// 以模態框的形式顯示dialogdialog.showModal();// dialog.close()調用時傳入的參數值dialog.returnVlaue;// dialog的顯示狀態dialog.open;

你可以自己先去示例中,操作一下,然后看看有哪些特色,然后再回來對比一下,接下來的總結:

1: close 方法,可以多次被調用,即便是隱藏狀態,也可以再次被調用。

2: close 可以傳入一個變量,這個變量必須是字符串,在 returnVlaue 中表現。

3: show 方法,也可以多次被調用,即便在隱藏狀態,不會有任何問題。

4: show 方法,不會更改 toast 的位置,彈出框原本在什么位置, show 方法調用之后,依然在原有的位置。

5: show 方法,顯示位置緊挨著前一個元素后面,居中,沒有背后的遮罩層, z-index 的顯示方式與 relative 不設置 z-index 的類似(如果在此之前,沒有調用過 showModal 的話)。

6: 如果調用過 showModal 后,那么 show 方法后,元素顯示在 showModal 顯示的位置,不會變動(即便內容高度變化了很多)。

7: 如果有兩個 dialog 元素,都調用 show 方法,在 html 結構中,后面的 dialog 會永遠覆蓋在前面的那個上層(不管那個 dialog 先調用了 show 方法)。

8: showModal 的顯示,背后會有遮罩層,顯示層級是瀏覽器 webview 級別的,怎么理解呢,你可以設置一個元素,級別非常高,在使用 showModal 顯示出 dialog 屬性后, dialog 都是在最前面的,這一點特別適合做模態框,肯定不會在彈出框出現之后,出現層級混亂的情況。

9: showModal 只能調用一次,這里的一次是說,如果 dialog 在顯示狀態,那么在再次調用 showModal ,就會報錯,并且不能直接執行,或者說,只要 open 屬性存在的情況下,再次調用,都會報錯,所以還是使用默認的 open 屬性來做 dialog 的顯示隱藏更好。

10: 如果頁面上有兩個 dialog 元素,都在調用 showModal 方法的話,不論他們在 HTML 中的結構,后調用的 dialog 的層級會高于之前調用的 dialog 的層級。

11: dialog.returnVlaue 的取值,是 dialog.close(string) 調用時傳入的值,只支持字符串,只有在 dialog 的顯示的情況下,調用 dialog.close 傳入的值,才有效。

12: 如果一直沒有在 close 中傳值,那么 returnVlaue 的值為空,如果某次傳值 dialog.close("1") ,再下次 show 之后, dialog.close() 關閉, returnVlaue 依然等于“1”。

13: open 的返回值是: true/false 。

4. 支持的默認事件

dialog 還有一個好處就是,它支持出 click 等基礎事件之外的,額外兩個針對于 dialog 的特殊事件:

var dialog = document.getElementById("dialog");// 假設頁面中,有一個id=dialog的dialog標簽// 當調用close方法時dialog.onclose = function(){};// 當在pc端按下esc按鍵時。不過在chrome版本之后,好像不管用了。dialog.oncancel = function(){};

現在來看一個示例: dialog 事件示例展示。

也有幾個問題,這里來列舉一下:

1: 只要調用 dialog.close() 來隱藏的 dialog ,才能觸發 onclose 事件。

2: cancel 事件觸發之后,必定會繼續觸發 close 事件, chrome64 版本之后, cancel 的觸發,不是 esc 按鍵了。

3: 如果有多種關閉 dialog 的按鈕,那么在每次調用 close 的時候傳入不同的值,在 close 事件的回調里面,使用 returnVlaue 的取值,來判斷,是哪個按鈕用來觸發的關閉事件。

5. 其他

前面把 dialog 的一些表現進了說明,可能有不全,不準確的情況,也可能隨著時間的推移,有更新的特性出現,歡迎提出補充。

在看前面的示例時,我們也看到了一下不足的地方,比如:樣式特別丑,關于這點,我們可以完全使用CSS把樣式reset掉,不影響語義,和其他的任何東西,放心重構就可以了。

這里只是想說一下, dialog 的表現,所以就不做這些了。

6. 總結

dialog 畢竟屬于彈窗對話的語義化標簽,并且有一些獨有的優勢(比如 webview 層級的高度),雖然現在只是chrome支持,但對于以后的使用,依然是很看好的,甚至現在也可以自己兼容一下,在其他瀏覽器,自己去實現一套 dialog 的機制(也許已經有這套實現方案了,這里就不去找了)。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。

 

注:相關教程知識閱讀請移步到HTML教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品女人久久久久久| 97国产精品久久| 国产成人97精品免费看片| 日韩欧美在线免费| 精品国产拍在线观看| 国产午夜精品美女视频明星a级| 欧美日韩亚洲天堂| 日韩av网址在线观看| 亚洲男人的天堂在线| 国模视频一区二区三区| 亚洲精品国产精品国产自| 97色在线观看| 国产精品视频yy9099| 欧美在线视频一区二区| 性色av香蕉一区二区| 日韩av电影中文字幕| 欧美午夜女人视频在线| 欧美激情一二区| 色青青草原桃花久久综合| 欧亚精品中文字幕| 91色在线观看| 日本欧美国产在线| 成人免费观看a| 亚洲国产精品人久久电影| 奇米影视亚洲狠狠色| 97成人精品视频在线观看| 黑人与娇小精品av专区| 丝袜情趣国产精品| 国产精品美乳一区二区免费| 精品呦交小u女在线| 欧美尺度大的性做爰视频| 日韩免费在线电影| 欧美日韩另类视频| 日本精品在线视频| 91久久精品日日躁夜夜躁国产| 久久成人亚洲精品| 国产精品视频区1| 国产精品高潮在线| 日韩电影免费在线观看| 亚洲欧美中文字幕| 日本在线精品视频| 在线观看日韩欧美| 亲爱的老师9免费观看全集电视剧| 欧美专区在线视频| 欧美激情按摩在线| 中文字幕九色91在线| 日韩视频在线免费| 91超碰caoporn97人人| 不卡伊人av在线播放| 久久亚洲精品网站| 精品欧美aⅴ在线网站| 最近2019年中文视频免费在线观看| 久久久99免费视频| 亚洲女人天堂网| 69视频在线免费观看| 亚洲精品720p| 亚洲天堂影视av| 国产一区二区激情| 91九色视频导航| 91影院在线免费观看视频| 97国产精品视频人人做人人爱| 国产亚洲一区二区精品| 91精品国产综合久久香蕉最新版| 亚洲小视频在线观看| 国产精品伦子伦免费视频| 91国产视频在线播放| 夜夜嗨av色一区二区不卡| 丁香五六月婷婷久久激情| 午夜精品福利视频| 4k岛国日韩精品**专区| 国内精品久久久久| 国产一区欧美二区三区| 成人福利免费观看| 欧美自拍大量在线观看| 日韩电影中文字幕在线观看| 欧美极品欧美精品欧美视频| 亚洲免费视频观看| 亚洲一级黄色av| 亚洲视频日韩精品| 午夜精品一区二区三区在线| 日韩高清电影免费观看完整| 亚洲午夜色婷婷在线| 欧美影院成年免费版| 91久久精品久久国产性色也91| 国产这里只有精品| 91国语精品自产拍在线观看性色| 国产成人小视频在线观看| 亚洲天堂av在线免费| 欧美在线视频在线播放完整版免费观看| 亚洲欧美一区二区精品久久久| 亚洲成av人乱码色午夜| 国模视频一区二区三区| 欧美激情精品久久久久久变态| 国产综合久久久久| 日韩精品高清在线| 国产一区二区三区视频在线观看| 国产99视频精品免视看7| 国产91精品久久久久久久| 91在线观看免费网站| 神马国产精品影院av| 国产精品海角社区在线观看| 国产美女高潮久久白浆| 久久久噜噜噜久久中文字免| 青青在线视频一区二区三区| 色99之美女主播在线视频| 欧美性视频精品| 中文字幕欧美在线| 国产深夜精品福利| 久久久精品久久久久| 中文字幕亚洲一区二区三区五十路| 亚洲最大成人网色| 原创国产精品91| 久久久久久久av| 欧美电影免费观看大全| 欧美极品少妇xxxxⅹ裸体艺术| 久久人人爽亚洲精品天堂| 26uuu亚洲国产精品| 亚洲精品综合精品自拍| 久久国产精彩视频| 欧美国产日韩xxxxx| 精品国产欧美成人夜夜嗨| 亚洲白虎美女被爆操| 久久久久久久一| 久久99精品视频一区97| 亚洲精品日产aⅴ| 一区二区三区天堂av| 国产男女猛烈无遮挡91| 精品久久久香蕉免费精品视频| 日韩电影免费在线观看中文字幕| 成人www视频在线观看| 日韩高清免费在线| 国产精品视频白浆免费视频| 久久久中精品2020中文| 亚洲免费小视频| 欧美电影免费观看高清完整| 亚洲第一精品夜夜躁人人躁| 欧美在线亚洲在线| 国产精品福利在线观看网址| 最近中文字幕2019免费| 亚洲综合色av| 国产亚洲精品va在线观看| 国产精品美女在线观看| 中文字幕免费精品一区| 国产综合久久久久| 欧美乱妇40p| 欧美综合在线第二页| 在线观看久久av| 亚洲午夜未满十八勿入免费观看全集| 在线观看日韩专区| 91精品国产综合久久香蕉的用户体验| 久久久久久国产三级电影| 日韩国产精品亚洲а∨天堂免| 欧美人与性动交a欧美精品| 国产精品成人一区二区三区吃奶| 亚洲欧美日韩天堂| 国产视频亚洲视频| 国产精品99久久久久久白浆小说| 国内偷自视频区视频综合| 久久伊人色综合| 国产精品三级久久久久久电影| 日韩有码在线播放| 欧美日韩另类在线| 91精品国产九九九久久久亚洲| 精品久久中文字幕|