test
目录(html标签)
兼容性太差的标签和w3c不推荐使用的标签
以及部分无实际意义的属性本文未罗列
a标签
1. 下载图片功能
添加download属性可以指定下载的文件名,以及告知浏览器下载此文件<a href="./timg.jpeg" download="图片名.jpeg">下载图片</a>
2. href跳转
将href属性设置成“#top”或者“#”可以跳转到页面顶部<a href="#top">回到顶部</a> <a href="#">回到顶部</a>href属性除了可以设置成http协议,同样也可以设置成其他协议
<a href="mailto:264019**37@qq.com">给我发邮件</a> <a href="tel:1752169****">给我打电话</a>
3. ping追踪
a标签如果已经设置href属性,此时再设置ping属性,当点击事件触发会自动在后台发送post请求<a href="" ping="http://localhost:8000/test1 http://localhost:8000/test2">测试</a> 此功能主要用于追踪当然如果你想利用此特性发送DOS攻击也是可以的
直接运行下面代码,可以无限发送post请求 const a = document.createElement('a'); a.href=""; a.ping = 'http://localhost:8000/test1'; document.body.appendChild(a); a.click();
4. target指定跳转方式
target常用的属性_self、_blank,使用细节点如下_self表示跳转至当前页,默认行为。 _blank表示跳转至新标签页,此时新的标签页和当前标签页公用一个浏览器进程,为了性能最好如下使用 <a href="https://www.baidu.com" target="_blank" rel="noopener">跳转</a>
abbr标签
1. 提供缩略功能
abbr标签对于文本有帮助<abbr title="长文本的显示">文本</abbr>
2. 配合dfn标签提供语义化
术语<dfn id="text"><abbr title="强调这是专业术语">术语</abbr></dfn> dfn标签中id的作用主要是实现a标签的锚点
address标签
1. 语义化标签,展示联系人的联系信息
示例:2640199637@qq.com<address> <a href="mailto:2640199637@qq.com">2640199637@qq.com</a> </address>
area标签
1. 创建热点图像
area标签只能在map标签中使用,可以将一个图片的不同部分关联不同的超链接,示例:
<map name="front"> <area shape="poly" coords="10,29,66,30,60,78,38,83,14,77" href="https://baike.baidu.com/item/HTML/97049?fr=aladdin" target="_blank" alt="html" /> <area shape="poly" coords="70,29,128,30,122,78,100,83,75,77" href="https://baike.baidu.com/item/CSS/5457?fr=aladdin" target="_blank" alt="css" /> <area shape="poly" coords="132,29,190,30,184,77,161,83,137,77" href="https://baike.baidu.com/item/javascript/321142?fr=aladdin" target="_blank" alt="js" /> </map> <img usemap="#front" style="width: 200px;height: 100px;" src="./1.png" alt="front-end" />
2. coords属性说明
- rect、rectangle:值是两个x,y对:left,top,right,bottom
- circ、circle:值是指定圆的中心的对x,y,r,其中x,y是r半径的值
- poly、polygon:该值是多边形中每个点的一组x,y对:x1,y1,x2,y2,x3,y3,依此类推
3. 其他属性说明
- alt:图像不显示时展示的文本
- download:和a标签的属性作用一样
- ping:和a标签的属性作用一样
- target:和a标签的属性作用一样
- shape:对应coords的可用值
article标签
1. 语义化标签,用来表示文章或者文章列表,例如:
博客列表
博客一
摘要。。。
博客二
摘要。。。
<article> <h4>博客列表</h4> <article> <h5>博客一</h5> <p>摘要。。。</p> </article> <article> <h5>博客二</h5> <p>摘要。。。</p> </article> </article>
aside标签
1. 语义化标签,用来表示文章的旁白,例如:
这篇博客讲解html标签
作者:叶家伟
<article> <p>这篇博客讲解html标签</p> <aside><p>作者:叶家伟</p></aside> </article>
audio标签
待完成,内容较多,将单独开一篇博客
b标签
1. 语义化标签,表示需要引起读者注意的关键字,例如
这个关键字很特殊
<p>这个<b>关键字</b>很特殊</p>
base标签
1. 给具有url属性的标签提供一个基url
base标签只能包含一个,写在head标签中<head> <base href="https://baike.baidu.com" target="_blank"> </head> <body> <a href="item/javascript">js是什么?</a> </body>
2. 可以通过document.baseURI
直接获取到baseurl
bdo标签
1. 控制文本渲染方向
bdo标签只用dir一个属性,效果:test<bdo dir="rtl">test</bdo>
blockquote标签
1. 语义化标签,表示一段引文,在样式上会有缩进
cite属性起到语义化的作用,表示引文的地址,无实际作用。例如:JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。
<blockquote cite="https://baike.baidu.com/item/javascript"> <p>JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。</p> </blockquote>
body标签
1. 承载html文档内容的根标签,只能包含一个
body元素自身包含一些独有的事件,如下:- onafterprint:用户打印文档后调用的函数
- onbeforeprint:当用户请求打印文档时调用的函数
- onbeforeunload:文档即将卸载时调用的函数
- onunload:文档消失时调用的函数
- onload:文档加载完成后调用的函数
- onblur:文档失去焦点时调用的函数
- onerror:文档无法正确加载时调用的函数
- onfocus:文档获得焦点时调用的函数
- onhashchange:当'#'文档当前地址的片段标识符部分发生更改时调用的函数
- onmessage:文档收到消息时调用的函数(webworker中的知识点,参见后续博客)
- onoffline:网络通信失败时调用的功能
- ononline:恢复网络通信时调用的功能
- onpopstate:用户导航会话历史记录时调用的函数
- onresize:调整文档大小时调用的函数
- onstorage:存储区域更改时调用的函数
function fn(e) { console.log("浏览器内存改变了"); } <body onstorage='fn()'>...</body>
br标签
1. 控制文本换行,w3c建议不要用这个属性作为间距
button标签
1. html5赋予了button很多新的特性,下面看看这些新特性
- autofocus:布尔属性,设置true表示聚焦
- disabled:布尔属性,设置true表示禁用
- form:当button在form表单中使用时,将form属性值设置成form表单的id值,可以将button放在任何地方
- formaction:button提交form表单时的url地址,会覆盖form表单的action属性
- formenctype:提交表单值的type类型
- application/x-www-form-urlencoded:默认的类型
- multipart/form-data:如果表单是file类型
- text/plain:只能用在get请求
- formmethod:提交表单的请求类型
- post
- get
- formnovalidate:布尔属性,设置为true表示提交表单不做验证
- formtarget:form表单的提交默认会跳转到提交地址的页面,这个属性设置跳转方式
- _self
- _blank
- name:语义化属性,设置了之后提交表单此属性会一并提交,属性值对应value
- value:name属性对应的属性值
- type:按钮的类型
- submit:提交表单
- reset:重置表单
- button:一般的按钮
<form id="form"> <div class="form-example"> <label for="name">用户名: </label> <input type="text" name="name" id="name" required> </div> <div class="form-example"> <label for="email">密码: </label> <input type="email" name="email" id="email" required> </div> </form> <button formtarget="_blank" formenctype="application/x-www-form-urlencoded" value="1" name="btn" formnovalidate type="submit" form="form" formaction="http://localhost:8080/submit" formmethod="post"> 提交 </button>
canvas标签
待完成,内容较多,将单独开一篇博客
caption标签
1. caption是表格的标题
可以通过css属性:caption-side和text-align控制caption的位置,例如:名字 | 性别 |
---|---|
小明 | 男 |
小莹 | 女 |
<table border="1"> <caption style="caption-side: bottom;text-align: left;">性别信息</caption> <tr><th>名字</th> <th>性别</th></tr> <tr><td>小明</td><td>男</td></tr> <tr><td>小莹</td><td>女</td></tr> </table>
col标签
1. col标签,指定table列的跨度用来控制列的样式
col标签一般放置于colgroup标签中,span属性表示列跨度,不写默认是1列。例子:名称 | 性别 | 年龄 | 分数 | |
---|---|---|---|---|
1 | 小李 | 男 | 10 | 30 |
2 | 小张 | 女 | 9 | 60 |
table { border-collapse: collapse; border: 2px solid rgb(100, 100, 100); letter-spacing: 1px; font-family: sans-serif; font-size: .7rem; } td, th { border: 1px solid rgb(100, 100, 100); padding: 10px 10px; } td { text-align: center; } <table> <colgroup> <col> <!-- 不写span属性默认就是1 --> <col span="1" style="background-color: #afe6b1;"> <col span="2" style="background-color: #d8de9f;"> <col span="1" style="background-color: #95d9e2;"> </colgroup> <tr> <td> </td> <th>名称</th> <th>性别</th> <th>年龄</th> <th>分数</th> </tr> <tr> <th>1</th> <td>小李</td> <td>男</td> <td>10</td> <td>30</td> </tr> <tr> <th>2</th> <td>小张</td> <td>女</td> <td>9</td> <td>60</td> </tr> </table>
cite标签
1. cite的作用是表示引用别人的作品,例如:
本文参考了w3c规范
<blockquote>本文参考了<cite><a href="https://www.w3.org/">w3c规范</a></cite></blockquote>
code标签
1. code的作用是使用等宽字体展示代码,例如:new Date()
<code>new Date()</code>
datalist标签
1. datalist给其他控制标签提供可选提示项
此标签对safari兼容性差,需要引入polyfill<input list="email-lists" type="email"/> <datalist id="email-lists"> <option value="info@davidhasselhoffonline.com"> <option value="john@doe"> <option value="kenny@southpark.cc.com" disabled> <option value="moss.m@reynholm.co.uk"> <option value="star-lord@galaxy.gov"> </datalist>
dl标签
1. dl制作键值对列表
dl包含dt(键)和dd(值)配套的标签,例子:- html
- 超文本标记语言,标准通用标记语言下的一个应用
- HTML 不是一种编程语言,而是一种标记语言,是网页制作所必备的
<dl> <dt>html</dt> <dd> 超文本标记语言,标准通用标记语言下的一个应用 </dd> <dd> HTML 不是一种编程语言,而是一种标记语言,是网页制作所必备的 </dd> </dl>
del,ins标签
1. del语义化标签,表示已删除文本
拥有语义化属性- cite:表示删除文本说明的链接
- datetime:表示删除的时间,需要遵循固定格式
<del cite="" datetime="2017-06-01T08:30">nothing</del>
2. ins语义化标签,表示已添加文本,其余用法和del一样
details标签
1. details标签,可以将详细信息折叠
details标签内部可以使用summary标签,summary标签内容将作为label展示。例如:<details id="details"> <summary style="display: list-item">html是什么?</summary> 超文本标记语言(Hyper Text Markup Language),标准通用标记语言下的一个应用。 HTML 不是一种编程语言,而是一种标记语言 (markup language),是网页制作所必备的 </details>details标签可以设置open属性,此属性是布尔属性,设置为true,details标签展开
2. details标签,可以使用自身独有的toggle事件,侦听展开关闭状态
const details = document.getElementById("details"); details.addEventListener("toggle", event => { if (details.open) { console.log("展开了"); } else { console.log("关闭了"); } })
em标签
1. em标签语义化标签,强调短语
语气强调
<p>语气<em>强调</em></p>
fieldset标签
1. fieldset标签用于form表单中对部分控件分组
包含一个配套的legend标签,作为分组的标题。fieldset标签自身的属性如下:- disabled:布尔属性值,设置为true表示禁用当前组,包含的表单无法交互不能提交
- form:值设置成form标签的id属性值,表示此分组包含在指定的form表单中
- name:给分组取名,无实际功能性意义
<form> <fieldset disabled> <legend style="color: orange">登录</legend> <div> <label for="name">用户名</label> <input name="name" type="text" id="name"> </div> <div> <label for="password">密码</label> <input name="password" type="password" id="password"> </div> </fieldset> </form>
figure标签
1. figure标签用于带有标题的自包含内容
包含一个配套的figcaption标签,表示内容标题,例子:<figure> <img src="https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=3160587534,1976573966&fm=26&gp=0.jpg" alt="tree"> <figcaption style="position: relative;bottom: 35px;left: 5px;color: #fff;font: italic smaller sans-serif;">美丽的树</figcaption> </figure>
footer标签
1. 语义化标签,footer表示作者,友情链接,copyright等信息,例如:
© 2019 叶家伟
<footer> <p>© 2019 叶家伟</p> </footer>
form标签
1. form表单,常用属性如下
- accept-charset:空格分隔的字符集,默认是"UNKNOWN"表示使用页面默认的编码
- action:提交表单的地址
- enctype:提交表单值的type类型
- application/x-www-form-urlencoded:默认的类型
- multipart/form-data:如果表单是file类型
- text/plain:只能用在get请求
- method:提交的方式
- post
- get
- name:form的名称必须独一无二
- novalidate:布尔属性值,设置为true表示不验证表单
- target:提交表单的跳转行为
- _self:当前页
- _blank:新的标签页
<form> <div> <label for="name">用户名</label> <input name="name" type="text" id="name" required> </div> <div> <label for="password">密码</label> <input name="password" type="password" id="password" required> </div> <div> <input type="submit"> </div> </form>
2. 设置form表单验证的样式
可以给form标签设置伪类样式- :valid设置验证合法的样式
- :invalid设置非法的样式
header标签
1. 语义化标签,表示介绍性内容
<article> <header> <h2>html标签全解</h2> <p>作者:叶家伟</p> </header> <p>...</p> </article>
hr标签
1. 表示分割线
i标签
1. 语义化标签,此标签内的文本具有自己不一样的语义
iframe标签
1. iframe标签用来嵌套其他页面
常用属性如下- allow
- fullscreen:布尔属性,设置为true表示允许调用requestFullscreen()全屏方法
- height:设置高度
- width:设置宽度
- name:iframe名称,可以当做其他标签target属性的属性值
- src:嵌入页面的地址
<a href="https://www.baidu.com/s?wd=html" target="test" rel="noopener">跳转</a> <iframe name="test" width="300" height="200" src=""></iframe>
img标签
1. img标签常用的属性
- alt:w3c建议img标签alt需要包含非空值,图片未加载成功显示的文本
- decoding:图片解码方式
- sync:同步方式
- async:异步方式
- auto:默认,自动识别
- height:设置图片高度
- width:设置图片宽度
- src:图片的默认地址
2. 监听img加载错误
<img src="" alt="没有图片" onerror="fn()"> function fn() { console.log('图片加载失败'); }
3. 点击图片获取坐标
用a链接包裹img图片,此时img设置ismap属性当点击a链接会获取图片的坐标<a href="http://www.baidu.com"> <img ismap src="https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=3160587534,1976573966&fm=26&gp=0.jpg" alt="树" /> </a> 随意点击图片任意位置 https://www.baidu.com/?196,132
4. 响应式图片
sizes属性和srcset属性配合可以制作响应式图片- sizes:通过媒体查询找出当前屏幕图片的宽度,多个属性用逗号分隔,最后一个属性不要写媒体查询信息表示默认图片的size
- srcset:根据sizes查询出来的宽度,找到对应包含w的属性值的图片地址
<img src="https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=3160587534,1976573966&fm=26&gp=0.jpg" alt="tree" srcset="https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=3160587534,1976573966&fm=26&gp=0.jpg 200w, https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1354171251,3891527867&fm=26&gp=0.jpg 400w" sizes="(max-width: 600px) 200px, (max-width: 1200px) 400px, 50vw">
kbd标签
1. 语义化标签表示从设备上输入的文本
Ctrl+N<kbd><kbd>Ctrl</kbd>+<kbd>N</kbd></kbd>
main标签
1. 语义化标签,表示文档的主体
只能有一个main标签mark标签
1. 语义化标签,表示突出显示重要的文本,例如:
重要的文本<mark>重要的文本</mark>
meter标签
1. 类似进度条的功能
常用属性如下- value:当前值
- min:最小值
- max:最大值
- low:最差值,低于此值显示红色
- high:最高值,高于此值显示绿色,介于low和high之间显示青色
- optimum:最优值
<meter min="0" max="100" low="33" high="66" optimum="80" value="81"> </meter>