前言
当我们谈论 HTML 时,通常会想到一些常见的属性,如 class、id、href 等等。但是,HTML 还有许多你可能从未听说过的属性,这些属性可以让你的网页更加丰富多彩。在本文中,我将介绍一些你可能不知道的 HTML 属性,让你的网页更加出色。
1. inputmode 属性
在移动端中,inputmode 值会影响弹出的键盘布局。它提供了用户在编辑元素或其内容时可能输入的数据类型的提示。
1.1
inputmode="none"无键盘
不使用虚拟键盘,这个时候页面需要使用自定义的键盘代替。在应用程序或者站点需要实现自己的键盘输入控件时很有用。
<input type="text" inputmode="none">
1.2
inputmode="text"默认值,文本
使用用户本地区域设置的标准文本输入键盘。
<input type="text" inputmode="text">

1.3
inputmode="tel"电话
电话输入键盘,包含 0 到 9 的数字、星号和井号键。多用于输入电话号码。
<input type="text" inputmode="tel">

1.4
inputmode="url"地址
键盘必须显示 / 符号键,也会更加明显,更有助于用户输入 URL 地址。
<input type="text" inputmode="url">

1.5
inputmode="email"邮箱
键盘必须显示 @ 符号键,更方便用户输入电子邮件。
<input type="text" inputmode="email">

1.6
inputmode="numeric"数字
显示数字键盘,展示的就是 0 到 9 的数字,根据设备不同也可能显示减号键。
<input type="text" inputmode="numeric">

1.7
inputmode="decimal"小数
小数输入键盘,包含数字和分隔符(通常是小数点或者千分符逗号),根据设备不同也可能显示减号键。
<input type="text" inputmode="decimal">

1.8
inputmode="search"搜素
为搜索输入优化的键盘,例如,返回键可能被重新标记为 『前往』,或任何搜索图标或类似图标的 Enter 键。
<input type="text" inputmode="search">

2. video 标签
<video> 标签定义视频,比如电影片段或其他视频流。<video> 元素支持三种视频格式:MP4、WebM、Ogg。
注意: Internet Explorer 8 以及更早的版本不支持 <video> 标签。
| 属性 | 值 | 描述 | 
|---|---|---|
| autoplay | autoplay | 设置该属性后,视频在就绪后马上播放。 | 
| controls | controls | 设置该属性后,则向用户显示控件,比如播放按钮。 | 
| height | pixels | 视频播放器的高度。 | 
| width | pixels | 视频播放器的宽度。 | 
| loop | loop | 设置该属性后,则当媒介文件完成播放后再次开始播放。 | 
| muted | muted | 设置该属性后,视频的音频输出为静音。 | 
| poster | url | poster 属性规定视频下载时显示的图像,或者在用户点击播放按钮前显示的图像。如果未设置该属性,则使用视频的第一帧来代替。 | 
| preload | auto、metadata、none | 设置该属性后,则视频在页面加载时进行加载,并预备播放。如果使用 “autoplay”,则忽略该属性。 | 
| src | url | 要播放的视频的 URL。 | 
以
poster为例:
<template>
  <div>
    <video width="320" height="240" src="../assets/1.mp4" poster="../assets/mn.png" controls></video>
  </div>
</template>
效果展示

3. multiple 属性
multiple 属性是一个布尔属性。规定可同时选择多个选项。通常用于文件选择和下拉列表,当用于文件选择时,可选择多个文件;当用于下拉列表时,可选中多个选项。
<template>
  <div>
    <input type="file" multiple />
    <select multiple>
      <option value="volvo">Volvo</option>
      <option value="saab">Saab</option>
      <option value="opel">Opel</option>
      <option value="audi">Audi</option>
    </select>
  </div>
</template>
效果展示

4. accesskey 属性
accesskey 属性规定激活(使元素获得焦点)元素的快捷键。
注意: 在不同操作系统中不同的浏览器中访问快捷键的方式不同:
| 浏览器 | Windows | Linux | Mac | 
|---|---|---|---|
| IE | [Alt] + accesskey | N/A | |
| Chrome | [Alt] + accesskey | [Alt] + accesskey | [Control] [Alt] + accesskey | 
| Firefox | [Alt] [Shift] + accesskey | [Alt] [Shift] + accesskey | [Control] [Alt] + accesskey | 
| Safari | [Alt] + accesskey | N/A | [Control] [Alt] + accesskey | 
| Opera | Opera 15 or newer: [Alt] + accesskey、Opera 12.1 or older: [Shift] [Esc] + accesskey | 
以下例子是当我同时按下
Alt+z时:
<template>
  <div>
    <input type="text" accesskey="z">
  </div>
