当前位置: 首页 > Web前端 > CSS

BFC在css中的用法_0

时间:2023-03-31 12:36:32 CSS

BFC在css中的用法BFC(BlockFormattingContexts),BFC可以理解为一个封闭的大盒子,容器里面的子元素不会影响外面的元素。规则1.内框将在垂直方向上一个接一个地放置。2、BFC在页面上是一个隔离独立的容器,容器内的子元素不会影响外面的元素。3.属于同一个BFC的两个相邻BOx的上下边距会重叠。4.BFC计算高度时,浮动元素也参与计算5.每个元素的左侧与包含框的左侧接触,即使有浮动;6.BFC的区域不会和float重叠;哪些元素会触发BFC1.body根元素2.Floating元素:属性值其中float不是none;3.绝对定位元素:position(absolute,fixed)4.显示:inline-block,table-cell,flex5.overflow可见以外的值(hidden,auto,Scroll)BFC的应用1.解决margin问题overlap2.解决浮动高度塌陷问题3.解决侵占浮动元素问题例:1.margin重叠问题我们先定义两个垂直div

css.box{宽度:200px;高度:50px;边距:30px0;背景:黑色;}margin重叠后的效果这个满足了第三条规则:属于同一个BFC的两个相邻BOx的上下边距会重叠,说明属于同一个BFC,所以我们把两个div放在不同的BFC中,把在第二个div上添加一个父元素,然后设置溢出隐藏以激活BFC
css.content{溢出:隐藏;}效果图为:**我们来看看浮动高度塌陷的问题**css.content{width:300px;边框:1px纯黑色;}.content.box{宽度:100px;高度:100px;边框:1px纯红色;:左边;}效果图是:可以看到父元素没有被拉伸,BFC的第四条规则:计算BFC高度的时候,浮动元素也参与计算,所以我们需要在父元素.content上触发BFC{宽度:300px;边框:1px纯黑色;溢出:隐藏;}效果图为:可以看到父元素已经打开我们来看看侵占浮动元素的问题。首先定义两个div:css.left{width:100px;高度:100px;背景:鲑鱼;向左飘浮;}.right{宽度:300px;高度:200px;背景:黑色;}效果图是:满足规则第五点:每个元素的左边都碰到了包含框的左边,即使有浮动,所以如果我们想把红色区域撑到左边黑色区域,我们需要用到第六条规则,BFC区域不会和浮点重叠。我们设置了一个溢出:隐藏;黑色区域触发BFC的权限属性;.right{宽度:300px;高度:200px;背景:黑色;溢出:隐藏;}效果图为:可以看到红色区域已经向黑色区域的左边延伸了如果您觉得阅读这篇博客对您有所收获,请您关注。感谢您的支持,如有不足之处,请多多指教。联系人:wx:bsl521921