HTML前端⾯试题⼤全(持续更新)
HTML⾯试题
1 DOCTYPE有什么作⽤?标准模式与混杂模式如何区分?它们有何意义?
告诉浏览器使⽤哪个版本的HTML规范来渲染⽂档。DOCTYPE不存在或形式不正确会导致HTML⽂档以混杂模式呈现。
标准模式(Standards mode)以浏览器⽀持的最⾼标准运⾏;混杂模式(Quirks mode)中页⾯是⼀种⽐较宽松的向后兼容的⽅式显⽰。2 HTML5为什么只需要写?
HTML5不基于SGML(Standard Generalized Markup Language 标准通⽤标记语⾔),因此不需要对DTD(DTD ⽂档类型定义)进⾏引⽤,但是需要DOCTYPE来规范浏览器⾏为。
HTML4.01基于SGML,所以需要引⽤DTD。才能告知浏览器⽂档所使⽤的⽂档类型,如下:
3 ⾏内元素有哪些?块级元素有哪些?空(void)元素有那些?
⾏内元素:a span img input select
块级元素:div ul ol li dl dt dd h1 p
空元素:
4 页⾯导⼊样式时,使⽤link和@import有什么区别?
相同的地⽅,都是外部引⽤CSS⽅式,区别:
link是xhtml标签,除了加载css外,还可以定义RSS等其他事务;@import属于CSS范畴,只能加载CSS
link引⽤CSS时候,页⾯载⼊时同时加载;@import需要在页⾯完全加载以后加载,⽽且@import被引⽤的CSS会等到引⽤它的CSS⽂件被加载完才加载
link是xhtml标签,⽆兼容问题;@import是在css2.1提出来的,低版本的浏览器不⽀持
link⽀持使⽤javascript控制去改变样式,⽽@import不⽀持
link⽅式的样式的权重⾼于@import的权重
import在html使⽤时候需要<style type="text/css">标签
6 介绍⼀下你对浏览器内核的理解?
主要分成两部分:渲染引擎(Layout Engine或Rendering Engine)和JS引擎。
渲染引擎:负责取得⽹页的内容(HTML、XML、图像等等)、整理讯息(例如加⼊CSS等),以及计算⽹页的显⽰⽅式,然后会输出⾄显⽰器或打印机。浏览器的内核的不同对于⽹页的语法解释会有不同,所以渲染的效果也不相同。
JS引擎:解析和执⾏javascript来实现⽹页的动态效果。
最开始渲染引擎和JS引擎并没有区分的很明确,后来JS引擎越来越独⽴,内核就倾向于只指渲染引擎。
7 常见的浏览器内核有哪些?
Trident( MSHTML ):IE MaxThon TT The World 360 搜狗浏览器
Geckos:Netscape6及以上版本 FireFox Mozilla Suite/SeaMonkey
Presto:Opera7及以上(Opera内核原为:Presto,现为:Blink)
Webkit:Safari Chrome
8 HTML5有哪些新特性,移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分HTML
和HTML5
新增加了图像、位置、存储、多任务等功能。
新增元素:
1. canvas
2. ⽤于媒介回放的video和audio元素
3. 本地离线存储。localStorage长期存储数据,浏览器关闭后数据不丢失;sessionStorage的数据在浏览器关闭后⾃动删除
4. 语意化更好的内容元素,⽐如 article footer header nav section
5. 位置API:Geolocation
6. 表单控件,calendar date time email url search
7. 新的技术:web worker(web worker是运⾏在后台的 JavaScript,独⽴于其他脚本,不会影响页⾯的性能。您可以继续做任何愿意做的
事情:点击、选取内容等等,⽽此时 web worker 在后台运⾏) web socket
8. 拖放API:drag、drop
html代码属性大全
移除的元素:
1. 纯表现的元素:basefont big center font s strike tt u
2. 性能较差元素:frame frameset noframes
区分:
1. DOCTYPE声明的⽅式是区分重要因素
2. 根据新增加的结构、功能来区分
9 简述⼀下你对HTML语义化的理解?
1. 去掉或丢失样式的时候能够让页⾯呈现出清晰的结构。
2. 有利于SEO和搜索引擎建⽴良好沟通,有助于爬⾍抓取更多的信息,爬⾍依赖于标签来确定上下⽂和各个关键字的权重。
3. ⽅便其它设备解析。
4. 便于团队开发和维护,语义化根据可读性。
有哪些语义化标签:
10 HTML5的⽂件离线储存怎么使⽤,⼯作原理是什么?
在线情况下,浏览器发现HTML头部有manifest属性,它会请求manifest⽂件,如果是第⼀次访问,那么浏览器就会根据manifest⽂件的内容下载相应的资源,并进⾏离线存储。如果已经访问过并且资源已经离线存储了,那么浏览器就会使⽤离线的资源加载页⾯。然后浏览器会对⽐新的manifest⽂件与旧的manifest⽂件,如果⽂件没有发⽣改变,就不会做任何操作,如果⽂件改变了,那么就会重新下载⽂件中的资源,并且进⾏离线存储。例如,
在页⾯头部加⼊manifest属性
<html manifest='cache.manifest'>
在cache.manifest⽂件中编写离线存储的资源
CACHE MANIFEST
#v0.11
CACHE:
js/app.js
css/style.css
NETWORK:
Resourse/logo.png
FALLBACK:
11 cookies,sessionStorage和localStorage的区别?
共同点:都是保存在浏览器端,且是同源的。
区别:
1. cookies是为了标识⽤户⾝份⽽存储在⽤户本地终端上的数据,始终在同源http请求中携带,即cookies在浏览器和服务器间来回传递,
⽽sessionstorage和localstorage不会⾃动把数据发给服务器,仅在本地保存。
2. 存储⼤⼩的限制不同。cookie保存的数据很⼩,不能超过4k,⽽sessionstorage和localstorage保存的数据⼤,可达到5M。
3. 数据的有效期不同。cookie在设置的cookie过期时间之前⼀直有效,即使窗⼝或者浏览器关闭。sessionstorage仅在浏览器窗⼝关闭之
前有效。localstorage始终有效,窗⼝和浏览器关闭也⼀直保存,⽤作长久数据保存。
4. 作⽤域不同。cookie在所有的同源窗⼝都是共享;sessionstorage不在不同的浏览器共享,即使同⼀页⾯;localstorage在所有同源窗
⼝都是共享
13 label的作⽤是什么? 是怎么⽤的?
label标签⽤来定义表单控件间的关系,当⽤户选择该标签时,浏览器会⾃动将焦点转到和标签相关的表单控件上。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="InputBo
14 HTML5的form如何关闭⾃动完成功能?
HTML的输⼊框可以拥有⾃动完成的功能,当你往输⼊框输⼊内容的时候,浏览器会从你以前的同名输⼊框的历史记录中查出类似的内容并列在输⼊框下⾯,这样就不⽤全部输⼊进去了,直接选择列表中的项⽬就可以了。但有时候我们希望关闭输⼊框的⾃动完成功能,例如当
⽤户输⼊内容的时候,我们希望使⽤AJAX技术从数据库搜索并列举⽽不是在⽤户的历史记录中搜索。
⽅法:
1. 在IE的internet选项菜单中⾥的⾃动完成⾥⾯设置
2. 设置form输⼊框的autocomplete为on或者off来来开启输⼊框的⾃动完成功能
15 如何实现浏览器内多个标签页之间的通信?
1. WebSocket SharedWorker
2. 也可以调⽤ localstorge、cookies 等本地存储⽅式。 localstorge 在另⼀个浏览上下⽂⾥被添加、修改或删除时,它都会触发⼀个事
件,我们通过监听事件,控制它的值来进⾏页⾯信息通信。
注意:Safari 在⽆痕模式下设置 localstorge 值时会抛出QuotaExceededError 的异常
16 webSocket如何兼容低浏览器?
1. Adobe Flash Socket ActiveX HTMLFile (IE) 基于 multipart 编码发送 XHR 基于长轮询的 XHR
2. 引⽤WebSocket.js这个⽂件来兼容低版本浏览器。
17 页⾯可见性(Page Visibility)API 可以有哪些⽤途?
1. 通过visibility state的值得检测页⾯当前是否可见,以及打开⽹页的时间。
2. 在页⾯被切换到其他后台进程时,⾃动暂停⾳乐或视频的播放。
18 如何在页⾯上实现⼀个圆形的可点击区域?
1. map+area或者svg
2. border-radius
3. 纯js实现,⼀个点不在圆上的算法
19 实现不使⽤ border 画出1px⾼的线,在不同浏览器的Quirks mode和CSS Compat模式下都能保持同⼀效果
<div ></div>
20 title与h1的区别、b与strong的区别、i与em的区别?
title属性没有明确意义,只表⽰标题;h1表⽰层次明确的标题,对页⾯信息的抓取也有很⼤的影响
strong标明重点内容,语⽓加强含义;b是⽆意义的视觉表⽰
em表⽰强调⽂本;i是斜体,是⽆意义的视觉表⽰
视觉样式标签:b i u s
语义样式标签:strong em ins del code
21 元素的alt和title有什么异同?
在alt和title同时设置的时候,alt作为图⽚的替代⽂字出现,title是图⽚的解释⽂字.
22. XHTML和HTML有什么区别?简述⼀下你对HTML语义化的理解?
HTML是⼀种基本的WEB⽹页设计语⾔,XHTML是⼀个基于XML的标记语⾔. html语义化让页⾯的内容结构化,结构更清晰,便于对浏览器、搜索引擎解析;
23.浏览器页⾯有哪三层构成,分别是什么,作⽤是什么?
浏览器页⾯构成:结构层、表⽰层、⾏为层
分别是:HTML、CSS、JavaScript
作⽤:HTML实现页⾯结构,CSS完成页⾯的表现与风格,JavaScript实现⼀些客户端的功能与业务。
24.知道的⽹页制作会⽤到的图⽚格式有哪些?
Webp:WebP格式,⾕歌(google)开发的⼀种旨在加快图⽚加载速度的图⽚格式。
并能节省⼤量的服务器带宽资源和数据空间。Facebook Ebay等知名⽹站已经开始测试并使⽤WebP格式。
Apng:是PNG的位图动画扩展,可以实现png格式的动态图⽚效果,有望代替GIF成为下⼀代动态图标准。
25.知道的⽹页制作会⽤到的图⽚格式有哪些?
Webp:WebP格式,⾕歌(google)开发的⼀种旨在加快图⽚加载速度的图⽚格式。
并能节省⼤量的服务器带宽资源和数据空间。Facebook Ebay等知名⽹站已经开始测试并使⽤WebP格式。
Apng:是PNG的位图动画扩展,可以实现png格式的动态图⽚效果,有望代替GIF成为下⼀代动态图标准。
26.div+css的布局有什么优点?
(1)改版的时候更⽅便只要改css⽂件。
(2)页⾯加载速度更快、结构化清晰、页⾯显⽰简洁。
表现与结构相分离。
(3)易于优化(seo)搜索引擎更友好,排名更容易靠前。
27.⾏内元素有哪些?块级元素有哪些?空(void)元素有那些?
⾸先:CSS规范规定,每个元素都有display属性,确定该元素的类型,每个元素都有默认的display值,如div的display默认值为“block”,则为“块级”元素;span默认display属性值为“inline”,是“⾏内”元素。
(1)⾏内元素有:a b span img input select
(2)块级元素有:div p ul ol li dl dt dd h1-h6
(3)常见的空元素:br-换⾏,hr-⽔平分割线
28.隐藏元素的⼏种⽅法
(1)display:none;
(2)visibility:hidden;
(3)opacity:0;
(4)position:absolute; left:-10000px;
29.简述⼀下src与href的区别。
src⽤于替换当前元素,href⽤于在当前⽂档和引⽤资源之间确⽴联系。
30.实现不使⽤ border 画出1px⾼的线,在不同浏览器的标准模式与怪异模式下都能保持⼀致的效果
<div ></div>
31.清除浮动的⽅法有哪些?
第⼀种:clear:both
在⽗元素的⾥⾯添加⼀个空的clear的div(跟浮动的⼦级同级),然后再为这个类添加属性值clear:both;便可以清除浮动。
第⼆种:overflow:hidden
在⽗元素的样式中添加overflow: hidden;也可以清除浮动,如下css代码,但不提倡使⽤这个⽅法,overflow: hidden;还有⼀个意思就是隐藏超出的部分,处理不好还是会给页⾯带来⿇烦。
第三种:clearfix(推荐使⽤)
32、从浏览器地址栏输⼊url到显⽰页⾯的步骤
浏览器根据请求的URL交给DNS域名解析,到真实IP,向服务器发起请求;
服务器交给后台处理完成后返回数据,浏览器接收⽂件(HTML、JS、CSS、图象等);
浏览器对加载到的资源(HTML、JS、CSS等)进⾏语法解析,建⽴相应的内部数据结构(如HTML的DOM);
载⼊解析到的资源⽂件,渲染页⾯,完成。
33、HTML全局属性(global attribute)有哪些
class:为元素设置类标识
data-*: 为元素增加⾃定义属性
draggable: 设置元素是否可拖拽
id: 元素id,⽂档内唯⼀
lang: 元素内容的的语⾔
style: ⾏内css样式
title: 元素相关的建议信息

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。