</template>
效果展示

5. tabindex 属性
tabindex 属性规定当使用 “tab” 键进行导航时元素的顺序。
<template>
  <div>
    <input type="text" tabindex="1">
    <input type="text" tabindex="3">
    <input type="text" tabindex="2">
    <input type="text" tabindex="4">
  </div>
</template>
当我按下
Tab键时:

6. download 属性
通常用于超链接中,使用该属性后,打开链接会触发浏览器的下载行为,而不是显示链接内容。
<template>
  <div>
    <a href="ceshi.png" download>下载图片</a>
    <!-- 还可以更改下载时的默认文件名 -->
    <a href="ceshi.png" download="xiugai.png">下载图片并更改图片的名字</a>
  </div>
</template>
7. dir 属性
dir 属性规定元素内容的文本方向。
| 值 | 描述 | 
|---|---|
| ltr | 默认。从左向右的文本方向。 | 
| rtl | 从右向左的文本方向。 | 
| auto | 让浏览器根据内容来判断文本方向。仅在文本方向未知时推荐使用。 | 
以
rtl为例:
<template>
  <div>
    <bdo dir="rtl">文本方向从右到左!</bdo>
  </div>
</template>
效果展示

8. spellcheck 属性
spellcheck 属性规定是否对元素内容进行拼写检查。true 规定应当对元素的文本进行拼写检查,false 规定不应对元素的文本进行拼写检查。
<template>
  <div>
    <p contenteditable spellcheck="true">how ar you</p>
  </div>
</template>
效果展示

9. translate 属性
translate 属性规定元素内容是否要翻译。yes 规定元素内容需要翻译,no 规定元素内容不需要翻译。
<template>
  <div>
    <p translate="no">hello</p>
    <p>hello</p>
  </div>
</template>
效果展示

10. title 属性
title 属性提供了元素的额外信息,浏览器通常用这些东西显示工具条提示,通常在展示不全的文本标题使用。
<template>
  <div>
    <p title="我是描述文本">hello</p>
  </div>
</template>
效果展示

11. contenteditable 属性
contenteditable 属性指定元素内容是否可编辑。true 指定元素是可编辑的,false 指定元素是不可编辑的。
注意: 当元素中没有设置 contenteditable 属性时,元素将从父元素继承。
<template>
  <div>
    <p contenteditable>点击我可编辑</p>
  </div>
</template>
效果展示

12. draggable 属性
draggable 属性是 HTML5 支持拖放操作的方式之一,用来表示元素是否可被拖放。
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<style type="text/css">
  #div1 {
    width: 350px;
    height: 70px;
    padding: 10px;
    border: 1px solid #aaaaaa;
  }
</style>
<body>
  <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
  <p id="drag1" draggable="true" ondragstart="drag(event)">这是一段可移动的段落。请把该段落拖入上面的矩形。</p>
</body>
<script type="text/javascript">
  function allowDrop(ev) {
    ev.preventDefault();
  }
  function drag(ev) {
    ev.dataTransfer.setData("Text", ev.target.id);
  }
  function drop(ev) {
    var data = ev.dataTransfer.getData("Text");
    ev.target.appendChild(document.getElementById(data));
    ev.preventDefault();
  }
</script>
</html>
效果展示

13. dropzone 属性
dropzone 属性规定当被拖动的数据在拖放到元素上时,是否被复制、移动或链接。
<div dropzone="copy"></div>
| 值 | 描述 | 
|---|---|
| copy | 拖动数据会导致被拖数据产生副本。 | 
| move | 拖动数据会导致被拖数据移动到新位置。 | 
| link | 拖动数据会生成指向原始数据的链接。 | 
14. hidden 属性
hidden 属性规定对元素进行隐藏。
<template>
  <div>
    <p hidden>这是一段文字</p>
    <p>这是一段文字</p>
  </div>
</template>
效果展示

15. lang 属性
lang 属性规定元素内容的语言。语言代码参考手册
<template>
  <div>
    <p lang='fr'>这是一段文字</p>
  </div>
</template>
16. data-* 属性
data-* 属性用于存储私有页面后应用的自定义数据。可以在所有的 HTML 元素中嵌入数据。
由以下两部分组成:
- 属性名不要包含大写字母,在 data-后必须至少有一个字符。
- 该属性可以是任何字符串。
注意: 自定义属性前缀 data- 会被客户端忽略。
<template>
  <div>
    <ul @click="dotOn">
      <li data-type="bird">第一</li>
      <li data-type="fish">第二</li>
      <li data-type="spider">第三</li>
    </ul>
  </div>
