«
HTML面试

时间:2022-6   


《前端知识手册》系列将重新对之前讨论帖内容进行归整以及更多内容的增加

HTML、XML、XHTML 的区别

HTML5有哪些更新

  1. 语义化标签
  1. 媒体标签

(1) audio:音频

<audio src='' controls autoplay loop='true'></audio>

属性:

(2)video视频

<video src='' poster='imgs/aa.jpg' controls></video>

属性:

(3)source标签 因为浏览器对视频格式支持程度不一样,为了能够兼容不同的浏览器,可以通过source来指定视频源。

<video>
    <source src='aa.flv' type='video/flv'></source>
    <source src='aa.mp4' type='video/mp4'></source>
</video>
  1. 表单

表单类型:

表单属性:

表单事件:

  1. 进度条、度量器

设置规则:min < low < high < max

  1. DOM查询操作

它们选择的对象可以是标签,可以是类(需要加点),可以是ID(需要加#)

  1. Web存储

HTML5 提供了两种在客户端存储数据的新方法:

  1. 其他
<img draggable="true" />
<canvas id="myCanvas" width="200" height="100"></canvas>

总结:

(1)新增语义化标签:nav、header、footer、aside、section、article

(2)音频、视频标签:audio、video

(3)数据存储:localStorage、sessionStorage

(4)canvas(画布)、Geolocation(地理定位)、websocket(通信协议)

(5)input标签新增属性:placeholder、autocomplete、autofocus、required

(6)history API:go、forward、back、pushstate

移除的元素有:

常见的meta标签有哪些

meta 标签由 namecontent 属性定义,用来描述网页文档的属性,比如网页的作者,网页描述,关键词等,除了HTTP标准固定了一些name作为大家使用的共识,开发者还可以自定义name。

常见的meta标签:

(1)charset,用来描述HTML文档的编码类型:

<meta charset="UTF-8" >

(2) keywords,页面关键词:

<meta name="keywords" content="关键词" />

(3)description,页面描述:

<meta name="description" content="页面描述内容" />

(4)refresh,页面重定向和刷新:

<meta http-equiv="refresh" content="0;url=" />

(5)viewport,适配移动端,可以控制视口的大小和比例:

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

其中,content 参数有以下几种:

(6)搜索引擎索引方式:

<meta name="robots" content="index,follow" />

其中,content 参数有以下几种:

行内元素有哪些?块级元素有哪些? 空(void)元素有那些?

空元素,即没有内容的HTML元素。空元素是在开始标签中关闭的,也就是空元素没有闭合标签:

说一下 HTML5 drag API

HTML公共属性/全局属性

属性 描述
accesskey 规定激活元素的快捷键。
class 规定元素的一个或多个类名(引用样式表中的类)。
contenteditable 规定元素内容是否可编辑。
contextmenu 规定元素的上下文菜单。上下文菜单在用户点击元素时显示。
data-* 用于存储页面或应用程序的私有定制数据。
dir 规定元素中内容的文本方向。
draggable 规定元素是否可拖动。
dropzone 规定在拖动被拖动数据时是否进行复制、移动或链接。
hidden 规定元素仍未或不再相关。
id 规定元素的唯一 id。
lang 规定元素内容的语言。
spellcheck 规定是否对元素进行拼写和语法检查。
style 规定元素的行内 CSS 样式。
tabindex 规定元素的 tab 键次序。
title 规定有关元素的额外信息。
translate 规定是否应该翻译元素内容。

HTML自定义属性

<ul>
  <li data-animal-type="鸟类">喜鹊</li>
  <li data-animal-type="鱼类">金枪鱼</li> 
  <li data-animal-type="蜘蛛">蝇虎</li> 
</ul>

定义和用法

注释:用户代理会完全忽略前缀为 "data-" 的自定义属性。

data-* 属性是 HTML5 中的新属性。

<element data-*="somevalue">

(牛客)img的title属性和alt属性有什么区别?

渐进增强和优雅降级之间的区别

DOCTYPE(⽂档类型) 的作⽤

DOCTYPE是HTML5中一种标准通用标记语言的文档类型声明,它的目的是告诉浏览器(解析器)应该以什么样(html或xhtml)的文档类型定义来解析文档,不同的渲染模式会影响浏览器对 CSS 代码甚⾄ JavaScript 脚本的解析。它必须声明在HTML⽂档的第⼀⾏。

浏览器渲染页面的两种模式:

怪异(Quirks)模式和标准(Standards)模式有什么区别?

所谓的标准模式是指,浏览器按W3C标准解析执行代码;怪异模式则是使用浏览器自己的方式解析执行代码,因为不同浏览器解析执行的方式不一样,所以我们称之为怪异模式。浏览器解析时到底使用标准模式还是怪异模式,与你网页中的DTD声明直接相关,DTD声明定义了标准文档的类型(标准模式解析)文档类型,会使浏览器使用相应的方式加载网页并显示,忽略DTD声明,将使网页进入怪异模式(quirks mode)。(摘自牛客)

(其他)Doctype文档类型有几种

注意区分上题

标签可声明三种 DTD 类型,分别表示严格版本过渡版本以及基于框架的 HTML 文档

新的HTML5文档类型和字符集是什么

HTML语义化

什么是 HTML 语义化?

为什么要语义化?

Canvas和SVG的区别

(1)SVG:SVG可缩放矢量图形是基于可扩展标记语言XML描述的2D图形的语言,SVG基于XML就意味着SVG DOM中的每个元素都是可用的,可以为某个元素附加Javascript事件处理器。在 SVG 中,每个被绘制的图形均被视为对象。如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图形。

其特点如下:

(2)Canvas: Canvas是画布,通过Javascript来绘制2D图形,是逐像素进行渲染的。其位置发生改变,就会重新进行绘制。

其特点如下:

注:矢量图,也称为面向对象的图像或绘图图像,在数学上定义为一系列由线连接的点。矢量文件中的图形元素称为对象。每个对象都是一个自成一体的实体,它具有颜色、形状、轮廓、大小和屏幕位置等属性。

单页应用和多页应用

单页应用

多页应用

link和@import的区别

超链接target属性的取值和作用?

它的参数值主要有:

iframe优缺点

优点

缺点

src与href的区别

src和href都是用来引用外部的资源,它们的区别如下:

title与h1的区别、b与strong的区别、i与em的区别

label标签的作用

<label for="Name">Number:</label>
<input type='text' name="Name" id="Name"/>
<label>Date:<input type="text" name="B"/></label>

html 中 title 属性和 alt 属性的区别

<img src="#" alt="alt信息" />

当图片不输出信息的时候,会显示 alt 信息 鼠标放上去没有信息,当图片正常读取,不会出现 alt 信息。

<img src="#" alt="alt信息" title="title信息" />

主流浏览器机器内核

浏览器 内核 备注
IE Trident IE、猎豹安全、360 极速浏览器、[百度]()浏览器
firefox Gecko -
Safari webkit 从 Safari 推出之时起,它的渲染引擎就是 Webkit,一提到 webkit,首先想到的便是 chrome,Webkit 的鼻祖其实是 Safari。
chrome Chromium/Blink 在 Chromium 项目中研发 Blink 渲染引擎(即浏览器核心),内置于 Chrome 浏览器之中。Blink 其实是 WebKit 的分支。大部分国产浏览器最新版都采用 Blink 内核。二次开发
Opera blink Opera 内核原为:Presto,现在跟随 chrome 用 blink 内核。

(牛客)浏览器页面有哪三层构成,分别是什么,作用是什么?

(其他)浏览器乱码的原因是什么?如何解决?

产生乱码的原因

解决办法

说一下 web worker

在 HTML 页面中,如果在执行脚本时,页面的状态是不可相应的,直到脚本执行完成后,页面才变成可相应。web worker 是运行在后台的 js,独立于其他脚本,不会影响页面的性能。 并且通过 postMessage 将结果回传到主线程。这样在进行复杂操作的时候,就不会阻塞主线程了。

如何创建 web worker:

  1. 检测浏览器对于 web worker 的支持性
  2. 创建 web worker 文件(js,回传函数等)
  3. 创建 web worker 对象