美文网首页
前端面试准备之——HTML篇

前端面试准备之——HTML篇

作者: Amor_Hy | 来源:发表于2017-08-04 11:33 被阅读0次

    1.对Web标准的理解和W3C的认识。

    Web标准简单的将页面分为结构(HTML),样式(CSS),和行为(JavaScript),Web标准将其独立分开使其更具有模块化。

    W3C对Web标准提出了规范化的要求,比如

    ① 对结构的要求:标签字母要小写,标签要闭合,标签不随意嵌套,这样有助于页面被搜索引擎的抓取,对SEO有很大的帮助。

    ② 对样式和行为的要求:要求尽量使用外链的样式表和脚本,做到页面的模块化,使用更少的代码和组件,这样使页面容易维护,改版方便,不需要变动页面内容

    2. Doctype的作用?严格模式和混杂模式的区别? 以及如何触发?

    Doctype存在HTML页面代码的第一行(<html>标签之前),用于告诉浏览器用什么样的Web标准来解析该页面。

    严格模式是根据浏览器所支持的最高的标准来解析文档。混杂模式(兼容模式)页面会以宽松的向后兼容的模式被解析,会模拟老浏览器的的行为以防止站点无法工作。

    页面如果包含完整的DOCTYPE 页面就是以严格模式来解析页面, 如果不写或者Doctype的格式错误会导致浏览器以兼容模式解析该页面。

    3. 为什么HTML5只用书写<!DOCTYPE HTML> ?

    因为HTML5不是基于SGML,因此不需要对DTD进行引用,但是要用DOCTYPE来规范浏览器的行为

    而HTML4.0是基于SGML, 因此需要对DTD的引用,才能让浏览器知道该文档所使用的文档类型。

    4. 描述从输入网址到显示网页的过程

    1、浏览器输入网址

    2、DNS服务器解析相应的域名:一般是本机的DNS服务器先解析,如果没有就请求上级DNS服务器中解析,直到得到相应的Web服务器的IP地址

    3、浏览器与服务器建立TCP连接(两次握手)

    4、浏览器向服务器发送HTTP请求

    5、服务器响应浏览器的请求,查找资源并返回响应报文(包括状态码200,300,400,500等)

    6、服务器返回相应的HTML源文件

    7、服务器与客户端断开TCP连接(4次挥手)

    8、浏览器得到相应的资源开始进行解析,构建DOM树,渲染DOM树,绑定事件的等页面显示完成。

    5. HTTP1.1和HTTP2的区别

    1、HTTP 2.0 采用二进制格式并非文本格式

    2、HTTP 2.0 是完全多路复用

    3、使用报头压缩,降低了HTTP/2的开销

    4、HTTP/2 可以让服务器的响应主动推送到客户端缓存中

    6. HTML和XHTML的区别?

    HTML是web网页设计语言,XHTML是基于XML的置标语言

    XHTML元素必须被正确嵌套,正确关闭,标签必须小写,必须有根元素。

    7. 盒子模型

    分为IE盒子模型和标准盒子模型 (content  border padding margin)

    IE盒子模型包括conent、border 和 padding

    标准盒子模型包括content

    8. 行内元素有哪些? 块级元素有哪些?

    行内元素: span img input textarea a input 

    块级元素: div h1~h6  ul ol p table dir

    9. 对浏览器内核的理解?以及常见的浏览器内核有哪些?

    浏览器内核负责对网页语法的解释和渲染显示,不同浏览器对网页语法的解释和渲染有所不同,因此在编写页面时要在不同内核的浏览器中测试才行。

    常见的浏览器内核有

    IE浏览器的 Trident

    Opera Chrome 使用webkit内核

    IE Edge浏览器使用 EdgeHtml内核

    10. CSS引入方法有哪些? link 和 @import 有什么区别?

    页面内使用css的方式有: 行内嵌入式  页面头部内嵌套 外面链接调用

    外部链接有两种方式:link 和 @import

    两者的区别:link是XHTML的标签,不仅可以引入CSS外,还可以定义RSS服务

    @import是属于CSS范畴,只能引入CSS文件

    link引入的文件在页面的加载同时加载,而@import的CSS必须在页面加载完后才能加载

    link引入的样式支持JS的DOM操作更改样式(即通过更改link的src属性,来达到更换css样式表),而@import引入的样式不可以更改。

    11. 简述你对HTML语义化的理解

    1、HTML语义化可以让页面的内容结构化,结构清晰,有利于浏览器和搜索引擎的解析

    2、在没有CSS样式的情况下,以文档的形式展示出来,并且是便于理解的

    3、有利于阅读源码人员的理解,方便以后的维护,更新。

    4、搜索引擎的爬虫也依赖于HTML标记来确定上下文和各个关键字的权重,有利于SEO;

    12、form表单的readonly 和 disabled属性的区别?

    readonly是用户只能看,不能更改,但是会随表单提交

    disabled是input元素在加载时禁用,不会随着表单提交

    但二者都可以通过js脚本更改value值。

    13、<head>标签中唯一必须的标签是?

    下面这些标签可用在 head 部分::<base> <meta> <script> <link> <style> <title>,, 以及,, 以及

    <title>定义文档的标题,是head中唯一必须的元素

    14、HTML5 新增了哪些特性? 如何处理HTML5新标签的兼容问题?

    H5 新增了article section nav footer header; date time search email calender; canvas audio video; localStorge sessionStorge

    使用html5shim框架, 对于IE6/7/8 通过document. 产生标签

    如何分辨HTML5? 通过声明,或者标签。

    15、HTML5的离线存储怎么用?

    在用户没有连接英特网时,可以正常访问站点和应用;在用户连接英特网时,更新用户机器上的缓存文件。

    原理:HTML5的离线存储是基于一个新建的 ‘.appcache’文件的缓存机制(并非存储技术),通过这个文件上的解析清单离线存储资源,这些资源就会像cookie一样被存储下来。之后当网络处于离线状态下时,浏览器会通过被离线存储的数据进行页面展示。

    使用方法:(1) 在页面头部像下面一样加入一个 manifest 的属性;

    (2) 在 cache.manifest文件里编写离线存储资源;  

     CACHE MANIFEST#v0.11CACHE:   

     js/app.js

    css/style.css

    (3) 在离线状态时,操作 window.applicationCache进行需求实现;

    16、浏览器怎么对HTML5的离线存储资源进行管理和加载呢?

    在线情况下,浏览器检测html5文件头部是否有mainfest属性,如果有就请求mainfest文件,如果是第一次访问,就会根据mainfest文件的内容下载相应的资源并且进行离线存储, 如果已经访问过并且相应的资源已经离线存储,那么就调用相应的离线资源加载页面,然后浏览器会对比新的mainfest文件和就得mainfest文件,如果发生改变,就将重新下载文件中资源进行离线缓存

    如果是离线情况就直接调用mainfest文件对应的资源。

    17、cookies、sessionStorge、 localStorge的区别?

    cookies的大小只有4k,每次http请求都会发送,可以规定cookies的生命时间,即在规定时间内清除,默认是每次页面关闭的时候清除

    sessionStorge的大小有5M, 在浏览器关闭的时候清除, 不参与服务器通信

    localStorge的大小有5M,会一直存在,不会清除除非手动清除, 不参与服务器通信

    cookies通过domain文件和path/路径 能达到文档源级别

    sessionStorge、localStorge是文档源级别即同源窗口共享

    但sessionStorge在不同浏览器的同一个窗口不能共享

    文档源级别是 协议、主机名、端口一样

    18、Label 的作用是什么? 怎么使用?

    label标签是来扩大表单控件的点击范围,本身没有任何样式,当点击label标签的时候,会自动将焦点转到与label相关联的控件上

    <lable name="number">Number </lable>

    <input id= "number" type="text">

    //当点击label标签时,焦点转到input标签上

    19、如何实现浏览器内多个标签页之间的通信?

    1 使用localStorge

    localStorge.setItem(key, value) //给localStorge添加内容

    localStorge.getItem(key)//获取localStorge中的内容

    在两一个页面进行

    window.addEventListener("storge", function(event){

    console.log(event.key + "=" + event.newValue);

    })

    2 使用cookies 和 setInterval

    document.cookies="name="+name;

    setInterval(function(){

    JSON.parse("{\"+ document.cookie.replace(/;\s+/gim,"\",\"").replace(/=/gim,"\":\"") +"\"}")[key];

    }, 1000);

    20、 webSocket 如何兼容低浏览器?

    AdobeFlash 

    SocketActiveXHTMLFile(IE)

    基于multipart编码

    发送 XHR基于长轮询的 XHR

    21、iframe有哪些缺点?

    会阻塞主页面的onload事件

    搜索引擎无法解析这种页面,不利于SEO

    会影响页面的并行加载

    并行加载: 同一时间针对同一域名的请求

    一般情况下iframe和所在页面在同一域下

    解决方案:

    使用js动态给iframe的src加载页面内容

    22、实现 不使用 border 画出 1px 高的线,在不同浏览器的标准模式与怪异模式下都能保持一致的效果?

    height:1px

    overflow: hidden

    background:#ccc

    23、实现在移动端的border为1px

    .content:after{

    position:absolute;

    content: " ";

    left: 0

    top: 0

    width:100%;

    border: 1px solid #ccc;

    }

    @media(-webkit-min-device-pixel-ratio: 1.5), (min-device-pixel-ratio: 1.5){

    .content:after{

    -webkit-transform: scaleY(0.7)

    transform:scaleY(0.7)

    }

    @media(-webkit-min-device-pixel-ratio: 2), (min-device-pixel-ratio: 2){

    .content:after{

    -webkit-transform: scaleY(0.5)

    transform:scaleY(0.5)

    }

    相关文章

      网友评论

          本文标题:前端面试准备之——HTML篇

          本文链接:https://www.haomeiwen.com/subject/vrcvlxtx.html