什么是BFC? CSS 使用伪元素清除浮动的方法

BFC概念:

  块级格式化上下文,是一个独立的渲染区域,让处于 BFC 内部的元素与外部的元素相互隔离,使内外元素的定位不会相互影响。

我们先了解一个名词:BFC(block formatting context),中文为“块级格式化上下文”。

先记住一个原则: 如果一个元素具有BFC,那么内部元素再怎么翻江倒海,翻云覆雨,都不会影响外面的元素。所以,BFC元素是不可能发生margin重叠的,因为margin重叠会影响外面的元素的;BFC元素也可以用来清除浮动带来的影响,因为如果不清除,子元素浮动则会造成父元素高度塌陷,必然会影响后面元素的布局和定位,这显然有违BFC元素的子元素不会影响外部元素的设定。

以下情况会触发BFC:

•<html>根元素
•float的值不为none
•overflow的值为auto,scroll,hidden
•display的值为table-cell,table-caption和inline--block中的任何一个
•position的值不为relative和static 即 position: absolute/fixed

显然我们在设置overflow值为hidden时使container元素具有BFC,那么子元素child浮动便不会带来父元素的高度坍塌影响。

利用伪类元素清除浮动:

.clearFix::after,.clearFix::before {
       display: block;
      content: ‘‘;
      clear: both;
      visibility: hidden;
      height: 0;
}
.clearFix { zoom: 1;}

原文地址:https://www.cnblogs.com/jb1352461/p/11127131.html

时间: 2024-09-30 15:50:11

什么是BFC? CSS 使用伪元素清除浮动的方法的相关文章

伪元素清除浮动?这个你了解吗?

随着前端的不断发展,面对浮动这个问题我们一般喜欢用伪元素清除浮动,下面这段样式号称万能清除浮动 .clearfix:after { content: "."; display: block; height: 0; clear: both; } .clearfix { zoom: 1; } 看着好像没啥为题呀,但是最近小弟遇到个问题(360极速浏览器): 伪元素是在clearfix元素后产生一个清除浮动的块级元素,并且用content的内容填充,但是有些浏览器会产生这个例如“.”占位的问

双伪元素清除浮动理解

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style> .fl{ float:left; } .box1 { width: 300px; height: 100px; background: red; } .box2 { width: 300px; height

伪元素清除浮动(重要)

让页面呈现多列布局时经常会使用  float:left/right ,可是浮动布局会导致父元素的高度为0(未设置高度的情况下),不会根据子元素的高度而变化,另外,后面不需要浮动想在下一行显示的标签出现在浮动元素的后面. #content{background:#000;} .left{width:100px;height:100px;background:#eee;margin:0 10px;float:left;} 所以我们在使用浮动进行布局的时候会需要一个块级元素(行内元素无效)来设置 cl

伪元素清除浮动及原理

.clearfix:after {content:"."; display:block; height:0; visibility:hidden; clear:both; } .clearfix { *zoom:1; } 1) display:block 使生成的元素以块级元素显示,占满剩余空间; 2) height:0 避免生成内容破坏原有布局的高度. 3) visibility:hidden 使生成的内容不可见,并允许可能被生成内容盖住的内容可以进行点击和交互; 4)通过 cont

CSS(7)--- 通俗讲解清除浮动

CSS(7)--- 通俗讲解清除浮动 上一篇讲了CSS浮动 博客地址:CSS(6)---通俗讲解浮动(float) 一.理解清除浮动 1.为什么要清除浮动 我们前面说过,浮动本质是用来做一些文字混排效果的,但是被我们拿来做布局用,则会有很多的问题出现. 由于浮动元素不再占用原文档流的位置,所以它会对后面的元素排版产生影响,为了解决这些问题,此时就需要在该元素中清除浮动. 准确地说,并不是清除浮动,而是清除浮动后造成的影响 2.清除浮动本质 清除浮动的本质: 主要为了解决父级元素因为子级浮动引起内

HTML和CSS设置动态导航以及CSS中伪元素的简单说明

HTML页面代码: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>Test</title> 5 <meta charset="utf-8"> 6 <link rel="stylesheet" type="text/css" href="style.css"> 7 <script type=&qu

知道css有个content属性吗?有什么作用?有什么应用?可以伪类清除浮动

知道.css的content属性专门应用在 before/after 伪元素上,用来插入生成内容.最常见的应用是利用伪类清除浮动. .clearfix:after { content:"."; //这里利用到了content属性 display:block; height:0; visibility:hidden; clear:both; } .clearfix { *zoom:1; } after伪元素通过 content 在元素的后面生成了内容为一个点的块级素,再利用clear:b

[CSS]利用伪元素实现一些特殊图形

给定的html代码是: <div class='square'></div> 平常实现我们常是通过添加小的icon来实现,不仅需要添加图片资源,还需要改动html结构. CSS伪元素 css中伪元素有四个,分别是:first-line,:first-letter,:before,:after.其中前两个分别选择的是目标元素内第一行文本和第一个字母,可以为其添加多余样式. 而最常用的就是:before和:after,这两个伪元素与前两个的用法不同,而用处也更大. :before,:a

[CSS]利用伪元素实现一些特殊图形 from baidu校招

最近在博客园看到某人发的baidu校招题目,说是要用一行html代码实现下面的这个图形: 给定的html代码是: <div class='square'></div> -----------------------以上为背景------------------------------ 正方形当然很好做,但是右侧突出来的小角标就得自己想办法了.所以,既然没有到有,自然是用上了CSS中的伪元素. 这个形状跟我们平时经常遇到的小气泡和下拉栏差不多 平常实现我们常是通过添加小的icon来实