百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>html5教程> 对于CSS里的块级格局
分享文章到:

对于CSS里的块级格局

发布时间:09/01 来源:未知 浏览: 关键词:

1.BFC 定义

BFC(Block formatting context)直译为"块级格局化上下文"。它是一个独立的渲染区域,只要Block-level box(块级元素)参与, 它规定了内部的Block-level Box怎样规划,并且与这个区域外部毫不相关.

通俗地来说:创立了 BFC的元素就是一个独立的盒子,里面的子元素不会在规划上
影响外面的元素(里面如何规划都不会影响外部),BFC任然属于文档中的一般流

2.BFC的生成:

知道了BFC如何触发BFC
知足以下前提之一都可以触发BFC,变身为BFC

根元素

float属性不为none

position不为static和relative

overflow不为visible

display为inline-block, table-cell, table-caption, flex, inline-flex

你会发明BFC无处不在,只是本人用的时候不知道罢了

3.BFC规划规则:

变身为BFC后有什么特性呢,以下:

内部的Box会在垂直标的目的,一个接一个地放置。

Box垂直标的目的的间隔由margin决议。属于统一个BFC的两个相邻Box的margin会发生重叠

每个元素的margin box的左边, 与包括块border box的左边相接触(关于从左往右的格局化,不然相反)。即便存在浮动也是如此。

BFC的区域不会与float box重叠。

BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此。

运算BFC的高度时,浮动元素也参与运算

4.BFC作用:

用起来come boby

1.防止外边距重叠

bfc致使的属于统一个bfc中的子元素的margin重叠(Box垂直标的目的的间隔由margin决议。属于统一个BFC的两个相邻Box的margin会发生重叠)

问题:由图可以看到,String1和String2 之间只要20px的margin,按理来说应当是40px,但这是在bfc中致使了他们的margin重叠


代码:

<style>.container1{
        /* 通过overflow:hidden可以创立bfc */
        overflow: hidden;
        background-color: red;
        width: 300px;
    }
    .sub1{
        margin: 20px 0px;
        background-color: #dea;
    }</style><div class="container1">
        <div class="sub1">String1</div>
        <div class="sub1">String2</div></div>

解决办法:我们可以在div外面包裹一层容器,并触发该容器生成一个BFC。那么两个div便不属于统一个BFC,就不会发生margin重叠了。


代码:

<style>
    .newbfc{
            overflow: hidden;
    }</style><div class="container1">
        <div class="sub1">String1</div>
        <div class="newbfc"><div class="sub1">String2</div></div></div>

2.清除浮动:

问题:当元素的子元素都浮动后,会显现高度坍塌的现象,即父容器的高度不会被撑开


代码:

<style>
    .pre2{
        width: 200px;
        border: 2px solid red;
    }
    .float1,.float2{
        width: 100px;
        height: 100px;
        float: left;
    }
    .float1{
        background-color: #dee;
    }
    .float2{
        background-color: #dcc;
    }</style><div class="pre2">
        <div class="float1"></div>
        <div class="float2"></div></div>

解决办法:

bfc的规则:运算BFC的高度时,浮动元素也参与运算所以只要将父容器设定为bfc就可以把子元素包括进去:
这个容器将包括浮动的子元素,它的高度将扩展到可以包括它的子元素,在这个BFC,这些元素将会回到页面的常规文档流。

.pre2{
        width: 200px;
        border: 2px solid red;
        /* 设定overflow*/
        overflow:hidden;
    }

3.解决规划:防止文字围绕


代码:

<style>.container2{
        overflow: hidden;
        width: 200px;
    }
    .box{
        float: left;
        width: 100px;
        height: 30px;
        background-color: #daa;
    }</style><div class="container2">
        <div class="box"></div>
        <p style="background-color: #eea">sdfadsfdff fffffffds fsfffff sfd  fsdsdfsdf fffffff</p></div>

这个p元素并没有移动,但是它却显现在浮动元素的下方。p元素的line boxes(指的是文本行)停止了移位。此处line boxes的水平收缩为浮动元素供给了空间。

bfc的规则:每个元素的margin box的左边, 与包括块border box的左边相接触(关于从左往右的格局化,不然相反)。即便存在浮动也是如此。

解决这个问题只要将p元素增加overflow:hidden使其成为一个新的bfc就可以了

信赖看了这些案例你已经把握了办法,更多出色请关注百分百源码网其它相关文章!

相关阅读:

HTML中划分框窗是什么常用属性

在HTML中是什么援用CSS的方式

iframe的去边框和无边框是什么操纵方式

以上就是关于CSS里的块级格局的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有150人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板