关于css-bfc深入理解

1 篇文章 0 订阅

BCF(block formatting contex)块级格式化上下文内容 所谓的BFC就是css布局的一个概念,是一块区域,一个环境。

    我们常说的文档流其实分为定位流、浮动流和普通流三种。而普通流其实就是指BFC中的FC。

FC是formatting context的首字母缩写,直译过来是格式化上下文,它是页面中的一块渲染区域,有一套渲染规则,决定了其子元素如何布局,以及和其他元素之间的关系和作用。
** BFC 可以简单的理解为某个元素的一个 CSS 属性,只不过这个属性不能被开发者显式的修改,拥有这个属性的元素对内部元素和外部元素会表现出一些特性,这就是BFC。**
触发bfc的条件
1.根元素,即HTML元素
2.float的值不为none
3.overflow的值不为visible
4.display的值为inline-block、table-cell、table-caption
5.position的值为absolute或fixed  
BFC有哪些作用:
1.自适应两栏布局
2可以阻止元素被浮动元素覆盖
3可以包含浮动元素——清除内部浮动
4.分属于不同的BFC时可以阻止margin重叠
两个相邻的box 垂直方向 margin 会重和在一起

  <body>
			<div class="box1"></div>
			<div class="main"></div>					
	</body>
	<style>
			*{
				margin: 0;
				padding: 0;
			}
			.box1{
				width: 100px;
				height: 100px;
				background: pink;
                margin-bottom:100px;
			}
			.main{
				width:100px;
				height: 100px;
				background: yellow;
                margin-top:100px;
			}		
		</style>

按照我们原本的思路的话两个盒子的距离应该是200px 然而margin 垂直方向上只有100px的距离说明我们垂直方向距离重和了
在这里插入图片描述
2.bfc可以阻止margin 的重叠

	<body>
		<div class="box1"></div>
		<div class="container">
			<div class="main"></div>
		</div>
	</body>
			<style>
			* {
				margin: 0;
				padding: 0;
			}
			
			.box1 {
				width: 100px;
				height: 100px;
				background: pink;
				margin-bottom: 100px;
			}
			
			.main {
				width: 100px;
				height: 100px;
				background: yellow;
				margin-top: 100px;
			}
			
			.container {
				overflow: hidden;
			}
		</style>

可以看见我们给 mian 添加一个父元素 触发bfc 让他们垂直方向的距离不重叠
在这里插入图片描述
3.子元素绑架了父元素的margin-top值

	<body>
		<div class="container">
			<div class="main"></div>
		</div>
	</body>
			* {
				margin: 0;
				padding: 0;
			}
			.container{
				width: 200px;
				height: 200px;
				background: yellow;
			}			
			.main {
				width: 100px;
				height: 100px;
				background: red;
				margin-top: 100px;
			}

在这里插入图片描述
可以通过触发bfc 解决问题

	<body>
		<div class="container">
			<div class="main"></div>
		</div>
	</body>
			* {
				margin: 0;
				padding: 0;
			}
			.container{
				width: 200px;
				height: 200px;
				background: yellow;
				overflow:hidden;
			}			
			.main {
				width: 100px;
				height: 100px;
				background: red;
				margin-top: 100px;
			}

在这里插入图片描述
3.float元素不清楚浮动的话 会让一下个box重合

	<body>
		<div class="box"></div>
		<div class="main"></div>
	</body>
			<style>
			* {
				margin: 0;
				padding: 0;
			}
			
			.box {
				width: 100px;
				height: 100px;
				background: pink;
				float: left;
			}
			
			.main {
				width: 500px;
				height: 200px;
				background: red;
			}
		</style>

在这里插入图片描述
可以通过bfc 让 .main 不覆盖 解决重叠的问题

	<body>
		<div class="box"></div>
		<div class="main"></div>
	</body>
			<style>
			* {
				margin: 0;
				padding: 0;
			}
			
			.box {
				width: 100px;
				height: 100px;
				background: pink;
				float: left;
			}
			
			.main {
				width: 500px;
				height: 200px;
				background: red;
				overflow:hidden;
			}
		</style>

在这里插入图片描述
此种方法 可以左两栏自适应布局,以上就是bfc的一些用图 如有不足可以指出,感谢大家支持

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SDN(Software Defined Network)即软件定义网络,是一种网络设计理念,或者一种推倒重来的设计思想。 只要网络硬件可以集中式软件管理,可编程化,控制转发层面分开,则可以认为这个网络是一个SDN网络。 所以说,SDN并不是一个具体的技术,不是一个具体的协议,而是一个思想、一个框架。狭义的SDN是指的“软件定义网络”, 广义的SDN的概念还延伸出了:软件定义安全、软件定义存储等等。可以说,SDN是一个浪潮,席卷整个IT产业。 信息中心化是对传统网络的一大挑战。Internet的前身,ARPANET,在创建之初就有一个前提:这个网络是个自制的, 无中心的系统,网络遭受任何局部损失都不会影响其他部分的正常通讯。所以,所有的RFC都围绕着这个前提来构建, 所有的网络设备也遵循着这一前提来研发。但是SDN将这一前提打破。所谓天下合久必分,分久必合。网络世界也不能免俗。 锐捷网络也不落时代地加入这一潮流中。Cloud computing引发的互联网革命新浪潮将计算和存储中心化,SDN顺应了这一趋势。 通过硬件,软件平台的支持,信息(网络状态)被共享到一个逻辑上集中的中心。相对于去中心化的传统网络,SDN带来很多很多优势。 SDN在各国企业中已被广泛涉及,Nick教授团队的创业公司屡屡付诸实践,国内团队在SDN中也有涉猎并不断追求发展,锐捷网络、 大河互联和盛科网络就是很好的例子。然而,国内技术尚不成熟,人才也相对缺乏,需要网络工程师潜心钻研。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值