美文网首页
css基础-浮动

css基础-浮动

作者: Suikayu | 来源:发表于2017-01-31 12:26 被阅读0次

css有三种定位模式:常规流,浮动和绝对定。除了浮动元素和绝对定位元素以及根元素以外的元素都在常规流中(in flow)。

在常规流中的盒子,属于块级格式化上下文或行级格式化上下文,会遵循一定的规则摆放。

Fomatting Context也就是格式化上下文可以理解成盒子在常规流中遵从的摆放规则。

BFC(Block Formatting Context)是一个面试常见的考察点,即块级格式化上下文。属于块级上下文的盒子遵从以下的规则布局:

  • 盒子在容器内(containing block)中是从上倒下一个一个垂直摆放的;
  • 两个兄弟盒子之间的垂直距离由margin决定;
  • 同一个BFC内的垂直距离会合并;
  • 盒子的左边元挨着包含块的左边;

下面重点看一下浮动
浮动元素就如它的名字一样,会脱离常规流漂浮在包含块的左边()或者右边,漂浮到包含块的边缘或者是挨着其他的包含块,就好比,一艘船要靠岸,岸边已经停了船,那么只能排队停在旁边了,当一排摆不下的时候还会被挤到下一排。
此外,浮动元素对其后面流内的块级和行级元素的影响不同,对块级元素没影响,但是行级元素会变短以避开浮动元素,好比word里面的图片环绕模式。
清除浮动使用clear属性(left|right|both),表示元素的哪一边不能与之前的浮动框相邻,但要注意的是这时候块级元素不再是当浮动元素不存在了,而是避开浮动元素移动到了浮动元素的后面。

清除浮动可以使用generate content来做:
定义一个class名字叫做clearfix,加在浮动元素的父级元素上

.clearfix::after{
     content:'  ';
     clear:both;
     display:block;
     height:0;
     overflow:hidden;
}

当然也可以使用before加在不想被浮动元素影响的元素上。

触发BFC也可以用来清除浮动,而且可以轻松的实现两栏布局

这是因为BFC规定:

  1. BFC内的浮动元素不影响BFC外的元素;
  2. 高度包含其内部浮动元素的高度;
  3. BFC不会和浮动元素重叠;
  4. 可以利用overflow:hidden来触发(overflow非visible);
  5. 浮动,绝对定位和inline-block都会触发BFC;

BFC的作用:

  1. 清除浮动;
  2. 防止margin折叠
  3. 两栏布局

相关文章

  • css基础-浮动

    css有三种定位模式:常规流,浮动和绝对定。除了浮动元素和绝对定位元素以及根元素以外的元素都在常规流中(in fl...

  • CSS 基础

    CSS基础 本文包括CSS基础知识选择器(重要!!!)继承、特殊性、层叠、重要性CSS格式化排版单位和值盒模型浮动...

  • CSS基础一(浮动)

    介绍css的一些基础知识 css全称Cascading Style Sheets,也叫层叠样式表。过了很久,我已经...

  • CSS基础-清除浮动

    清除浮动 盒子高度问题 在标准流中内容的高度可以撑起盒子的高度在浮动流中浮动元素内容的高不可以撑起盒子的高 清除浮...

  • CSS基础-浮动流

    浮动 网页的布局方式 网页的布局方式其实就是指浏览器是如何对网页中的元素进行排版的 1. 标准流(文档流/普通流)...

  • CSS基础-浮动流

    网页的布局方式 网页的布局方式其实就是指浏览器是如何对网页中的元素进行排版的 标准流(文档流/普通流)排版方式 其...

  • CSS基础-清除浮动

    清除浮动 盒子高度问题 在标准流中内容的高度可以撑起盒子的高度 在浮动流中浮动元素内容的高不可以撑起盒子的高 清除...

  • CSS基础--浮动流

    网页的布局方式 什么是网页的布局方式?网页的布局方式其实就是指浏览器是如何对网页中的元素进行排版的 标准流(文档流...

  • CSS基础--清除浮动

    盒子高度问题 在标准流中内容的高度可以撑起盒子的高度 在浮动流中浮动元素内容的高不可以撑起盒子的高 清除浮动方式一...

  • 一篇文章带你了解CSS clear both清除浮动

    一、前言 CSS clear both清除产生浮动 ,使用了css float浮动会产生css浮动,这个时候就需要...

网友评论

      本文标题:css基础-浮动

      本文链接:https://www.haomeiwen.com/subject/mtfgbttx.html