HTML5 面试题

1. HTML5的设计目的

        是为了在移动设备上支持多媒体之前网页如果想嵌入视频音频,需要用到 flash ,但是苹果设备是不支持 flash 的,所以为了改变这一现状,html5 应运而生

2. 语义化标签

        ①header:一个区块的头部信息/标题;②footer:一个区块的底部信息;③nav:导航栏区域;④section:一个通用独立章节或者区域。一般来说会包含一个标题。⑤article:一块独立区块,表示一块相对比较独立的内容;;⑥aside:表示一个和主体内容几乎无关的部分,可以被单独的拆分出来而不会使整体受影响。

        为了便于开发,以及更好的阅读的代码,还有SEO优化(就是便于浏览器找到这个网页,增加曝光量和浏览量)

3. 表单标签

        ①email:邮件控件;②url:地址控件;③range:数字范围控件;④date:选取日、月、年⑤month:选取月、年; ⑥week:选取周和年;⑦time:选取时间(小时和分钟))⑨search:搜索控件;⑩color:颜色控件

新增属性

        ①autofocus:自动获取焦点;②required:不能为空;③disabled:禁用;④hidden:隐藏

 4. 媒体标签

      ①video:视频;②audio:音频;③embed:嵌入内容(包括各种媒体),Midi、Wav、AU、MP3、Flash、AIFF 等。

5. 其他标签

        ①mark:标注;②progress:进度条;•<progress max="100" value="20"></progress>③time:数据标签,给搜索引擎使用;•发布日期 <time datetime="2014-12-25T09:00">9:00</time>•更新日期 <time datetime="2015-01-23T04:00" pubdate>4:00</time>; ④ruby 和 rt:对某一个字进行注释;•<ruby> 汉 <rt>han</rt> 字 <rt>zi</rt> </ruby>⑤canvas:绘图标签;⑥deteils :展开菜单;⑦datalist:数据列表元素;

6. W3C标准

网页组成

结构(骨架):HTML用于描述页面的结构

表现(皮肤):CSS用于控制页面中的页面的样式

行为(交互):JS用于响应用户操作

对结构的要求

        标签字母要小写,并且要闭合

对行为的要求

        建议使用外链CSS和JS脚本,实现结构与表现分离,结构与行为分离,能提高页面的渲染效率,也能更快的显示网页内容 

7. 浏览器的渲染过程

        浏览器渲染原理

浏览器上的进程

(1)浏览器进程:负责tab页的管理

(2)浏览器渲染进程:负责页面的渲染

(3)GPU进程:用于3D绘制,例如用canvas进行3D绘图

(4)插件进程:插件运行在插件进程中

(5)网络进程:用于网络通信

渲染进程下的线程

(1)主线程:负责js运行,解析html和css

(2)工作线程:用于后台工作,计算处理数据

(3)光栅线程: 把文档结构(DOM),文档样式(CSSOM),文档几何信息(Layout),文档图层                                    信息(Layer)显示到显示器的像素上

(4)合成线程: 把不同的图层按绘制顺序绘制到显示器

(5)定时器线程:负责定时器的处理

(6)事件处理线程:负责回调事件的处理

 

渲染流程(有渲染进程进行操作)

   静态资源 ==》构建DOM树 ==》CSSOM树构建 ==》渲染树构建 ==》页面布局 ==》页面绘制

        产生产物:    DOM树               CSSOM树               CSSOM树             盒模型            界面 

浏览器的渲染引擎模块

HTML解析器:将HTML文档转换成DOM树

CSS解析器:用于渲染树的构建

JS解析器:JavaScript解释器能够解释JavaScript代码,并通过DOM接口和CSSOM接口来修改网页内容、样式规则,从而改变渲染结果

④页面布局:针对渲染树,计算其各个元素的大小、位置等布局信息

⑤页面绘制:将布局计算后的渲染树绘制成可视化的图像结果

一. DOM树构建(HTML 标签的层级关系)

        DOM的作用:

             ①DOM是生成页面的基础数据结构

             ②DOM提供 js 脚本操作的接口,进行改变文档的结构,样式和内容

             ③从安全的方面来看,不安全的内容会在DOM解析阶段会拒之门外

        构建流程

               通过栈的数据结构计算节点的父子结构(类似括号匹配)

                      1. 将文档标签字符拆分成头标签内容尾标签

                      2. 遇到头标签入栈

                      3.遇到尾标签出栈

二. CSSOM构建(选择器之间的层级关系)

        cssom的作用:

                ①提供给 js 操作的接口

                ②为渲染树的合成提供基础的样式信息

        css样式来源

                ①通过 link 引用的外部 CSS 样式文件

                ②<style>标签内的CSS样式

                ③style属性内嵌的CSS

三. 渲染树构建

         合成DOM树和CSSOM树,构建渲染树的原因主要是dom树上有一些元素会有display:none这种属性,是不会加到布局中

四. 页面布局

        通过计算渲染树上每个节点的样式,就能得出来每个元素所占空间的大小和位置,这个过程中,浏览器对渲染树进行遍历,将元素间嵌套关系以盒模型的形式写入文档流。

五.页面绘制

        对渲染树进行分层,在合成的操作,光栅线程将页面绘制到页面上

8. 回流(重排)和重绘

        回流是指在元素改变 尺寸,宽高,边框,内容,位置 都会引起重排

        重绘是指外观发生改变,但是没有改变布局

只引起重绘的属性

    ● color、background 相关属性:background-color、background-image 等;
 ● outline 相关属性:outline-color、outline-width 、text-decoration;
 ● border-radius、visibility、box-shadow。

避免回流的方法

        ①操作DOM时,尽量在低层级的DOM节点进行操作

        ②使用 absolute 或者 fixed,使元素脱离文档流,这样他们发生变化就不会影响其他元素

        ③将元素先设置display: none,操作结束后再把它显示出来。因为在display属性为none的元素上进行的DOM操作不会引发回流和重绘。

        ④将DOM的多个读操作(或者写操作)放在一起,而不是读写操作穿插着写。

        ⑤使用动画

 9. 获取宽高

 ①系统屏幕

        window.screen.height         获取设备显示屏的高度

        window.screen.avaiHeight  获取屏幕的可用高度,指的是 显示屏高度 - 显示屏任务栏高度     

②浏览器

        window.outerHeight            浏览器的高度

        window.outerHeight            浏览器的可用高度,指的是 浏览器高度 - 顶部工具栏

③元素

        element.clientHeight           height+padding

        element.offsetHeight           height+padding+padding

④相对距离和位置

        element.offsetTop                元素到offsetParent顶部的距离

        注意:offsetParent是距离元素最近的一个具有定位的父元素(relative,absolute,fixed),而且元素渲染完成后才会计算offsetTop,会导致值偏小

⑤滚动距离

        获取滚动条到top,left的距离:element.scrollTop,element.scrollLeft

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值