基本概念

 

1. 基本概念

视觉格式化模型(visual formatting model):CSS的一种机制,它规定了页面中的多个盒子如何布局。

包含块:每个元素都有一个包含块,它是指元素在页面中摆放的区域

通常情况下,元素的包含块是它父元素的内容盒(content-box

根元素的包含块是初始化包含块(initial containing block)。

2. 定位体系概述

视觉格式化模型规定,定位体系一共有三种:

常规流(normal flow

浮动(float

绝对定位(absolute positioned

任何一个元素,必须属于其中一种定位体系,不同的定位体系中,元素在包含块中的尺寸和位置会有一些差异。

 

3. 盒模型和定位体系

 

4. 常规流-盒模型中的auto

常规流,又叫做普通流、文档流、普通文档流,常规流是最常见的定位体系,所有元素默认状态下都是常规流定位。

水平方向:常规流盒子水平方向上的尺寸,必须等于包含块的宽度,如果不行,则强行将margin-right设置为auto

垂直方向:marginauto0pxheightauto:适应内容的高度。

盒子位置

盒子在包含块的垂直方向上依次摆放,依次摆放:按照HTML元素的书写顺序从上到下摆放,盒子在包含块中占据的尺寸是整个盒子的尺寸。

垂直方向上,若两个外边距相邻,则进行合并(折叠),垂直方向:水平方向上的外边距不会合并,外边距相邻:两个外边距之间没有borderpaddingcontent,合并:均为正数取最大,均为负数取最小,一正一负则相加。

 

5. 当常规流遇上浮动

常规流盒子和浮动盒子混合摆放,浮动盒子在摆放时,要避开常规流盒子,常规流盒子在摆放时,无视浮动盒子,常规流盒子的自动高度计算时,无视浮动盒子 —— 高度坍塌。

清除浮动

对一个元素清除浮动,可以让该元素在摆放时,出现在浮动元素的下方,对最后一个子元素使用clear:both,可防止父元素高度坍塌。

6. 绝对定位概述

当浮动元素被设置为绝对定位

属于绝对定位,float属性被强制设置为none

绝对定位元素对其他元素的影响

绝对定位元素不会对其他任何元素造成任何影响

绝对定位元素的位置

可通过lefttoprightbottom来设置

 

原文地址:https://www.cnblogs.com/qilin0/p/11295100.html