揭秘文档流,进一步了解页面绘制的奥秘

104 阅读2分钟

前言

HTML 是网页内容创建设计的大佬,页面内容的绘制要遵循他的规则和顺序,这些规则定义了元素如何在页面上布局和显示。今天我们主要走进文档流的世界,揭开文档流魔术师的奥秘。

网页结构和页面绘制

  • 网页结构:HTML文档定义了网页的基本结构和内容
  • 页面绘制:浏览器按照文档流和CSS样式规则,将HTML元素绘制到页面上

文档流绘制

  • 当浏览器渲染页面时,他会按照文档流的顺序依次绘制元素。
  • 首先是块级元素,从上到下排列,通常占整行宽度,例如 <div>、<p>
  • 其次是行内元素,他们在同一行内从左到右排列,一直到填满一行再换行,例如<span>``<a>

盒子模型与大小计算

  • 每个HTML元素都可以看作一个盒子,盒子由内容content 、内边距padding 边框border和外边距margin 组成
  • 盒子大小的精确计算为:内容大小(width*height)+内边距padding+边框border
  • 盒子的位置在文档流中的默认位置是左上角,通过添加外边距margin可以调整与其他元素的距离

image.png

Position 属性与原理

Relative 相对定位

  • 相对默认位置:元素相对于它在正常文档流中的位置进行定位。
  • 调整位置:用 top、bottom、left、right来调整其相对于初始位置的位置
  • 占位不变:虽然元素位置被调整,但他在文档流中的占位仍然保持不变。

Absolute 绝对定位

  • 离开文档流:元素从文档流中移除,不再占据原本的空间

  • 定位参考:元素相对于最近的祖先元素(该祖先元素具有定位属性)进行定位

  • 无定位祖先:如果没有找到具有定位属性的祖先元素,则元素相对于文档的元素进行定位。