当前位置: 首页 > Web前端 > HTML

前端计划-面试题总结-HTML篇

时间:2023-04-02 23:29:30 HTML

前言:“我的生命有极限,而知识没有极限。如果有极限,遵循极限,自我毁灭”-庄子,请作如下阅读本文前的心理准备:本系列文章会不定时更新。这个系列的文章不是很严谨。前端面试HTML篇A篇:常识系列你真的懂浏览器吗?HTML中的Doctype是什么鬼?带有额外X的XHTML和HTML有什么区别?不常见的怪癖!标签语义是神马B篇:什么是标签和属性系列、内联元素和块级元素?img的alt和title有什么异同?b和strong的区别,i和em的区别?cookie、sessionStorage和localStorage有什么区别?链接和导入的区别?src和href的区别?PartC:前端设计优化系列div+css布局相较于表格布局有哪些优势?渐进增强还是优雅降级?为什么使用多个域名存储网站资源更有效?开发者往往在css/js代码上线后进行性能优化。从用户刷新网页开始,一个js请求一般缓存在哪里?一个页面(大型电商网站)图片很多,加载很慢。你有什么方法来优化这些图片的加载,让用户有更好的体验。D部分:HTML5系列为什么HTML5只需要写?html5有哪些新特性,去掉了哪些元素?如何处理HTML5新标签的浏览器兼容性问题?如何区分HTML和HTML5?如何使用HTML5离线存储,能解释一下工作原理吗?浏览器如何管理和加载HTML5离线存储资源?如何关闭HTML5表单的自动完成功能?答案如下A部分:常识系列1、你真的懂浏览器吗?答案:本题考查常见的浏览器和内核。IE:Trident内核Firefox:Gecko内核Safari:Webkit内核Chrome:Blink内核(Webkit的一个分支)Opera:Presto(版本7到12);Blink(14版起)国产大型双核浏览器系列:Trident新增Webkit2。HTML中的Doctype是什么鬼?答:简单来说,这条语句放在文档的最前面,用来告诉浏览器的解析器按照文档类型规范来解析当前文档。3.多了一个X的XHTML和HTML有什么区别?答:简单来说,XHT??ML就是用XML格式编写的HTML,要求比较严格。元素语法等细节差异:XHTML元素必须正确嵌套XHTML元素必须始终闭合XHTML元素必须小写XHTML文档必须具有根元素属性语法:XHTML属性必须使用小写XHTML属性值必须用引号括起来XHTML属性缩小也被禁止更详细的区别是[这里][1]4.不常见的怪癖!答:Quirks又称怪癖模式、怪异模式、混合模式,对应标准模式。这是历史遗留问题。它发生在很久以前,在从IE5.5和旧版浏览器向IE6过渡期间。简单的说就是在这种模式下模拟旧版浏览器的行为,以兼容早期的网页。详细区别如下:总体来说,在布局、样式解析、脚本执行三个方面存在差异。(1)盒模型:在W3C标准中,如果给元素设置宽高,是指元素内容的宽高。在Quirks模式下,IE的宽高还包括padding和border。(2)设置内联元素的高宽:在Standards模式下,为等内联元素设置wdith和height不会生效,但在quirks模式下会生效。(3)设置百分比高度:在标准模式下,元素的高度由其包含的内容决定。如果父元素没有设置百分比高度,那么给子元素设置百分比高度是无效的。(4)Sethorizo??ntalcenteringwithmargin:0auto:在standards模式下使用margin:0auto可以使元素水平居中,但在quirks模式下会失效。5.语义标签是神奇的答案:简单地说,使用正确的标签做正确的事。HTML语义使页面内容结构化、清晰,便于浏览器和搜索引擎解析;即使没有样式CSS,也以文档格式显示,易于阅读;搜索引擎爬虫还依靠使用HTML标签来确定每个关键字的上下文和权重,这有利于SEO;方便阅读源代码的人将网站分块,便于阅读、维护和理解。B部分:标签和属性系列1、什么是行内元素和块级元素?答:简单来说,blocklevel和inline的区别就是能不能自己占一行!Blocklevel:divulolliph1(titleseries)dldtdt(descriptionlistseries)inline:spanabimginputselectstrong是的,空元素系列中有常见的空元素:


