W3C HTML 5.2 规范中, 有一节 介绍该版本引入的修改,我综合来自 《What’s New in HTML 5.2?》 这篇文章的描述,在此列举对我来说比较重要的部分。
新特性
原生 <dialog>
元素
对话框在平时开发中,使用较为频繁,HTML 5.2 规范提供了 <dialog>
元素来创建对话框。
<dialog>
元素默认是隐藏的。
<!-- 默认是隐藏的 --> <dialog> <h2>Dialog Title</h2> <p>Dialog content and other stuff will go here</p> </dialog>
添加 open
属性即可显示。
<dialog open>
HTMLDialogElement 是 <dialog>
的底层元素表示,提供了 show()
、 close()
、 showModal()
方法,控制对话框的显隐。
<button id="open">Open Dialog</button> <button id="close">Close Dialog</button> <dialog id="dialog"> <h2>Dialog Title</h2> <p>Dialog content and other stuff will go here</p> </dialog> <script> const dialog = document.getElementById("dialog"); document.getElementById("open").addEventListener("click", () => { dialog.show(); }); document.getElementById("close").addEventListener("click", () => { dialog.close(); }); </script>
show()
与 showModal()
不同之处在于, showModal()
创建是一个模态框,打开时默认不能操作背后页面里的内容;而 show()
是以弹框形式显示的。
allowpaymentrequest
属性
现在可以为 <iframe>
添加 allowpaymentrequest
属性的方式,允许 <iframe>
内部网页使用 Payment Request API 。
<iframe allowpaymentrequest>
rel="apple-touch-icon"
我们使用 <link rel="icon">
指定网页 icon,除此之外它还支持使用 sizes
属性,定义不同的尺寸的 icon,供浏览器在显示是择优显示。
<link rel="icon" sizes="16x16" href="path/to/icon16.png"> <link rel="icon" sizes="32x32" href="path/to/icon32.png">
HTML 5.2 之前,苹果 iOS 设备并不支持 <link rel="icon">
的 sizes
属性,而是使用 apple-touch-icon rel
来支持在自家设备上显示网页或安装网页应用(比如 PWA)时使用的 icon。
<link rel="apple-touch-icon" href="/example.png">
现在规范承认了 apple-touch-icon
这个 rel
值,并且支持在这个 <link rel="apple-touch-icon">
上设置 sizes
属性。
<link rel="apple-touch-icon" sizes="16x16" href="path/to/icon16.png"> <link rel="apple-touch-icon" sizes="32x32" href="path/to/icon32.png">
新的有效实践
多个 <main> 标签
HTML 5.2 之前,一个页面只能存在一个 <main>
标签,用来表示某个页面独一无二的主题内容。不过,从 HTML 5.2 版本开始,允许一个页面中同时存在多个 <main>
标签,不过只能有一个显示的,其他都要用 hidden
属性隐藏。
<main>...</main> <main hidden>...</main> <main hidden>...</main>
注意,其他不显示的 <main>
都要使用 hidden
属性隐藏,使用 display: none;
或 visibility: hidden;
的方式的隐藏都是无效的。
<body> 内 <style>
<style>
之前都是只能在 <head>
内定义的,不过随着 component-ized 开发模式的增长,将组件样式就近写在组件结构旁边的模式开始流行起来。
HTML 5.2 允许在 <body>
内使用 <style>
标签,就近定义结构样式。
<body> <p>I’m cornflowerblue!</p> <style> p { color: cornflowerblue; } </style> <p>I’m cornflowerblue!</p> </body>
但最好还是不要这样做,把样式写在 中是更推荐的做法。规范中提到:
A style element should preferably be used in the head of the document. The use of style in the body of the document may cause restyling, trigger layout and/or cause repainting, and hence, should be used with care.
即 <body>
内的 <style>
可能会导致之前元素的布局改变,令页面发生重绘。所以尽量避免使用。
<legend> 中可使用标题元素
<legend>
用在 <fieldset>
标签中作标题使用, <fieldset>
则用在 <form>
中,为表单域编组。
下面是一个例子:
<!-- See: https://www.w3schools.com/tags/tag_fieldset.asp --> <form action="/action_page.php"> <fieldset> <legend>Personalia:</legend> <label for="fname">First name:</label> <input type="text" id="fname" name="fname"><br><br> <label for="lname">Last name:</label> <input type="text" id="lname" name="lname"><br><br> <label for="email">Email:</label> <input type="email" id="email" name="email"><br><br> <label for="birthday">Birthday:</label> <input type="date" id="birthday" name="birthday"><br><br> <input type="submit" value="Submit"> </fieldset> </form>
HTML 5.2 之前, <legend>
中只能使用纯文本,HTML 5.2 开始,可以使用标题元素了。
<fieldset> <legend><h2>Basic Information</h2></legend> <!-- Form fields for basic information --> </fieldset> <fieldset> <legend><h2>Contact Information</h2></legend> <!-- Form fields for contact information --> </fieldset>
移除特性
<keygen>
、<menu>
和<menuitem>
元素- 文本
<input>
的inputmode
和dropzone
属性 widow.showModalDialog()
方法
新的无效实践
<p>
中的无效内容
以下三类元素不能作为 <p>
段落的内容。
- 行内块、表格元素(Inline blocks、inline tables)
- 浮动元素(floated)
- 定位元素(positioned block-level elements)
strict doctype
HTML4 和 XHTML1 的严格文档类型声明(strict doctype)不再是有效 HTML。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 英雄联盟六个龙魂是哪六个 英雄联盟六个龙魂介绍一览
- 《忆蚀》Subliminal:揭秘后室之谜,路知行献声Weplay文化展
- 初始之部制作人气漫画改编游戏《我家大师兄脑子有坑》参展2024WePlay
- 《异环》「奇点测试」定档11.28 超自然都市轻喜剧即将放送!
- 16层乐队.2024-大快朵颐【摩登天空】【FLAC分轨】
- 群星.1988-电视金曲巡礼【EMI百代】【WAV+CUE】
- 群星.1992-电视金曲巡礼VOL.2【EMI百代】【WAV+CUE】
- 廖昌永《情缘HQ》头版限量[低速原抓WAV+CUE]
- 蔡琴《老歌》头版限量编号MQA-24K金碟[低速原抓WAV+CUE]
- 李嘉《国语转调》3CD[WAV+CUE]
- 谭咏麟《爱的根源 MQA-UHQCD》2022头版限量编号 [WAV+CUE][1G]
- 江洋 《江洋原创琵琶作品专辑》[320K/MP3][118.08MB]
- 江洋 《江洋原创琵琶作品专辑》[FLAC/分轨][228.33MB]
- 《战舰世界》语音包文件夹位置介绍
- 《CSGO》送好友皮肤方法介绍