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脚本的执行顺序不固定
上一篇: URL目录文件名优化过程中的14大技巧
下一篇: 学习web的第二天