1. 云栖社区>
  2. 技术文集>
  3. 列表>
  4. 正文

CSS中BFC的概念及外层div包裹内层div处理方法

作者:用户 来源:互联网 时间:2016-11-07 17:29:11

布局概念方法浮动元素一个包裹

CSS中BFC的概念及外层div包裹内层div处理方法 - 摘要: 本文讲的是CSS中BFC的概念及外层div包裹内层div处理方法,  对于div和css的用法,自己认为还是比较熟练的。但是对于一些概念性的东西,知之甚少,比如,今天看到有个BFC的概念,不知道CSS的BFC是啥意思。经过

 对于div和css的用法,自己认为还是比较熟练的。但是对于一些概念性的东西,知之甚少,比如,今天看到有个BFC的概念,不知道CSS的BFC是啥意思。经过查阅资料,才知道这个概念。其实,虽然我们并不知道BFC是啥意思,因为在项目中,没有人会说什么BFC。但是我们在项目中经常用到BFC,每一个css布局基本上都会用到。为了消灭这一盲点,今天说一下什么是BFC吧。

  BFC的概念   BFC全称Block Formatting Context ,直译“块级格式化上下文”,也有译作“块级格式化范围”。它是 W3C CSS 2.1 规范中的一个概念,它决定了元素如何对其内容进行定位,以及与其他元素的关系和相互作用。通俗的讲,就是一个div内部,我们用float和margin布局元素。   BFC布局引发的问题   关于BFC布局引发的问题,我之前在css常用效果总结中第10条就讲过用CSS的伪类处理的方法。今天再具体讲一讲。   首先   我们看看BFC布局引发的问题吧。   例如如下代码  

  1. <!doctype html
  2. <html lang="en"> 
  3. <head> 
  4.     <meta charset="UTF-8"> 
  5.     <title>Clear float</title> 
  6.     <style type="text/css"> 
  7.         .container{ 
  8.             margin: 30px auto; 
  9.             width:600px; 
  10.             height: 300px; 
  11.         } 
  12.         .p{ 
  13.             border:solid 3px #a33; 
  14.         } 
  15.         .c{ 
  16.             width: 100px; 
  17.             height: 100px; 
  18.             background-color: #060; 
  19.             margin: 10px; 
  20.             float: left; 
  21.         } 
  22.     </style> 
  23. </head> 
  24. <body> 
  25.     <div class="container"> 
  26.         <div class="p"> 
  27.             <div class="c"></div> 
  28.             <div class="c"></div> 
  29.             <div class="c"></div> 
  30.         </div> 
  31.     </div> 
  32. </body> 
  33. </html> 

我们希望看到的效果是:

CSS中BFC的概念及外层div包裹内层div处理方法-内层vlan 外层vlan

结果出现如下:

CSS中BFC的概念及外层div包裹内层div处理方法-外层vlan和内层vlan

解决方案

解决方法一般有2种。

利用 clear属性,清除浮动

使父容器形成BFC

清除浮动的方法,我们可以用如下办法:

对父元素加一个class


  1. <div class="p floatfix"> 
  2.     <div class="c">1</div> 
  3.     <div class="c">2</div> 
  4.     <div class="c">3</div> 
  5. </div> 

添加如下CSS


  1. .floatfix{ 
  2.     *zoom:1; 
  3. .floatfix:after{ 
  4.     content:""; 
  5.     display:table; 
  6.     clear:both; 

这种方法是比较好的解决方案!

另一种解决方法就是让父元素成为BFC,这种方法有个小弊端,就是父元素也变成了浮动,不推荐用这种方法!



以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有 的相关内容,欢迎继续使用右上角搜索按钮进行搜索布局 , 概念 , 方法 , 浮动 , 元素 , 一个 包裹 内层vlan 外层vlan、外层vlan和内层vlan、内层包封和外层包封、内层div超出外层、svlan是内层还是外层,以便于您获取更多的相关知识。

html5+-HTML5+Css3 网页DIV布局求助问题

...css3支持多背景图片。背景图片完全可以设置在body或者最外层的div上。 要白色区域根据内容增高,不要设置固定高度即可。 解决方案二: 最外层一个div,背景颜色为绿色,position为relative,padding-bottom:54px,内层一个div,背...

利用JQuery阻止事件冒泡_jquery

...面的div我们希望处理这个div的事件,但是呢,我们不希望外层的div的事件也执行,这时候我们就要用到阻止冒泡。 通俗点来说吧,你在家里看电视,躲在自己的小房间,但是你不希望声音传到隔壁父母的耳朵里,这时候,你可...

div+css总结—FF、IE7下div不设置高度背景颜色或外边框不能显示的解决方法

...IE浏览器下显示正常。但是使用Firefox/opera浏览时却出现最外层Div的背景颜色和边框不起作用的问题。 大体结构  css文件:(只写出了最主要的部分css代码:定义了最外层div的背景颜色和边框,同时定义了里面的div是浮动的).outer...

MySQL索引的概念及数据库索引的应用

...重排,就像使用部首查字典。 数据库索引应用 一、索引的概念 索引就是加快检索表中数据的方法。数据库的索引类似于书籍的索引。在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息。在数据库中,索引...

DOM的概念及子节点类型

前言 DOM的作用是将网页转为一个javascript对象,从而可以使用javascript对网页进行各种操作(比如增删内容)。浏览器会根据DOM模型,将HTML文档解析成一系列的节点,再由这些节点组成一个树状结构。DOM的最小组成单位叫做节点(node)...

前三篇
后三篇
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

40+云计算产品,6个月免费体验

稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一

云服务器9.9元/月,大学必备