CSS-标准流与浮动

234 阅读3分钟

标准流

又称文档流,是浏览器在渲染显示网页内容时默认采用的一套排版规则,规定了应该以何种方式排列元素。

创建标准流排版规则:

  1. 块级元素:从上往下,垂直布局,独占一行。
  2. 行内元素 或 行内块元素:从左往右,水平布局,空间不够自动折行。

浮动

作用:1.图文环绕、2.布局

属性名:float

属性值:

属性名效果
left左浮动
right右浮动

浮动的特点

  1. 浮动元素会脱离标准流(简称:脱标),并且不占用标准流的位置
    • 相当于从地面飘到了空中
  2. 浮动元素比标准流高半个级别,可以覆盖标准流中的元素
  3. 浮动找浮动,下一个浮动元素会在上一个浮动元素后面左右浮动
  4. 浮动元素会受到上面元素边界的影响,如果上面有独自占据一行的元素,浮动元素是无法上去的
  5. 浮动元素有特殊的显示效果 (行内块的特点)
    • 一行可以显示多个
    • 可以设置宽高

注意点:

浮动的元素不能通过text-align:center或者margin:0 auto,让浮动元素本身水平居中

清除浮动

含义:清除浮动带来的影响

影响:如果子元素浮动了,此时子元素不能撑开标准流的块级父元素

原因: 子元素浮动后脱标 → 不占位置

目的:需要父元素有高度,从而不影响其他网页元素的布局

清除浮动的方法

  1. 直接设置父元素高度
    1. 缺点:有些布局中不能固定父元素高度。
    2. 父元素的高度是动态的,随子元素高度变化
  2. 额外标签法
    1. 操作:在父元素内容的最后添加一个块级元素,给添加的块级元素设置clear:both。
    2. 缺点:会在页面中添加额外的标签,会让页面的HTML结构哦变得复杂。
  3. 单伪元素清除法
.clearfix::after {
    content:'';
    display:block;
    clear:both;
    // 补充代码,在网页中看不到伪元素
    // 为了兼容低版本,隐藏伪元素
    height:0;
    visiblity:hidden
  1. 双伪元素清除法
.clearfix::before,
.clearfix::after {
    content: '';
    display: table;
}
.clearfix::after {
    clear:both;
}
  1. 给父元素设置overflow:hidden

BFC的介绍

块格式化上下文(Block Formatting Context):BFC

  • 是Web页面的可视CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域。

创建BFC方法

  1. html标签是BFC盒子
  2. 浮动元素是BFC盒子
  3. 行内块元素是BFC盒子
  4. overflow属性取值不为visible。如:auto、hidden…
  5. ……

BFC盒子常见特点:

  1. BFC盒子会默认包裹住内部子元素(标准流、浮动)→ 应用:清除浮动
  2. BFC盒子本身与子元素之间不存在margin的塌陷现象 → 应用:解决margin的塌陷
  3. ……