</template>
<script>
export default {
  methods: {
    dotOn(e) {
      console.log(e.target.dataset.type);
    },
  },
};
</script>
效果展示

17. input - type 属性
type 属性规定要显示的 <input> 元素的类型。默认类型是:text。
| 值 | 描述 | 
|---|---|
| button | 定义可点击的按钮(通常与 JavaScript 一起使用来启动脚本)。 | 
| checkbox | 定义复选框。 | 
| colorNew | 定义拾色器。 | 
| dateNew | 定义 date 控件(包括年、月、日,不包括时间)。 | 
| datetimeNew | 定义 date 和 time 控件(包括年、月、日、时、分、秒、几分之一秒,基于 UTC 时区)。 | 
| datetime-localNew | 定义 date 和 time 控件(包括年、月、日、时、分、秒、几分之一秒,不带时区)。 | 
| emailNew | 定义用于 e-mail 地址的字段。 | 
| file | 定义文件选择字段和 “浏览…” 按钮,供文件上传。 | 
| hidden | 定义隐藏输入字段。 | 
| image | 定义图像作为提交按钮。 | 
| monthNew | 定义 month 和 year 控件(不带时区)。 | 
| numberNew | 定义用于输入数字的字段。 | 
| password | 定义密码字段(字段中的字符会被遮蔽)。 | 
| radio | 定义单选按钮。 | 
| rangeNew | 定义用于精确值不重要的输入数字的控件(比如 slider 控件)。 | 
| reset | 定义重置按钮(重置所有的表单值为默认值)。 | 
| searchNew | 定义用于输入搜索字符串的文本字段。 | 
| submit | 定义提交按钮。 | 
| telNew | 定义用于输入电话号码的字段。 | 
| text | 默认。定义一个单行的文本字段(默认宽度为 20 个字符)。 | 
| timeNew | 定义用于输入时间的控件(不带时区)。 | 
| urlNew | 定义用于输入 URL 的字段。 | 
| weekNew | 定义 week 和 year 控件(不带时区)。 | 
input的tpye类型:
<template>
  <div>
    <p>
      <span>1.当 type 为 button 时:</span>
      <input type="button" value="点我">
    </p>
    <p>
      <span>2.当 type 为 checkbox 时:</span>
      <input type="checkbox">
    </p>
    <p>
      <span>3.当 type 为 color 时:</span>
      <input type="color">
    </p>
    <p>
      <span>4.当 type 为 date 时:</span>
      <input type="date">
    </p>
    <p>
      <span>5.当 type 为 datetime-local 时:</span>
      <input type="datetime-local">
    </p>
    <p>
      <span>6.当 type 为 email 时:</span>
      <input type="email">
    </p>
    <p>
      <span>7.当 type 为 file 时:</span>
      <input type="file">
    </p>
    <p>
      <span>8.当 type 为 hidden 时:</span>
      <input type="hidden">
    </p>
    <p>
      <span>9.当 type 为 image 时:</span>
      <input type="image" src="1.png" width="16" height="16">
    </p>
    <p>
      <span>10.当 type 为 month 时:</span>
      <input type="month">
    </p>
    <p>
      <span>11.当 type 为 number 时:</span>
      <input type="number" min="1" max="5">
    </p>
    <p>
      <span>12.当 type 为 password 时:</span>
      <input type="password">
    </p>
    <p>
      <span>13.当 type 为 radio 时:</span>
      <input type="radio">
    </p>
    <p>
      <span>14.当 type 为 range 时:</span>
      <input type="range" min="1" max="10">
    </p>
    <p>
      <span>15.当 type 为 reset 时:</span>
      <input type="reset">
    </p>
    <p>
      <span>16.当 type 为 search 时:</span>
      <input type="search">
    </p>
    <p>
      <span>17.当 type 为 submit 时:</span>
      <input type="submit">
    </p>
    <p>
      <span>18.当 type 为 tel 时:</span>
      <input type="tel">
    </p>
    <p>
      <span>19.当 type 为 text 时:</span>
      <input type="text">
    </p>
    <p>
      <span>20.当 type 为 time 时:</span>
      <input type="time">
    </p>
    <p>
      <span>21.当 type 为 url 时:</span>
      <input type="url">
    </p>
    <p>
      <span>22.当 type 为 week 时:</span>
      <input type="week">
    </p>
  </div>
</template>
效果展示



















