이 문서는 HTML5의 대화 상자 요소에 대한 자세한 설명(코드 예제)을 제공합니다. 이는 특정 참조 값을 가지고 있으므로 도움이 될 수 있습니다.
대화 상자(모달 상자, 플로팅 레이어라고도 함)는 웹 프로젝트에서 사용자 상호 작용의 중요한 부분입니다. 가장 일반적인 상자는 js의 alert(), verify()
이지만 이 대화 상자는 프레임이 아름답지 않고 스타일을 맞춤화할 수 없기 때문에 개발 과정에서 일반적으로 자신의 필요에 따라 휠을 제작하거나 타사를 사용합니다. alert(),confirm()
,但是这个对话框的不美观,也不能自定义样式,所以在开发的过程中,一般根据自己自己的需求造轮子或者使用第三方的。
对话框的组成
常见的弹出框形式:
位置:屏幕的左上角,右上角,左下角,右下角,垂直居中等
大小:定宽定高,定宽不定高,不定宽不定高等
开发中的对话框形式就是位置和大小随机组合的一种情况。
但是有一种情况(不定宽高的垂直居中)不易实现(可以使用display:table或css3的translate或flex实现),具体可参考水平垂直居中布局
上面的对话框包含内容的容器,还有一个是对话框下面的遮罩层(mask),遮罩层是用户触发弹出框后,形成的一个对话框与页面主体的分割图层,它的存在可以给用户一个更明显的视觉差效果,同时也起到避免用户触发对话框后的其他不必要的页面主体操作,从而产生更有的用户体验。
存在问题
虽然,有很多对话框的轮子供我们选择,但是我们面临着各种各样的问题。
到底选择哪一种对话框(对于有选择综合症的人来说一个头疼的问题)
可用性(api的简单与否,是否依赖了其他第三方的库)
可扩展性
浏览器的兼容性支持
那么,有没有一个简单的方法来做做一个对话框呢?当然有,我们可以使用HTML5的 dialog
元素。
HTML5(dialog)
<dialog> <h2 id="Hello-world"> Hello world.</h2> </dialog>
很简单,我们使用上面的代码就可以做一个弹出内容为‘Hello world.’ 的对话框。
控制对话框的显示/隐藏也很容易,添加 open
属性表示显示,去除为隐藏。当然,我们也可以通过DOM接口来控制 dialog
的显隐(show(), close())
对话框下面的遮罩层,我们可以使用 ::backgrop
伪元素,而它的激活,我们需要使用 showModal()
这个DOM的API,::backgrop
的特性是它的位置在dialog之下,在任何 z-index
之上。
使用 showModal()
不仅可以让遮罩层显示,dialog容器也显示,所以用到 ::backdrop
的时候,可以用 showModal()
代替 show()
这个API;如果按键盘 ESC
键将关闭弹出层,当然你一可以使用 close()
这个DOM API。
我们可以设置 ::backdrop
这个图层为半透明图层,代码如下:
dialog::backdrop { background-color: rgba(0, 0, 0, 0.75); }
除了我们常见的提示信息的弹出层外,还有一类比较使用的是带表单的弹出层。
带表单的弹出层
我们可以使用HTML5的dialog元素结合form元素来做这些弹出层吗?
答:可以
我们怎么做才能让form元素和dialog元素紧密的结合起来呢?
答:我们只需要在dialog元素中添加 method="dialog"
这个属性即可,这样就可以将button元素的属性 value
- 🎜어떤 대화 상자를 선택할지(선택 증후군이 있는 사람에게는 골치 아픈 문제)🎜
- 🎜사용성(API가 간단한지 여부, 다른 타사 라이브러리에 의존하는지 여부)🎜
- 🎜Extensibility🎜
- 🎜브라우저 호환성 지원🎜
dialog
요소를 사용할 수 있습니다. 🎜🎜HTML5(dialog)🎜<dialog> <form> <p>确定 or 取消</p> <button>确定</button> <button>取消</button> </form> </dialog> <script> var dialog = document.querySelector('dialog') dialog.showModal() dialog.addEventListener('close', function(event) { console.log(dialog.returnValue) }) </script>🎜위 코드를 사용하면 'Hello world.'라는 내용의 팝업 대화 상자를 만들 수 있습니다. 🎜🎜대화 상자의 표시/숨기기를 제어하는 것도 쉽습니다.
open
속성을 추가하면 표시되고, 제거하면 숨겨집니다. 물론 DOM 인터페이스를 통해 dialog
의 가시성(show(), close())을 제어할 수도 있습니다. 대화 상자 아래 마스크 레이어의 경우 ::backgrop을 사용할 수 있습니다.
의사 요소를 활성화하려면 showModal()
의 DOM API를 사용해야 합니다. ::backgrop
의 특징은 위치가 다음과 같다는 것입니다. 대화상자 아래의 z-index
위에 있습니다. 🎜🎜showModal()
을 사용하면 마스크 레이어뿐만 아니라 대화 상자 컨테이너도 표시할 수 있으므로 ::backdrop
을 사용할 때 showModal()을 사용할 수 있습니다.
는 show()
API를 대체합니다. 키보드의 ESC
키를 누르면 팝업 레이어가 닫힙니다. 물론 를 사용할 수 있습니다. >close()
이 DOM API입니다. 🎜🎜::backdrop
을 반투명 레이어로 설정할 수 있습니다. 코드는 다음과 같습니다. 🎜var dialog = document.querySelector('dialog') dialog.showModal() dialog.addEventListener('close', function(event) { alert(dialog.returnValue) })🎜 프롬프트 정보가 포함된 일반적인 팝업 레이어 외에도 유형이 있습니다. 양식으로. 🎜🎜양식이 포함된 팝업 레이어🎜🎜양식 요소와 결합된 HTML5 대화 상자 요소를 사용하여 이러한 팝업 레이어를 만들 수 있나요? 🎜🎜답변: 예🎜🎜양식 요소와 대화 상자 요소를 어떻게 밀접하게 결합할 수 있나요? 🎜🎜답변:
method="dialog"
속성을 대화 상자 요소에 추가하기만 하면 버튼 요소의 value
속성 값이 전달될 수 있습니다. 대화 상자 요소에. 🎜<dialog> <form method="dialog"> <p>确定 or 取消</p> <button type="submit" value="yes">确定</button> <button type="submit" value="no">取消</button> </form></dialog>🎜demo🎜
dialog::backdrop { background: rgba(0, 0, 0, 0.6) }rrreeerrreee🎜브라우저 호환성🎜🎜비교적으로 사용하기 쉬운 HTML5이지만 아직 호환성 문제가 남아 있습니다. Firefox에서는 실험적인 기능이지만 IE, Edge, Safari에서는 더 잘 지원됩니다. 잘 지원하지 않고, iOS도 지원하지 않고, 안드로이드도 잘 지원하지 않습니다. 안드로이드 6 이상에서만 지원됩니다. 자세한 내용은 caniuse🎜🎜를 참조하세요. 그러면 이전 버전의 브라우저도 HTML5 대화 상자를 지원할 수 있나요? 우선 우리가 생각하는 것은 es6의 새로운 기능을 지원하는 babel-polyfill처럼 대화 상자를 지원하는 폴리필이 있는지 여부입니다. 실제로 다양한 버전의 vue와 a11y-dialog를 제공하는 오픈 소스 프로젝트가 있습니다. 각각 반응한다. 🎜🎜🎜
위 내용은 HTML5의 대화 상자 요소에 대한 자세한 설명(코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

H5는 다양한 새로운 기능과 기능을 제공하여 프론트 엔드 개발 기능을 크게 향상시킵니다. 1. 멀티미디어 지원 : 미디어를 포함하고 요소를 포함하여 플러그인이 필요하지 않습니다. 2. 캔버스 : 요소를 사용하여 2D 그래픽 및 애니메이션을 동적으로 렌더링합니다. 3. 로컬 스토리지 : LocalStorage 및 SessionStorage를 통해 지속적인 데이터 저장을 구현하여 사용자 경험을 향상시킵니다.

H5 및 HTML5는 다른 개념입니다. HTML5는 새로운 요소 및 API를 포함하는 HTML의 버전입니다. H5는 HTML5를 기반으로 한 모바일 애플리케이션 개발 프레임 워크입니다. HTML5는 브라우저를 통해 코드를 구문 분석하고 렌더링하는 반면 H5 응용 프로그램은 컨테이너를 실행하고 JavaScript를 통해 기본 코드와 상호 작용해야합니다.

HTML5의 주요 요소에는 최신 웹 페이지를 작성하는 데 사용되는 ,,,,, 등이 포함됩니다. 1. 헤드 컨텐츠 정의, 2. 링크를 탐색하는 데 사용됩니다. 3. 독립 기사의 내용을 나타내고, 4. 페이지 내용을 구성하고, 5. 사이드 바 컨텐츠 표시, 6. 바닥 글을 정의하면, 이러한 요소는 웹 페이지의 구조와 기능을 향상시킵니다.

HTML5와 H5 사이에는 차이가 없으며, 이는 HTML5의 약어입니다. 1.HTML5는 HTML의 다섯 번째 버전으로 웹 페이지의 멀티미디어 및 대화식 기능을 향상시킵니다. 2.H5는 종종 HTML5 기반 모바일 웹 페이지 또는 응용 프로그램을 참조하는 데 사용되며 다양한 모바일 장치에 적합합니다.

HTML5는 W3C에 의해 표준화 된 하이퍼 텍스트 마크 업 언어의 최신 버전입니다. HTML5는 새로운 시맨틱 태그, 멀티미디어 지원 및 양식 향상을 도입하여 웹 구조, 사용자 경험 및 SEO 효과를 개선합니다. HTML5는 웹 페이지 구조를 더 명확하게하고 SEO 효과를 더 좋게하기 위해, 등 등과 같은 새로운 시맨틱 태그를 소개합니다. HTML5는 멀티미디어 요소를 지원하며 타사 플러그인이 필요하지 않으므로 사용자 경험을 향상시키고 속도를로드합니다. HTML5는 양식 함수를 향상시키고 사용자 경험을 향상시키고 양식 검증 효율성을 향상시키는 새로운 입력 유형을 도입합니다.

깨끗하고 효율적인 HTML5 코드를 작성하는 방법은 무엇입니까? 답은 태그, 구조화 된 코드, 성능 최적화 및 일반적인 실수를 피함으로써 일반적인 실수를 피하는 것입니다. 1. 코드 가독성 및 SEO 효과를 향상시키기 위해 시맨틱 태그 등을 사용하십시오. 2. 적절한 계약과 의견을 사용하여 코드를 구성하고 읽을 수 있도록하십시오. 3. CDN 및 압축 코드를 사용하여 불필요한 태그를 줄임으로써 성능을 최적화합니다. 4. 태그가 닫히지 않은 것과 같은 일반적인 실수를 피하고 코드의 유효성을 확인하십시오.

H5는 멀티미디어 지원, 오프라인 스토리지 및 성능 최적화로 웹 사용자 경험을 향상시킵니다. 1) 멀티미디어 지원 : H5 및 요소는 개발을 단순화하고 사용자 경험을 향상시킵니다. 2) 오프라인 스토리지 : WebStorage 및 IndexedDB는 오프라인으로 사용하여 경험을 향상시킵니다. 3) 성능 최적화 : 웹 워즈 및 요소는 성능을 최적화하여 대역폭 소비를 줄입니다.

HTML5 코드는 태그, 요소 및 속성으로 구성됩니다. 1. 태그는 컨텐츠 유형을 정의하고 다음과 같은 각도 브래킷으로 둘러싸여 있습니다. 2. 요소는 컨텐츠와 같은 시작 태그, 내용 및 엔드 태그로 구성됩니다. 3. 속성 시작 태그에서 키 값 쌍을 정의하고 기능을 향상시킵니다. 웹 구조를 구축하기위한 기본 단위입니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경
