![b186ec396f52a46b79fd2529d339f3c7.png](https://i-blog.csdnimg.cn/blog_migrate/c42685f79edb990beb299d973109ef80.png)
- 原文地址:https://dev.to/atapas/10-useful-html5-features-you-may-not-be-using-2bk0
- 原文作者:Tapas Adhikary
- 译者:培歌行(阳光是sunny)
HTML5
不是新事物。自从最初发布(2008年1月)以来,我们一直在使用它的一些功能。后来,我再次仔细查看了HTML5功能列表。看到我发现了什么?到目前为止,我还没有真正使用过它!
在本文中,我列出了十个HTML5我过去没用过但现在发现有用的功能。我还创建了一个工作示例流程并托管在Netlify。希望您也觉得它有用。
点击演示实例:https://html5-tips.netlify.app/
太好了,让我们开始介绍它们的解释,快速码起来吧。您可以在Twitter上关注我,以了解我将来的文章和工作。
? Details Tag
标签提供随需应变的细节内容给用户。如果需要按需向用户显示内容,请使用此标记。默认情况下,详细内容是关闭的。打开后,它将展开并显示其中的内容。
标签与
一起使用,来为它指定一个可见的标题。
Code
<summary>Click Here to get the user detailssummary><table><tr><th>#th><th>Nameth><th>Locationth><th>Jobth>tr><tr><td>1td><td>Adamtd><td>Hustontd><td>UI/UXtd>tr>table>`` </details>
效果演示
![0030606cdf9e3fef13b8fbcda40b3440.png](https://i-blog.csdnimg.cn/blog_migrate/b7f45a7a795d3df136266b1eafa5afd1.png)
![0277fac418d9b54ba9345cffa7f4a493.png](https://i-blog.csdnimg.cn/blog_migrate/ed3929a6a816a17a5952a7d665336839.png)
您可以从这里开始查看演示:https : //html5-tips.netlify.app/details/index.html
小提示
在GitHub Readme中使用它来显示需要的详细信息。隐藏大量的文字并仅按需显示它。酷吧?
点击查看例子:https://github.com/atapas/notifyme#properties
? Content Editable
contenteditable
是可以在元素上设置以使内容可编辑的属性
可以与DIV,P,UL等元素一起使用。您必须像这样指定它:。
注意,如果contenteditable未在元素上设置属性,则会从其父级继承该属性。
Code
Shoppping List(Content Editable) </h2>
Shoppping List(Content Editable) </h2>
1. Milk li><li> 2. Bread li><li> 3. Honey li>
</ul>
效果演示
![3c54954852d0b026c351a852fa64db08.png](https://i-blog.csdnimg.cn/blog_migrate/5e99a6f727c82049328c344e6645b197.png)
![a40466f8f3ffe2c481033946a94e63b3.png](https://i-blog.csdnimg.cn/blog_migrate/40b24e57543c70f0cd2e7e99e8974319.png)
您可以从这里开始查看演示:https://html5-tips.netlify.app/content-editable/index.html
小提示
可以使span或div元素可编辑,并且可以使用CSS样式向其添加任何丰富的内容。这将比使用input 输入框更好。试一试!
? Map
标签可以帮助定义
image map
,image map
是其中具有一个或多个可单击区域的任何图像。map标签与标签一起确定可点击区域。可点击区域可以是矩形,圆形或多边形区域中的任意一种。如果您未指定任何形状,它将默认整个图像。
Code
<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>
效果演示
![8f61a2aacf071d320a658c8bbc757324.png](https://i-blog.csdnimg.cn/blog_migrate/083e0a03b29fe930bad0beb47e8292ae.png)
![333140b4a206f76451517c543aee98d6.png](https://i-blog.csdnimg.cn/blog_migrate/f418f81c8922a5fcd6156a514d392860.png)
您可以从这里开始查看演示:https://html5-tips.netlify.app/map/index.html
小提示
图像贴图有其自身的缺点,但是您可以将其用于视觉演示。我们可以用全家福照片尝试一下并深入研究个人照片
? Mark Content
使用标记突出显示任何文本内容。
Code
<p> Did you know, you can <mark>"Highlight something interesting"mark> just with an HTML tag? p>
效果演示
![d685ad66fda6373cf4345f4999650927.png](https://i-blog.csdnimg.cn/blog_migrate/914da35291002a6a94f1f72166e0e55f.png)
您可以从这里开始查看演示:https://html5-tips.netlify.app/mark/index.html
小提示
您始终可以使用CSS更改突出显示颜色,
mark {
background-color: green;
color: #FFFFFF;
}
? data-* attribute
data-*
属性用于存储页面或应用程序专用的自定义数据。可以在JavaScript代码中使用存储的数据来创建更多的用户体验。
data- *
属性由两部分组成:
- 属性名称不得包含任何大写字母,并且前缀“ data-”后必须至少长一个字符
- 属性值可以是任何字符串
Code
<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()">Revealbutton>
function reveal() {
let dataDiv = document.getElementById('data-attr');
let value = dataDiv.dataset['customAttr'];
document.getElementById('msg').innerHTML = `${value}`;
}
注意:要在JavaScript中读取这些属性的值,可以使用getAttribute(),但是规范定义了一种更简单的方法:使用dataset属性。
效果演示
![0bdb5dcdfedb12ccc906925aca69cc78.png](https://i-blog.csdnimg.cn/blog_migrate/f2ea4b3e2ccd96b82c0c96c0474677c1.png)
![5ed80dfd83510e8a71c51120a2063ada.png](https://i-blog.csdnimg.cn/blog_migrate/1c640b763411c62355ce1a168a5dfeb1.png)
您可以从这里开始查看演示:https://html5-tips.netlify.app/data-attribute/index.html
小提示
您可以使用它在页面中存储一些数据,然后使用REST调用将其传递给服务器。
? Output Tag
标签表示运算的结果。通常,此元素定义一个区域,该区域将用于显示某些计算得出的文本。
Code
<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>
效果演示
![c3a1b3384c714783a18554da056c4c11.png](https://i-blog.csdnimg.cn/blog_migrate/ef63834b3176b2acb26f812125cc6267.png)
您可以从这里开始查看演示:https://html5-tips.netlify.app/output/index.html
小提示
如果要在客户端JavaScript中执行任何计算,并且希望结果反映在页面上,请使用标记。您不必走动使用可获取元素的额外步骤:getElementById()。
? Datalist
标签指定了预先定义的选项列表,并允许用户添加更多。它提供了一项autocomplete功能,使您可以提前输入所需的选项。
Code
<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>
效果演示
![f2bd1a04e1d7dc052ebc676031ec9759.png](https://i-blog.csdnimg.cn/blog_migrate/3a993cb3aceee289e19db184d26791c8.png)
您可以从这里开始查看演示:https://html5-tips.netlify.app/datalist/index.html
小提示
与传统-
标签有何不同?Select标记用于从选项中选择一个或多个项目,您需要浏览列表以进行选择。Datalist是具有自动完成支持的高级功能。也就是说Datalist标签不仅可以选择,还可以输入
? Range(Slider)
range
具有滑块,范围选择的输入类型
Code
<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>
效果演示
![1e117e21700cce99ef16f1a4a9c8a78a.png](https://i-blog.csdnimg.cn/blog_migrate/22c7e5266b1a9727d6a2117b86845da5.png)
您可以从这里开始查看演示:https://html5-tips.netlify.app/range/index.html
小提示
在html5中,没有叫slider的东西
? Meter
使用标签测量给定范围内的数据。
Code
`<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> `
效果演示
![1d533535382a68efe6f96fdd88fcd049.png](https://i-blog.csdnimg.cn/blog_migrate/19f991fe8a7eb24724424a26ae9d9f5b.png)
您可以从这里开始查看演示:https://html5-tips.netlify.app/meter/index.html
小提示
请勿将标签用于进度条。我们有
HTML5的标记。
for="file">Downloading progress:
"file" value="32" max="100"> 32%
![72d1aa052a502c2d2d3247be2bec81a5.png](https://i-blog.csdnimg.cn/blog_migrate/e0fa90efa83fabccca880eb054275fd4.png)
下一步是什么?
好吧,我敢肯定,我留下了一些有用的东西。请提供有关此文章以及您对HTML5的学习的评论。
如果对您有用,请点赞/分享,这样也可以吸引其他人。我对UI / UX
充满热情,并喜欢通过文章分享我的知识。
文章首发于 微信公众号《前端阳光》