转载自:帅地博客
1、src 和 href 的区别
src 和 href 都是用来引用外部的资源,它们的区别如下:
(1)src
指向的内容会嵌入到当前标签所在的位置,会将其指向的资源下载并应⽤到⽂档内;
当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执⾏完毕,所以⼀般 js 脚本会放在页面底部。
例如:请求 js 脚本
(2)href
建立网络资源和当前元素、文档的链接关系;
并行下载资源,不会停⽌对当前⽂档的处理。
例如:a、link 等标签
2、对 HTML 语义化的理解
语义化是指根据内容的结构化(内容语义化),选择合适的标签(代码语义化)。
语义化的优点如下:
-
对机器友好,带有语义的文字表现力丰富,更适合搜索引擎的爬虫爬取有效信息
-
对开发者友好,使用语义类标签增强了可读性,结构更加清晰,开发者能清晰的看出网页的结构,便于团队的开发与维护
3、DOCTYPE 的作用?标准模式与兼容模式有什么区别?
(1)DOCTYPE 的作用
<!DOCTYPE> 告知浏览器的解析器用什么文档标准解析文档;
该声明位于位于 HTML 文档中的第一行,处于 <html> 标签之前;
DOCTYPE 不存在或格式不正确会导致文档以兼容模式呈现。
(2)标准模式与兼容模式的区别
标准模式以该浏览器支持的最高标准运行;
兼容模式,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。
4、script 标签中 defer 和 async 的区别
都是让 js 文件能够异步下载,不阻塞页面的渲染,它们的区别如下:
- async:边渲染 html,边下载 js,下载完成后暂停 html 的解析,先执行 js,再继续渲染页面
- defer :边渲染 html,边下载 js,然后等待整个文档渲染完成后执行 js
下载的处理二者是相同的,主要是执行的时间不同。如果两个属性同时设置,以 async 为准。
5、常用的 meta 标签有哪些
meta 标签由 name 和 content 属性定义,用来描述网页文档的属性,比如:网页的作者、网页描述、关键词等
除了 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 参数有如下:
- width viewport:宽度(数值/device-width)
- height viewport:高度(数值/device-height)
- initial-scale:初始缩放比例
- maximum-scale:最大缩放比例
- minimum-scale:最小缩放比例
- user-scalable:是否允许用户缩放(yes/no)
(6)robots:搜索引擎搜索方式
<meta name="robots" content="index,follow" />
其中,content 参数有如下:
all:文件将被检索,且页面上的链接可以被查询
none:文件将不被检索,且页面上的链接不可以被查询
index:文件将被检索
noindex:文件将不被检索
follow:页面上的链接可以被查询
nofollow:页面上的链接不可以被查询
6、img 的 srcset 属性的作用
(1)响应式页面中经常用到根据屏幕密度设置不同的图片,这时就用到了 img 标签的 srcset 属性
(2)srcset 属性用于设置不同屏幕密度下,img 会自动加载不同的图片
例如:如下代码能实现在屏幕密度为 1x 的情况下加载 image-128.png,屏幕密度为 2x 时加载 image-256.png
<img src="image-128.png" srcset="image-256.png 2x" />
按照上面的实现,不同的屏幕密度都要设置图片地址,目前的屏幕密度有 1x,2x,3x,4x 四种,如果每一个图片都设置4张图片,加载就会很慢
(3)新的 srcset 标准
<img src="image-128.png"
srcset="image-128.png 128w, image-256.png 256w, image-512.png 512w"
sizes="(max-width: 360px) 340px, 128px" />
其中,srcset 指定图片的地址和对应的图片质量,sizes 用来设置图片的尺寸零界点(w 单位,可以理解成图片质量);
如果可视区域小于这个质量的值,就可以使用;浏览器会自动选择一个最小的可用图片
sies语法如下:
sizes="[media query] [length], [media query] [length] ... "
sizes 就是指默认显示128px,如果视区宽度大于360px,则显示340px
7、行内元素、块级元素、空(void)元素有哪些
行内元素:img(图片)、input(文本框)、a(链接)
块级元素:div(盒子)、ul(列表)、p(段落)、h(标题)
空元素,即没有内容的 HTML 元素,没有闭合标签:br(换行)、hr(水平线)
8、说一下 web worker
在 HTML 页面中,如果在执行脚本时,页面的状态是不可相应的,直到脚本执行完成后,页面才变成可相应。
web worker 是运行在后台的 js,独立于其他脚本,不会影响页面的性能。 并且通过 postMessage 将结果回传到主线程。这样在进行复杂操作的时候,就不会阻塞主线程了。
如何创建 web worker:
- 检测浏览器对于 web worker 的支持性
- 创建 web worker 文件(js、回传函数等)
- 创建 web worker 对象
9、浏览器是如何对 HTML5 的离线储存资源进行管理和加载的?
(1)在线的情况下:浏览器发现 html 头部有 manifest 属性,它会请求 manifest 文件
- 如果是第一次访问页面 ,那么浏览器就会根据 manifest 文件的内容下载相应的资源并且进行离线存储
- 如果已经访问过页面并且资源已经进行离线存储了,那么浏览器就会使用离线的资源加载页面,然后浏览器会对比新的 manifest 文件与旧的 manifest 文件,如果文件没有发生改变,就不做任何操作,如果文件改变了,就会重新下载文件中的资源并进行离线存储
(2)离线的情况下:浏览器会直接使用离线存储的资源。
10、iframe 有那些优点和缺点
iframe 元素会创建包含另外一个文档的内联框架(即行内框架)
(1)优点
- 用来加载速度较慢的内容(如广告)
- 可以使脚本可以并行下载
- 可以实现跨子域通信
(2)缺点:
- iframe 会阻塞主页面的 onload 事件
- 无法被一些搜索引擎索识别
- 会产生很多页面,不容易管理
11、Canvas 和 SVG 的区别
12、文档声明(Doctype)和 !Doctype html 有何作用?
文档声明的作用(Doctype):为了告诉浏览器,当前 HTML 文档使用什么版本的 HTML 来写的,这样浏览器才能按照声明的版本来正确的解析。
!Doctype html 的作用就是让浏览器进入标准模式,使用最新的 HTML5 标准来解析渲染页面;如果不写,浏览器就会进入混杂模式,我们需要避免此类情况发生
13、浏览器乱码的原因是什么?如何解决?
(1)产生乱码的原因
① Html 源代码的编码格式与浏览器的解码格式不匹配
② 数据库中数据编码格式与六拉起解码格式不匹配
(2)解决办法
① 在 html 中 的 head 标签中添加 <meta charset=xxx >,让浏览器按照固定解码格式解析
② 在显示数据库数据前进行转码;
14、渐进增强和优雅降级之间的区别
15、说一下 HTML5 drag API
16、HTML5 有哪些新特性、移除了哪些元素?如何处理 HTML5 新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?
(1)HTML5 新特性:主要添加了图像、位置、存储、多任务等功能
① 绘画 canvas
② 媒介回放的 audio 、video 元素
③ localStorage 本地离线长期存储数据,浏览器关闭后数据不消失
④ session Storage 浏览器关闭后数据自动删除
⑤ 新的语义化标签:header、footer、article、nav、session(语义化更好)
⑥ 新的表单:calendar、date、time、email、url、search
⑦ 控件元素:webworker、websocket、Geolocation
(2)移除的元素
① 纯表现的元素:basefont、big、center、font、s、strike、tt、u
② 对可用性产生负面影响的元素:frame、frameset、noframes
(3)处理HTML5新标签的浏览器兼容
方法一:IE6/IE7/IE8 可以通过 document.createElement 方法让浏览器支持 HTML5 新标签,再添加标签默认的样式
方法二:使用成熟的框架,例如 html5shim 框架
<!--[if lt IE 9]>
<script> src="http://html5shim.googlecode.com/svn/trunk/html5.js"</script>
<![endif]-->
(4)如何区分 HTML 和 HTML5
方法一:DOCTYPE 声明的方式
方法二:根据新增的结构、功能元素来加以区分
17、浮动有哪些方式?比较好的方式是哪一种?
① 额外标签法
浮动元素末尾添加一个块级元素或者<br/>,给新添的元素设置 clear:both 属性
② 给父级元素添加 overflow:hidden 属性
③ :after 伪元素法
④ :before、:after 双伪元素法
18、实现布局中间自适应宽度,左右两栏固定宽度
给父元素设置 display:flex 属性
19、写出几种 IE6 BUG 的解决方法
双边距 BUG float 引起的 使用 display
超链接 hover 后点击失效,使用正确的书写顺序 link visited hover active
png 透明使用 js 代码改
select 在 ie6下遮盖 使用 iframe 嵌套
20、meta viewport 有什么作用?如何写?
(1)作用
为了移动端不让用户缩放页面使用的
(2)如何写
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1">
-
width=device-width:将宽度设置为设备屏幕分辨率的宽度
-
initial-scale=1:页面初始缩放比例为屏幕分辨率的宽度
-
maximum-scale=1:指定用户能够放大的最大比例
-
minimum-scale=1:指定用户能够缩小的最大比例
21、script 标签为什么要放在 body 标签的底部
(1)原因
因为浏览器在渲染 html 的时候,从上到下依次执行,遇到 js 文件就会停止当前页面的渲染,转而去下载 js 文件;
如果将 script 标签放在头部,在文件很大的情况下,首屏时间就会延长,影响用户体验。
(2)解决方法
- 将 script 标签放到 body 的底部
- 通过 defer\async 属性将 js 文件转为异步下载
22、HTML5元素分类
23、SVG 与 HTML5 的 canvas 各有什么优点?哪个更有前途?
24、标准模式和混杂模式的区别
25、标准模式和严格模式的区别
26、Quirks 模式是什么 它和 Standards 模式有什么区别
27、渐进增强和优雅降级有什么不同?
28、简述一下 src 与 href 的区别
src 和 href 都是用来引用外部的资源,它们的区别如下:
(1)src
指向的内容会嵌入到当前标签所在的位置,会将其指向的资源下载并应⽤到⽂档内;
当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执⾏完毕,所以⼀般 js 脚本会放在页面底部。
例如:请求 js 脚本
(2)href
建立网络资源和当前元素、文档的链接关系;
并行下载资源,不会停⽌对当前⽂档的处理。
例如:a、link 等标签
29、一个页面上有大量的图片,加载很慢,有哪些方法优化这些图片的加载?
(1)方法一:图片懒加载
在渲染页面过程中,图片不会一次性全部加载,会在需要的时候加载;
比如当滚动条滚动到某一个位置时触发事件加载图片
(2)方法二:图片预加载
幻灯片、相册等可以将当前展示图片的前一张和后一张优先下载
(3)方法三:CSSsprite,SVGsprite,Iconfont、Base64 等技术
图片为 css 的情况下可以使用
(4)方法四:特殊编码的图片
如果图片过大,可以在加载时会先加载一张压缩的特别厉害的缩略图,以提高用户体验
30、以前端角度出发做好 SEO 需要考虑什么
31、清除浮动的几种方法
① 额外标签法
浮动元素末尾添加一个块级元素或者<br/>,给新添的元素设置 clear:both 属性
② 给父级元素添加 overflow:hidden 属性
③ :after 伪元素法
④ :before、:after 双伪元素法
32、写 HTML 代码时应注意什么
33、HTML5 的 form 如何关闭自动完成功能?
设置输入框的 autocomplete 为 "on" 或者 "off" 来开启或者关闭该输入框的自动完成功能
34、如何实现浏览器内多个标签页之间的通信
35、XML 和 JSON 的区别
36、如何进行网站性能优化
37、HTML 和 XHTML 的区别是什么
XHTML 是用 xml 的语法来规范 html
XHTML 元素必须被正确地嵌套
XHTML 元素必须被关闭
38、网页内容需要支持多语言,应该怎么做?
39、如果把 HTML5 看作做一个开放平台,那它的构建模块有哪些
40、如果页面使用 ‘application/xhtml+xml’ 会有什么问题吗
41、请解释下什么是语义化的 HTML
语义化是指根据内容的结构化(内容语义化),选择合适的标签(代码语义化)。
语义化的优点如下:
-
对机器友好,带有语义的文字表现力丰富,更适合搜索引擎的爬虫爬取有效信息
-
对开发者友好,使用语义类标签增强了可读性,结构更加清晰,开发者能清晰的看出网页的结构,便于团队的开发与维护
42、怎么理解 WEB 标准以及 W3C 标准?
(1)WEB 标准:三个部分、模块化
① 结构:Html 标签,即页面 body 里写入的标签
② 表现:Css 样式表,使页面的结构标签更具美感
③ 行为:Js ,页面和用户的交互、页面结构或表现发生变化
(2)W3C 标准:对 WEB 标准提出了规范化的要求,也就是在实际编程中的一些代码规范
① 对结构的要求:
- 标签字母要小写
- 标签要闭合
- 标签不允许随意嵌套
② 对表现和 js 的要求
- 尽量使用外联 css 样式表和 js 脚本
- 样式尽量少用行间样式表,使结构与表现分离
- 标签的 id 和 class 等属性命名要做到见文知义
43、前端页面有哪三层构成?作用是什么?
① 结构层:由 HTML 创建,描述网页内容的语义含义
② 表示层:由 CSS 创建,描述网页如何显示
③ 行为层:由 JS 负责,网页如何对某个事件做出反应
44、页面可见性(Page Visibility)API 可以有哪些用途
45、Quirks(怪癖)模式是什么 它和 Standards(标准)模式有什么区别
46、div+css 的布局较 table 布局有什么优点?
① 结构、表现分离,改版的时候更方便,只要改 css 文件。
② 页面加载速度更快、页面显示简洁
③ 易于优化(seo),搜索引擎更友好
47、html 常见兼容性问题
48、如何在页面上实现一个圆形的可点击区域
49、HTML 全局属性(global attribute)有哪些
50、meta viewport 原理是什么
51、Viewport 属性值
52、页面导入样式时,使用 link 和 @import 有什么区别
53、label 的作用是什么?是怎么用的?
(1)作用
label 标签用来定义表单控件间的关系,当用户选择该标签时,浏览器会自动将焦点转到和标签相关的表单控件上
(2)如何使用
label 中有两个属性是非常有用的,即 FOR 和 ACCESSKEY
① FOR 属性功能:表示 label 标签绑定的 HTML 元素,你点击这个标签的时候,所绑定的元素将获取焦点,例如:
<Label FOR="InputBox">姓名</Label><input ID="InputBox" type="text">
② ACCESSKEY 属性功能:表示 label 标签绑定的热键,当您按下热键,所绑定的元素将获取焦点。例如:
<Label FOR="InputBox" ACCESSKEY="N">姓名</Label><input ID="InputBox" type="text">
54、js 放在 html 的不同位置有什么区别吗
(1)原因
因为浏览器在渲染 html 的时候,从上到下依次执行,遇到 js 文件就会停止当前页面的渲染,转而去下载 js 文件;
如果将 script 标签放在头部,在文件很大的情况下,首屏时间就会延长,影响用户体验。
(2)解决方法
- 将 script 标签放到 body 的底部
- 通过 defer\async 属性将 js 文件转为异步下载
55、移动 HTML5 开发流行的框架有哪些
(1)jQueryMobile
- jQuery 在手机上和平板设备上的版本
- 给主流移动平台带来 jQuery 核心库
- 有完整统一的 jQuery 移动UI框架
- 支持全球主流的移动平台
(2)jQTouch
- 是一个 jQuery 的插件
- 主要用于手机上的 Webkit 浏览器上实现一些包括动画、列表导航、默认应用样式等各种常见 UI 效果的 Java 库
- 支持包括 iPhone、Android 等手机。
56、HTML5 中如何嵌入视频
和音频类似,HTML5 支持 MP4、WebM 和 Ogg 式的视频
<video width=”450″ height=”340″ controls>
<source src=”jamshed.mp4″ type=”video/mp4″>
Your browser does’nt support video embedding feature.
</video>
57、Typeof 的作用
- 数字类型, typeof 返回的值是 number。比如:typeof(1),返回的值就是 number
- 字符串类型, typeof 返回的值是 string。比如:typeof(“123”)返回的值是 string
- 布尔类型, typeof 返回的值是 boolean 。比如:typeof(true) 返回的值是 boolean
- 对象、数组、null ,返回的值是 object 。比如 typeof(window),typeof(document),typeof(null) 返回的值都是 object
- 函数类型,返回的值是 function。比如:typeof(eval),typeof(Date) 返回的值都是 function
- 如果运算数是没有定义的(比如说不存在的变量、函数或者 undefined ),将返回 undefined
浙公网安备 33010602011771号