鲜为人知:2.img有什么相似之处以及alt和title之间的区别?b和strong的区别,i和em的区别?答:(1)alt:简单来说就是图片无法显示时显示的字。官方的解释是——对于不能显示图像、表单或小程序的用户代理(UA),alt属性用于指定替代文本。替换文本的语言由lang属性指定。title:简单的说就是鼠标移过时的提示信息。官方解释:title属性为设置该属性的元素提供提示信息。(2)strong表示重点内容,有加强语气的意思。使用阅读器阅读互联网时:会重读,则显示强调的内容。(3)i的内容以斜体显示,em表示强调的文字;3、cookies、sessionStorage、localStorage有什么区别?答:区别主要有以下三点。存储路径cookie是网站为了标识用户身份而存储在用户本地终端(ClientSide)上的数据(通常是加密的)。Cookie数据总是在同源HTTP请求中携带(即使不需要),并会在浏览器和服务器之间来回传递。sessionStorage和localStorage不会自动向服务器发送数据,只是保存在本地。存储大小:cookie数据大小不能超过4k。sessionStorage和localStorage虽然也有存储大小的限制,但是比cookie大很多,可以达到5M甚至更大。过期时间:localStorage存储持久化数据,浏览器关闭后数据不会丢失,除非主动删除数据;sessionStorage数据在当前浏览器窗口关闭后自动删除。cookie设置的cookie在过期时间前有效,即使窗口或浏览器关闭4.链接和导入有什么区别?答:(1)link是一个XHTML标签,除了加载CSS外,还可以用来定义RSS,定义rel连接属性等;而@import是CSS提供的,只能用来加载CSS;(2)页面加载完毕,链接会同时加载,@import引用的CSS会等到页面加载完成后才加载(3)import是CSS2.1提出的,只能被IE5及以上,而link是一个XHTML标签,没有兼容性问题;5.src和href有什么区别?答:简单来说,src是用来替换当前元素的,href是用来建立当前文档和引用资源之间的链接的。src常用于js/img/frame等元素,href常用于a/css等。下载时src元素不能做任何其他事情。只是参考。所以把js的src放在最下面是一个明智的选择。联系到上面的问题,href也是比@import更明智的选择。C篇:前端设计与优化系列1、div+css布局相对于table布局有什么优势?答:表格布局是很古老的网页设计,时代在进步。前者有很多优点:(1)改版本比较方便,改css文件即可。(2)页面加载速度更快,结构清晰,页面展示简洁。(3)性能与结构分离。(4)易于优化(seo)搜索引擎更友好,排名更容易出人头地。2、渐进增强还是优雅降级?答:渐进式增强(Progressiveenhancement):简单来说,就是照顾旧浏览器。先实现基本功能,再玩一些花里胡哨的东西。优雅降级(Gracefuldegradation):简单来说就是先构建完整的功能,再考虑旧版本的兼容性。两种设计思路有不同的考虑。老实说,我更喜欢优雅的退化。使用IE6的用户,对不起,我不想做兼容。请升级您的浏览器。.3、为什么使用多个域名存储网站资源更有效?答:(1)CDN缓存更方便(2)突破浏览器并发限制(3)节省cookie带宽(4)节省主域名连接数,优化页面响应速度(5)防止不必要的安全问题4.在css/js代码上线后,开发者往往会优化性能。从用户刷新网页开始,一个js请求一般缓存在哪里?答:DNS缓存、CDN缓存、浏览器缓存、服务器缓存5、一个页面(大型电商网站)图片很多,加载很慢。你有什么方法来优化这些图片的加载,让用户有更好的体验?.答:这道题有意思~(1)图片的懒加载,可以在页面不可见区域添加滚动条事件,判断图片所在位置到浏览器顶部的距离和距离页面,如果前者小于后者,则先加载。(2)如果是幻灯片、相册等,可以使用图片预加载技术,先下载当前显示图片的上一张和下一张。(3)如果图片是css图片,可以使用CSSsprite、SVGsprite、Iconfont、Base64等技术。(4)如果图片太大,可以使用经过特殊编码的图片。加载时,会先加载一个非常压缩的缩略图,以提高用户体验。(5)如果图片显示区域小于图片真实大小,会根据业务需要在服务端对图片进行压缩,压缩后的图片大小与图片大小相同显示。D部分:HTML5系列1、为什么HTML5只需要写?答:HTML5不是基于SGML的,所以不需要引用DTD,但是需要doctype来规范浏览器的行为(让浏览器按照应该的方式运行;而HTML4.01是基于SGML的,所以DTD需要参考,2.html5的新特性有哪些,去掉了哪些元素?如何处理HTML5新标签的浏览器兼容性?如何区分HTML和HTML5?新特性HTML5不再是SGML的子集主要是图片、定位、存储、多任务处理等功能的增加。绘画画布;用于媒体播放的视频和音频元素;本地离线存储localStorage长期数据存储,关闭浏览器后数据不会丢失;sessionStorage数据在浏览器关闭后自动删除;具有更好语义的内容元素,例如article、footer、header、nav、section;表单控件、日历、日期、时间、电子邮件、URL、搜索;新技术webworker、websocket、Geolocation;删除的元素:纯粹的表达元素:basefont,big,center,font,s,strike,tt,u;对可用性有负面影响的元素:frame、frameset、noframes;支持HTML5新标签:IE8/IE7/IE6支持通过document.createElement方法生成的标签,你可以使用这个特性让这些浏览器支持HTML5新标签。浏览器支持新标签后,需要添加标签的默认样式。当然也可以直接使用成熟的框架,比如html5shim;如何区分HTML5:DOCTYPE声明\新增结构元素\功能元素3、如何使用HTML5离线存储,能解释一下工作原理吗?答:当用户未连接到互联网时,站点或应用程序可以正常访问,并在用户连接到互联网时更新用户机器上的缓存文件。原理:HTML5的离线存储是基于一种新的.appcache文件缓存机制(不是一种存储技术)。通过这个文件上的解析列表来离线存储资源,这些资源会像cookies一样被存储。之后当网络离线时,浏览器会通过离线存储的数据来显示页面。使用方法:在页面头部添加manifest属性如下;在cache.manifest文件中写入离线存储资源;CACHEMANIFEST#v0.11CACHE:js/app.jscss/style.cssNETWORK:resource/logo.pngFALLBACK://offline.html离线时,运行window.applicationCache实现需求。4、浏览器如何管理和加载HTML5离线存储资源?答:上网时,浏览器发现html头有manifest属性,就会去请求manifest文件。如果是第一次访问app,浏览器会根据manifest文件的内容下载相应的资源并离线存储。如果app被访问过,并且资源已经离线存储,浏览器会使用离线资源加载页面,然后浏览器会比较新的manifest文件和旧的manifest文件,如果文件没有变化,什么都不做,如果文件发生变化,文件中的资源会被重新下载并离线存储。离线时,浏览器直接使用离线存储的资源。5、如何关闭HTML5表单的自动完成功能?答案:为您不想提示的表单或输入设置autocomplete=off。