千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:郑州千锋IT培训  >  技术干货  >  重排和重绘

重排和重绘

来源:千锋教育
发布人:lxx
时间: 2023-02-09 16:46:17

  我们来讲一下页面的重排和重绘。

  重排, 顾名思义就是重新排列元素重绘, 顾名思义就是重新绘制元素也许这样解释,你还是不能理解,为了帮助我们记忆, 通过这个例子先来看一下页面展示在浏览器上的过程。

  在准备好的Rearrange-redraw.html文件中,定义div和p两个元素,在头部添加style标签,作为内部样式表使用。

a3fff5db27ed2fac5d22990b178b0c9

  定义选择器 div ,声明样式 width: 200px; height: 200px; background-color: orange;

  定义选择器 p 声明样式 width: 300px;height: 300px;background-color: skyblue;

  打开页面我们看到内容显示了。

1312e3e87e3fe157713a2e618630e5b

  那么我们写的 html 和 css 是如何被呈现在页面上的呢?

  其实, 首先浏览器会捕获到 html 结构, 生成一个 html树结构, 这个结构内的所有标签是没有样式出现的, 只是标明了 标签和标签之间的父子关系而已

69909c58164171c4c87165de696d7c7

  接下来, 浏览器还会拿到你写的 css 样式, 解析以后生成一个 css 树结构, 这个结构是没有和 html 结合, 只是一个 css 样式说明的树状结构

776660f5c65aad5f1e7b8461c6c8c22

  再来, 浏览器就会把拿到的 html树 和 css树 相结合, 将两个树慢慢融合在一起, 组成一个 rander树, 这里面就会把 标签和样式 结合在一起, 呈现出页面中的效果

  最后, 就是由浏览器来把这个 rander树 一笔一笔的 “画” 在页面上, 我们看到的页面就出现了。

  知道了页面展示在浏览器上的过程过程, 我们再来聊一下重排和重绘

  当我们通过后期的操作, 让页面中的节点发生了尺寸变化, 那么会因为一个元素的改变而导致整个页面发生变化, 可能后续的元素位置都会发生改变, 那么这个时候, 就会重新排列所有元素, 也就是说会触发重排, 也就是重新用 html树 和 css树 结合,去生成新的 rander 树,来进行新一次的绘制

  当我们通过后期的操作, 让页面中的节点发生一些外观上的变化, 比如改变背景颜色, 文字颜色, 边框颜色 的时候, 不会导致页面排列元素的变化, 只是当前一个节点发生变化, 对其他节点没有影响, 那么这个时候不需要重新排列元素, 只需要重新绘制当前这个节点即可, 这个行为叫做重绘

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

类的加载机制是什么

2023-03-21

如何定义Java变量?

2023-03-14

细节决定成败:探究Mybatis中javaType和ofType的区别

2023-03-09

最新文章NEW

java实现多线程的几种方式

2023-03-21

java编程spring框架的作用

2023-03-21

什么是java中的进制

2023-03-17

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>