html面试题

一、说说你对html语义化的理解?

答:1、去掉或者丢失样式的时候能够让页面呈现出清晰的结构

  2、有利于SEO:与搜索引擎建立良好的沟通,有助于爬虫抓取更过的有效信息,因为爬虫依赖标签来确定上下文和各个关键字的权重

  3、方便其他设备解析,例如屏幕阅读器,盲人阅读器,移动设备

  4、便于团队开发和维护,提高可读性,html语义化作为W3C的标准,能够减少差异化

二、DOCTYPE的作用?有何意义?DOCTYPE的种类?

答:1、<!DOCTYPE>位于文档的最前面,处于<html>标签之前,目的是告知浏览器以何种模式来渲染文档

  2、种类有:html5、html4.0.1 strict、html4.0.1 transitional、html4.0.1 frameset、xhtml1.0. strict、xhtml1.0 transitional、xhtml1.0 frameset

  3、strict包含所有的html元素,但是不包含展示性和已弃用的元素,transitional则包含展示性和已弃用的元素,frameset则在transitional的基础上包含框架集

  4、html5不不使用DTD,所以现在只需要<!DOCTYPE html>来声明html5页面

三、HTML和XHTML的区别?

答:1、XHTML元素必须被正确的嵌套

  2、XHTML元素必须被关闭

  3、XHTML标签名必须用小写

  4、XHTML文档必须有根元素

四、HTML4.0.1和HTML5的区别?

答:1、更加的语义化,新增了article、section、header、footer、nav等语义化标签,让我们更好的组织文档结构,适当的减少div的使用

  2、更加的关注组织,废弃了一些样式化的标签,如basefont,big,center,font等,让css来实现这些样式

  3、新增了video、audio、canvas来取代flash,video和audio支持多种格式的音视频,而canvas用来实现动画

  4、新增了localStorage和sessionStorage两种存储

  5、支持内联SVG,就像使用普通标签一样,使用SVG图像

五、defer和async相同点和不同点?

答:相同点:1、js脚本异步下载

      2、使用这两个属性的脚本中不能调用document.write方法

      3、只适用于外部脚本

  不同点:1、每一个async脚本加载完之后立即执行,所以肯定是在window.onload之前执行,至于在DOMContentLoad之前还是之后,得看async脚本和html哪个先加载完,因此多个async脚本需要注意依赖问题

      而defer脚本则是在html解析完成之后才执行,所以defer肯定在DOMContentLoad之前执行,而且多个defer脚本的执行顺序不固定

posted @ 2019-04-10 10:21  liuhw1988  阅读(382)  评论(0编辑  收藏  举报