本文中,我列出了十个我过去没用过的HTML5功能,但现在发现它们很有用,废话不多说,让我们开始吧。
<details>标签向用户提供按需查看详细信息的效果。如果需要按需向用户显示内容,简单的做法就是使用此<details>标签。默认情况下,它是收起来的,打开后,它将展开并显示被隐藏的内容。
事例:
<details>
<summary>Click Here to get the user details</summary>
<table>
<tr>
<th>#</th>
<th>Name</th>
<th>Location</th>
<th>Job</th>
</tr>
<tr>
<td>1</td>
<td>Adam</td>
<td>Huston</td>
<td>UI/UX</td>
</tr>
</table>
</details>
运行结果:
在 GitHub Readme 中使用它来显示按需的详细信息。这是一个示例https://github.com/atapas/notifyme#properties
contenteditable是可以在元素上设置以使内容可编辑的属性。它适用于DIV,P,UL等元素。
注意,当在元素上没有设置contenteditable属性时,它将从其父元素继承该属性。
<h2> Shoppping List(Content Editable) </h2>
<ul class="content-editable" contenteditable="true">
<li> 1. Milk </li>
<li> 2. Bread </li>
<li> 3. Honey </li>
</ul>
运行结果:
可以让span或div标签可编辑,并且可以使用css样式向其添加任何丰富的内容。这将比使用输入字段处理它更好。试试看!
HTML <map> 属性 与 <area> 属性一起使用来定义一个图像映射(一个可点击的链接区域)。可点击的区域可以是这些形状中的任何一个,矩形,圆形或多边形区域。如果不指定任何形状,则会考虑整个图像。
事例:
<div>
<img src="circus.jpg" width="500" height="500" alt="Circus" usemap="#circusmap">
<map name="circusmap">
<area shape="rect" coords="67,114,207,254" href="elephant.htm">
<area shape="rect" coords="222,141,318, 256" href="lion.htm">
<area shape="rect" coords="343,111,455, 267" href="horse.htm">
<area shape="rect" coords="35,328,143,500" href="clown.htm">
<area shape="circle" coords="426,409,100" href="clown.htm">
</map>
</div>
运行结果:
map有其自身的缺点,但是你可以将其用于视觉演示。
<p> Did you know, you can <mark>"Highlight something interesting"</mark> just with an HTML tag? </p>
运行结果:
可以使用css更改高亮颜色:
mark {
background-color: green;
color: #FFFFFF;
}
data-*属性用于存储页面或应用程序专用的自定义数据。可以在 JavaScript 代码中使用存储的数据来创建更多的用户体验。
data-*属性由两部分组成
事例:
<h2> Know data attribute </h2>
<div
class="data-attribute"
id="data-attr"
data-custom-attr="You are just Awesome!">
I have a hidden secret!
</div>
<button onclick="reveal()">Reveal</button>
在 JS 中:
function reveal() {
let dataDiv = document.getElementById('data-attr');
let value = dataDiv.dataset['customAttr'];
document.getElementById('msg').innerHTML = `<mark>${value}</mark>`;
}
**注意:**要在 JS 中读取这些属性的值,可以通过getAttribute('data-custom-attr')g来获取,但是标准方式是用dataset来获取。
你可以使用它在页面中存储一些数据,然后使用REST调用将其传递给服务器。
<output> 标签表示计算或用户操作的结果。
<form oninput="x.value=parseInt(a.value) * parseInt(b.value)">
<input type="number" id="a" value="0">
* <input type="number" id="b" value="0">
= <output name="x" for="a b"></output>
</form>
如果要在客户端 JS 中执行任何计算,并且希望结果反映在页面上,可以使用<output>,这样就无需使用getElementById()获取元素的额外步骤。
<datalist>元素包含了一组<option>元素,这些元素表示其它表单控件可选值.
事例:
<form action="" method="get">
<label for="fruit">Choose your fruit from the list:</label>
<input list="fruits" name="fruit" id="fruit">
<datalist id="fruits">
<option value="Apple">
<option value="Orange">
<option value="Banana">
<option value="Mango">
<option value="Avacado">
</datalist>
<input type="submit">
</form>
dataList的表现很像是一个select下拉列表,但它只是提示作用,并不限制用户在input输入框里输入什么
select标签创建了一个菜单。菜单里的选项通option标签指定。一个select元素内部,必须包含一个option元素,
总的来说就是,它们都可以显示出一个下拉表单框,但是select标签只能在它提供的选项中选择,而datalist不仅可以让你选择,还可以让你自己输入其它的选项。
range是一种 input 类型,给定一个滑块类型的范围选择器。
<form method="post">
<input
type="range"
name="range"
min="0"
max="100"
step="1"
value=""
onchange="changeValue(event)"/>
</form>
<div class="range">
<output id="output" name="result"> </output>
</div>
<meter>元素用来显示已知范围的标量值或者分数值。
<label for="home">/home/atapas</label>
<meter id="home" value="4" min="0" max="10">2 out of 10</meter><br>
<label for="root">/root</label>
<meter id="root" value="0.6">60%</meter><br>
不要将<meter>用作进度条来使用,进度条对应的<Progress> 标签。
<label for="file">Downloading progress:</label>
<progress id="file" value="32" max="100"> 32% </progress>
对于input标签类型,最常见的有 text,password 等等,下面列举一些比较少见的语法。
要求输入字段必填。
<input type="text" id="username1" name="username" required>
文本输入字段被设置为当页面加载时获得焦点:
<input type="text" id="username2" name="username" required autofocus>
可以使用regex指定一个模式来验证输入。
<input type="password"
name="password"
id="password"
placeholder="6-20 chars, at least 1 digit, 1 uppercase and one lowercase letter"
pattern="^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,20}$" autofocus required>
一个简单的颜色选择器。
<input type="color" onchange="showColor(event)">
<p id="colorMe">Color Me!</p>
作者:Ahmad shaded 译者:前端小智 来源:sitepoint
原文:https://dev.to/atapas/10-useful-html5-features-you-may-not-be-using-2bk0
1. 语义化标签
2. 增强型表单
3. 新增视频 <video> 和音频 <audio> 标签
4. Canvas绘图
5. SVG绘图
6. 地理定位
7. 拖放API
8. Web Worker
9. Web Storage
10. WebSocket
之前有整理过部分知识点, 现在将整理的相关内容, 验证之后慢慢分享给大家; 这个专题是 "前端面试题" 的相关专栏; 大概会有200+的文章。
如果对大家有所帮助,可以点个关注、点个赞; 文章会持续打磨 。
有什么想要了解的前端知识, 可以在评论区留言, 会及时分享所相关内容 。
TML5的新特性
1. 语义特性(Class:Semantic)
HTML5赋予网页更好的意义和结构。更加丰富的标签将随着对RDFa的微数据与微格式等方面的支持,构建对程序、对用户都更有价值的数据驱动的Web。
2. 本地存储特性(Class: OFFLINE & STORAGE)
基于HTML5开发的网页APP拥有更短的启动时间,更快的联网速度,这些全得益 于HTML5 APP Cache,以及本地存储功能。Indexed DB(html5本地存储最重要 的技术之一)和API说明文档。
3. 设备兼容特性 (Class: DEVICE ACCESS)
4. 连接特性(Class: CONNECTIVITY)
5. 网页多媒体特性(Class: MULTIMEDIA)
支持网页端的Audio、Video等多媒体功能, 与网站自带的APPS,摄像头,影音 功能相得益彰。
6. 三维、图形及特效特性(Class: 3D, Graphics & Effects)
7. 性能与集成特性(Class: Performance & Integration)
没有用户会永远等待你的Loading——HTML5会通过XMLHttpRequest2等技术, 帮助您的Web应用和网站在多样化的环境中更快速的工作。
HTML5的优缺点
优点:
1、 网络标准
HTML5本身是由W3C推荐出来的,它的开发是通过谷歌、苹果、诺基亚、中国移动等几百家公司一起酝酿的技术,这个技术最大的好处 在于它是一个公开的技术。换句话说,每一个公开的标准都可以根据 W3C的资料库找寻根源。另一方面,W3C通过的HTML5标准也就意 味着每一个浏览器或每一个平台都会去实现。
2、 多设备、跨平台
3、 即时更新。
4、提高可用性和改进用户的友好体验;
5、 有几个新的标签,这将有助于开发人员定义重要的内容;
6、 可以给站点带来更多的多媒体元素(视频和音频);
7、可以很好的替代FLASH和Silverlight;
8、 涉及到网站的抓取和索引的时候,对于SEO很友好;
9、被大量应用于移动应用程序和游戏。
缺点:
1、 安全:
像之前Firefox4的web socket和透明代理的实现存在严重的安全问 题,同时web storage、web socket 这样的功能很容易被黑客利用,来盗 取用户的信息和资料,另外http的机制导致了web应用安全性有所欠缺, 这将在很长时间内成为问题。
2、 完善性:
html5 还在成熟和发展中,像之前曾经支持的web sql database, w3c已经决定不再维护。许多特性各浏览器的支持程度也不一样,而地理定位API在国内的前途还不清晰。
3、 技术门槛:
html5简化开发者工作的同时代表了有许多新的属性和API需 要开发者学习,想web worker、web socket、web storage 等新特性要求 对于后台的技术需要有一定的了解,甚至需要深入了解其后面原理和逻辑,而canvas要求视觉和图像算法的一些知识,传统的前端开发者需要 掌握更多算法、视觉、后台甚至浏览器原理的知识,机遇的同时也是巨大的挑战
4、 性能:
某些平台上的引擎问题导致html5性能低下,同时在不加入GPU加 速的情况下,html5处理复杂音视频,动画的性能不尽如人意。
5、 浏览器兼容性问题:
这是html5最大缺点,IE9以下浏览器几乎全军覆没,而其他浏览器虽然支持很好,但不是很全。
下期预告:
HTML5学习笔记三:HTML5语法规则
番外篇:昨天写了第一篇文章,阅读量还算可以,感谢收藏Tommy文章和订阅Tommy say的童鞋!对于我的每一篇文章都可以在下面评论交流,我看到后也会和大家互动回答的哦!
*请认真填写需求信息,我们会在24小时内与您取得联系。