# HTML 面试题
# 一、HTML5 新增的内容
- 新增语义化标签
- 新增表单类型
- 表单元素
- 表单属性
- 表单事件
- 多媒体标签
# 二、HTML5 新增的语义化标签
# 1.概念:
合理、正确的使用语义化标签来创建页面结构。
# 2.语义化标签:
| 序号 | 语义化标签 | 意思 |
|---|---|---|
| 1 | Header | 页面头部 |
| 2 | main | 页面主要内容 |
| 3 | footer | 页面底部 |
| 4 | Nav | 导航栏 |
| 5 | aside | 侧边栏 |
| 6 | article | 加载页面一块独立内容 |
| 7 | Section | 相当于 div |
| 8 | figure | 加载独立内容( 上图下字 ) |
| 9 | figcaption | figure 的标题 |
| 10 | Hgroup | 标题组合标签 |
| 11 | mark | 高亮显示 |
| 12 | dialog | 加载对话框标签(必须配合 open 属性) |
| 13 | Embed | 加载插件的标签 |
| 14 | video | 加载视频 |
| 15 | audio | 加载音频(支持格式 ogg,mp3,wav) |
# 3.优点:
- 在没有 css 样式的情况下,页面结构很好;
- 代码结构清晰;
- 有利于开发和维护;
- 有利于搜索引擎优化(SEO)
# 三、HTML5 视频/音频标签的使用
# 1.视频标签:
<video src=””></video>
视频标签属性: src 需要播放的视频地址、设置播放视频的宽高,和 img 标签一样。
| 属性 | 意思 |
|---|---|
| autoplay | 是否自动播放 |
| controls | 是否显示控制条 |
| poster | 没有播放之前显示的展位图片 |
| loop | 是否循环播放 |
| perload | 预加载视频(缓存)与 autoplay 相冲突,设置了 autoplay 属性,perload 属性会失效 |
# 2.音频标签:
<audio>
<source src=”” type=””>
</audio>
音频: 音频属性和视频属性差不多,不过宽高和 poster 属性不能用。muted 静音模式。
# 四、HTML5 的 drag api
| 事件的主体 | 怎么触发 | |
|---|---|---|
| dragstart | 被拖放元素 | 在开始拖放被拖放元素时触发 |
| darg | 被拖放元素 | 在正在拖放被拖放元素时触发 |
| dragenter | 目标元素 | 在被拖放元素进入某元素时触发 |
| dragover | 目标元素 | 在被拖放在某元素内移动时触发 |
| dragleave | 目标元素 | 在被拖放元素移出目标元素是触发 |
| drop | 目标元素 | 在目标元素完全接受被拖放元素时触发 |
| dragend | 被拖放元素 | 在整个拖放操作结束时触发 |
# 五、块级/行内/行内块元素以及显示模式转换
# 1.块级元素:
独占一行,高、宽、内外边距可控制。(里面可放行内或者块级元素)
常见的块元素有:
<h1>~<h6>、<p>、<div>、<ul>、<ol>、<li>
<!-- 其中<div>是最典型的块元素 -->
# 2.行内元素:
一行可显示多个,高宽设置无效,水平方向的内外边距有效,垂直方向的内外边距无效。
(只容纳文本或其它行内元素)
常见的行内元素有:
<a>、<strong>、<b>、<em>、<i>、<del>、<s>、<ins>、<u>、<span>
<!-- 其中<span>是最典型的行内元素,又称为内联元素 -->
# 3.行内块/可变元素:
一行可显示多个(行内特点),宽、高、内外边距可控制(块特点)。
<img/>、<input/>、<td>、<button>
<!-- 他们同时具有块元素和行内元素的特点 -->
# 六、Doctype 的作用
Doctype 声明于文档最前面,告诉浏览器以何种方式来渲染页面,这里有两种模式,严格模式和混杂模式。
- 严格模式:排版和 JS 运作模式是以该浏览器支持的最高标准运行。
- 混杂模式:向后兼容,模拟老式浏览器,防止浏览器无法兼容页面。